Foxtable(狐表)用户栏目专家坐堂 → 新版DataRowLockedChanged 事件的问题


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

主题:新版DataRowLockedChanged 事件的问题

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
新版DataRowLockedChanged 事件的问题  发帖心情 Post By:2014/3/5 14:45:00 [显示全部帖子]

使用新版后每张表单增加行时都会弹出出错对话框,原来旧版一直使用都是正常的。

图片点击可在新窗口打开查看此主题相关图片如下:360截图20140305144414616.jpg
图片点击可在新窗口打开查看

全局表事件DataRowLockedChanged 的代码如下:
'主表锁定时同步锁定其所有子表
If e.DataTable.name = Mtb & "_主表" AndAlso Ctb > "" Then '如果是主表且有子表
    Dim drs As List (of DataRow)
    drs = DataTables(Mtb & "_明细").Select(Rcol & "= '" & Tables(Mtb & "_主表").Current(Rcol) & "'")
    If drs IsNot Nothing Then
        For Each Cdr As DataRow In drs
            Cdr.Locked = e.DataRow.Locked
        Next
    End If
End If

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2014/3/5 14:57:00 [显示全部帖子]

不会的,都有值的,这个项目已经用了几个月了,都没有问题,就是升级后才这样的。还是请检查一下这个事件吧。

图片点击可在新窗口打开查看此主题相关图片如下:360截图20140305145631966.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2014/3/5 16:06:00 [显示全部帖子]

不一至,ctb是后台数据表,而 DataTables(Mtb & "_明细") 是窗口中名称为“明细”的sqltable的对应窗口表名。ctb的数据fill在 DataTables(Mtb & "_明细")中而已。
反正现在用新版出现了很多未将对象引用设置到对象实例的问题。点击菜单中的很多按钮都会。

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2014/3/5 17:05:00 [显示全部帖子]

谢谢各位,修改了代码,问题解决。但奇怪的是原来旧版使用很久也没有出错呢!

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2014/3/5 17:15:00 [显示全部帖子]

其实也就是修改一下红色那里,原来直接用主表当前行的关联列判断就是会提示出错。但旧版不会。
'主表锁定时同步锁定其所有子表
If e.DataTable.name = Mtb & "_主表" AndAlso Ctb > "" Then '如果是主表且有子表
    Dim drs As List (of DataRow)
    drs = DataTables(Mtb & "_明细").Select(Rcol & "= '" & e.datarow(Rcol) & "'")
    If drs IsNot Nothing Then
        For Each Cdr As DataRow In drs
            Cdr.Locked = e.DataRow.Locked
        Next
    End If
End If
[此贴子已经被作者于2014-3-5 18:50:52编辑过]

 回到顶部