以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]父表与子表间关联行相互删除  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87326)

--  作者:gfj7126
--  发布时间:2016/7/8 10:53:00
--  [求助]父表与子表间关联行相互删除

我现在设置“表A”(子表)与“表C”(父表)相关联,我在“表A"的datarowdeleting事件中设置了如入代码

 

Dim pr As DataRow = e.DataRow.GetParentRow("表C") \'获得此明细对应的订单
If pr IsNot  Nothing Then \'如果有对应的订单
    If pr.GetChildRows("表A").count = 1 Then \'且这个订单的明细只有一个了
    MessageBox.Show("\'"& pr("备注") &"\'")
        pr.Delete() \'删除这个订单
    End If
End If

这个代码的执行前题是在关联设置中不能选\'同步删除关联行\'的选项。

而我又希望在删除父表”表C"的行时,同步删除子表的关联行。这个如何来写代码?

我想在删除父表行时,同步删除子表又会执行上面子表的代码,会不会引起死循环?

[此贴子已经被作者于2016/7/8 10:54:28编辑过]

--  作者:大红袍
--  发布时间:2016/7/8 10:57:00
--  

SystemReady = False

 pr.Delete() \'删除这个订单

SystemReady = True


--  作者:gfj7126
--  发布时间:2016/7/8 11:10:00
--  

这行代码是加在“表A”的 datarowdeleting事件中的吗?如果使用这个代码,那关联表中的“同步删除行”的选项是否就可以使用了?


--  作者:大红袍
--  发布时间:2016/7/8 11:16:00
--  

 不可以勾选。

 

 父表删除子表的代码这样写

 

SystemReady = False

    DataTables("表A").DeleteFor("关联列 = \'" & e.datarow("关联列") & "\'")

SystemReady = True


--  作者:gfj7126
--  发布时间:2016/7/8 11:33:00
--  
测试成功