• 在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

  • 相关阅读:
    微服务实战(三):深入微服务架构的进程间通信
    微服务实战(二):使用API Gateway
    微服务实战(一):微服务架构的优势与不足
    函数声明与函数表达式
    CSS样式优先级
    iframe框架及优缺点
    JS事件流模型
    JS事件冒泡及阻止
    浏览器重绘与回流
    浏览器渲染与内核
  • 原文地址:https://www.cnblogs.com/pzwsoft/p/3529822.html
Copyright © 2020-2023  润新知