以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请问如何锁定关联子行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=19833)

--  作者:rjh4078
--  发布时间:2012/5/22 20:19:00
--  请问如何锁定关联子行
我想实现保存了父行以后能将子行同步保存并且将 父行和子行都锁定 请问怎么实现
--  作者:yan2006l
--  发布时间:2012/5/22 20:49:00
--  

示例

假定产品表和订单表之间通过产品编号建立了关联,下面的代码获得第一个产品的全部订单,并将这些订单的折扣设为0.1:

Dim drs As List(Of Datarow)
drs =
DataTables("产品").DataRows(0).GetChildRows("订单")
For Each
dr As DataRow In drs
   

dr("折扣") = 0.1

.........此处改为保存代码,save什么的好像 。然后再弄个逻辑列都true上什么的。最后在事件代码那里加个:如果逻辑列=true,  e.cancle=treu


Next


--  作者:程兴刚
--  发布时间:2012/5/22 22:19:00
--  

父表BeforeSaveDataRow事件代码:

 

e.DataRow.Locked = True \'父表当前行行
Dim drs As List(Of DataRow)
drs = DataTables("子表").Select("[关联列] = \'" & e.DataRow("关联列") & "\'")
For Each dr As DataRow In drs
    dr.Locked = True
Next

 子表和关联列名称自己修改,关联列为非字符型数据时,注意修改条件表达式!


--  作者:狐狸爸爸
--  发布时间:2012/5/23 7:52:00
--  
再进一步:
 
e.DataRow.Locked = True \'父表当前行行
For Each dr As DataRow e.DataRow.GetChildRows("子表名称")
    dr.Locked = True
Next