以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  全局表锁定行状态改变后的事件代码问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=27642)

--  作者:zpx_2012
--  发布时间:2013/1/6 21:00:00
--  全局表锁定行状态改变后的事件代码问题

各位老师,

在表的全局事件afterlockdatarow中用了如下代码:

 

\'锁定主表行时锁定其关联明细表中所有行
For Each re As Relation In Relations
    If e.DataTable.Name = re.ParentTable.Name Then  \'如果是关联主表
        For Each dr As DataRow In e.DataRow.GetChildRows(re.Childtable.name)
            dr.Locked = e.DataRow.Locked
        Next
        Exit For
    End If
Next

 

但有的关联表起作用,有的关联表不起作用?是不是有bug?

 


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

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

谢谢!


--  作者:狐狸爸爸
--  发布时间:2013/1/7 9:21:00
--  

1、你多了一行代码,应该:

 

For Each re As Relation In Relations
    If e.DataTable.Name = re.ParentTable.Name Then  \'如果是关联主表
        For Each dr As DataRow In e.DataRow.GetChildRows(re.Childtable.name)
            dr.Locked = e.DataRow.Locked
        Next
    End If
Next

 

2、问题收到,下次改进。


--  作者:zpx_2012
--  发布时间:2013/1/7 9:36:00
--  
谢谢狐爸!去掉exit for后还是一样,有的表起作用,有的不起作用
[此贴子已经被作者于2013-1-7 9:40:15编辑过]

--  作者:zpx_2012
--  发布时间:2013/1/7 11:39:00
--  

上传例子,锁定及解锁行的代码在全局事件中

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:查询后增加临时列及父子表同时锁定解锁行问题.foxdb

[此贴子已经被作者于2013-1-7 11:39:41编辑过]

--  作者:lin_hailun
--  发布时间:2013/1/7 12:51:00
--  
 测试了一下,全局表事件没有触发。估计是不对应造成的。
--  作者:狐狸爸爸
--  发布时间:2013/1/7 12:54:00
--  
明白了,这两个事件后来改的,可能忘记加入开启开关了,下次搞定
[此贴子已经被作者于2013-1-7 12:53:44编辑过]