以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关联表的父表记录锁定,怎样把对应的子表记录也锁定?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=157815)

--  作者:hitzfeld
--  发布时间:2020/10/30 4:09:00
--  关联表的父表记录锁定,怎样把对应的子表记录也锁定?
父表与子表存在一对多的关系,生成记录后父表的记录锁定容易,但是对应的子表记录要怎么锁定?
--  作者:有点蓝
--  发布时间:2020/10/30 8:49:00
--  
http://www.foxtable.com/webhelp/topics/0636.htm
--  作者:hitzfeld
--  发布时间:2020/10/31 2:27:00
--  
蓝老师好,我做的是在一个独立窗口中的一个“审核”按钮,点击审核,则锁定当前父表记录,同时要锁定对应的子表记录。
但是您的链接中的这个代码要写在DataRowLockedChanged事件
For Each dr As DataRow In e.DataRow.GetChildRows("订单明细")
    dr.Locked = e.DataRow.Locked
Next
如果这样,我点击“审核”之后,子表对应记录没有锁定。如果把这个代码放在按钮里面则报错。我改了下面的代码:
Tables("采购单").Current("审核") = "已审核"
Tables("采购单").Current.Locked = True
Dim drs As List(Of DataRow)
drs = DataTables("采购单").DataRows(0).GetChildRows("采购明细")
For Each dr As DataRow In drs
dr.Locked = True 
Next
msgbox("已审核")
但是锁定的是采购明细表的第一条记录?而不是主表当前记录对应的第一条记录?不知道错在哪里?请您指点下。谢谢!


--  作者:有点蓝
--  发布时间:2020/10/31 10:13:00
--  
Dim drs As List(Of DataRow)
drs = Tables("采购单").Current.DataRow.GetChildRows("采购明细")
--  作者:hitzfeld
--  发布时间:2020/10/31 12:50:00
--  
以下是引用有点蓝在2020/10/31 10:13:00的发言:
Dim drs As List(Of DataRow)
drs = Tables("采购单").Current.DataRow.GetChildRows("采购明细")
我晕死哦!我离这个方案就差一点点!!!!图片点击可在新窗口打开查看我做实验的时候曾经写过:drs = Tables("采购单").Current.Row.GetChildRows("采购明细"),报错。
蓝老师,不是说datatables对应datarow,tables对应row吗?为什么这里可以用tables对应datarow???


--  作者:有点蓝
--  发布时间:2020/10/31 14:00:00
--  
http://www.foxtable.com/webhelp/topics/0594.htm