Foxtable(狐表)用户栏目专家坐堂 → [求助]如何使用代码提高效率


  共有2671人关注过本帖树形打印复制链接

主题:[求助]如何使用代码提高效率

帅哥哟,离线,有人找我吗?
witkeylaw
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:241 积分:2412 威望:0 精华:0 注册:2011/6/19 0:05:00
[求助]如何使用代码提高效率  发帖心情 Post By:2018/1/24 14:47:00 [显示全部帖子]

一、实现的功能
主表
选择(字符) 单号

表A
选择(逻辑) 单号

表B
选择(逻辑) 单号

功能:表A或表B字段“选择”勾选,则主表的“选择”字段显示为“选择”。去掉勾选,则主表对应单号的“选择”字段清空。

二、目前实现的方法
表A、表B的表事件datacolchanged,代码
Dim dr As DataRow
If e.DataCol.Name = "选择" Then 
    If e.NewValue = True Then '而且变动后的值是 True(已勾选)
        dr=DataTables("主表").Find("单号='"&e.DataRow("单号")&"'")
        If dr IsNot Nothing Then
            dr("选择") = "选择"
        Else
            Return
        End If
    Else
        dr=DataTables("主表").Find("单号='"&e.DataRow("单号")&"'")
        If dr IsNot Nothing Then
            dr("选择") = Nothing
        Else
            Return
            
        End If
    End If
End If

三、缺点
就是在表A、表B的表事件datacolchanged,需要重复录入上述代码。

四、如何改进
如果需要增加多几个表,实现类似的功能,按照上述实现的方法太过于繁琐,请问如何设计才能减轻工作量,例如使用全局代码、内部函数等。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:选择.rar


 回到顶部
帅哥哟,离线,有人找我吗?
witkeylaw
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:241 积分:2412 威望:0 精华:0 注册:2011/6/19 0:05:00
  发帖心情 Post By:2018/2/1 23:07:00 [显示全部帖子]

表A和表B结构是不同的。

 回到顶部