zoukankan      html  css  js  c++  java
  • 在VFP6中模拟CursorAdapter的功能

        这个是我在2002年做的一个VFP程序中实现的方法, 现在看来功能和VFP8,9中的CursorAdapter非常相似, 因为属性设置有许多相同的地方,我甚至怀疑CA就是就是在这样的基础上再包装出来的类.

    以下是程序:

    与数据库的连接:

    nConnectHandle = sqlstringconnect("DRIVER=SQL Server;SERVER=" + cDbServer + ;
      ";UID=" + cUserName + ;
      ";PWD=" + cPassword + ;
      ";DATABASE=" + cDatabaseName)
     if nConnectHandle > 0 && 与服务器连接成功

    endif

    表单的init中:

    local cSQLcommand

    this.lockscreen = .f.

    cSQLcommand = "select department.bmdm, department.bmmc, company.dwmc, department.dwxtbh, department.xtbh " + ;
     "from department, company where department.dwxtbh = company.xtbh order by company.dwdm, department.bmdm"
    do while sqlexec(nConnectHandle, cSQLcommand, 'department') = 0 && 远程操作
    enddo
    = cursorsetprop('SendUpdates', .t., 'department')
    = cursorsetprop('Tables', 'dbo.department', 'department')
    = cursorsetprop('UpdatableFieldList', 'bmdm, bmmc, dwxtbh', 'department')
    = cursorsetprop('UpdateNameList', 'bmdm dbo.department.bmdm, bmmc dbo.department.bmmc, dwxtbh dbo.department.dwxtbh, xtbh dbo.department.xtbh', 'department')
    = cursorsetprop('KeyFieldList', 'xtbh', 'department')
    with this.grid1
     .columncount = -1
     .recordsource = 'department'
     .recordsourcetype = 1
     .columns(1).header1.caption = '部门代码'
     .columns(2).header1.caption = '部门名称'
     .columns(3).header1.caption = '单位名称'
     .columns(4).header1.caption = '单位系统编号'
     .columns(5).header1.caption = '系统编号'
     .SetAll("DynamicBackColor","IIF(MOD(RECNO('department'),2)=0,RGB(255,255,255),RGB(230,230,255))","Column") &&交替显示白色和蓝色的记录
    endwith

    this.lockscreen = .f.

    添加click:

    local lResult, cBmmc

    insert into department(bmdm, bmmc, dwxtbh) values('', '', 0)
    do form d_bmkp to lResult
    select department
    if lResult
     if tableupdate(.t., .f., 'department')
      cBmmc = department.bmmc
      wait '添加成功' window nowait
      thisform.opentable()
      select department
      locate all for bmmc = cBmmc
      thisform.grid1.refresh
     else
      = tablerevert(.t., 'department')
      wait '添加失败' window nowait
     endif
    else
     = tablerevert(.t., 'department')
    endif

    编辑click:

    local lResult, cBmmc

    do form d_bmkp to lResult
    select department
    if lResult
     if tableupdate(.t., .f., 'department')
      cBmmc = department.bmmc
      wait '编辑成功' window nowait
      thisform.opentable()
      select department
      locate all for bmmc = cBmmc
      thisform.grid1.refresh
     else
      = tablerevert(.t., 'department')
      wait '编辑失败' window nowait
     endif
    else
     = tablerevert(.t., 'department')
    endif

    删除click:

    if messagebox('你确认要删除吗?', 4 + 32 + 256, '信息') = 6 && YES
     delete in department
     if tableupdate(.t., .f., 'department')
      thisform.grid1.refresh
      wait '删除成功' window nowait
     else
      = tablerevert(.t., 'department')
      wait '删除失败' window nowait
     endif
    endif

  • 相关阅读:
    ROS_Kinetic_08 ROS的集成开发环境(IDEs)之使用Eclipse
    如何写好一份竞品运营分析报告?
    我眼中的Linux设备树(六 memory&chosen节点)
    【干货】前端开发者最常用的六款IDE
    【前端图表】echarts散点图鼠标划过散点显示信息
    【前端图表】echarts实现散点图x轴时间轴
    三分钟教你学会如何将密文解码成明文
    2018上半年GitHub上最热门的开源项目
    进阶攻略|前端完整的学习路线
    进阶攻略|前端最全的框架总结
  • 原文地址:https://www.cnblogs.com/pzwsoft/p/3529822.html
Copyright © 2011-2022 走看看