以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  跨表删除行的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=158915)

--  作者:jhxb8821
--  发布时间:2020/12/7 13:51:00
--  跨表删除行的问题
已实现表A某订单号新增一行,已审核,“汇总表”自动新增一行。若取消审核,如何让“汇总表”对应的订单号自动删除?

跨表自动增加一行的代码:

If e.DataCol.Name = "已审核" AndAlso e.DataRow("已审核") = True Then

     Dim dr As DataRow = DataTables("汇总表").AddNew

     For Each dc As DataCol In DataTables("汇总表").DataCols

         dr(dc.Name) = e.DataRow(dc.Name)

     Next

End If
[此贴子已经被作者于2020/12/7 13:56:33编辑过]

--  作者:有点蓝
--  发布时间:2020/12/7 13:57:00
--  
datetables(“汇总表”).deletefor("订单号=\'" & e.datarow("订单号") & "\'")
--  作者:jhxb8821
--  发布时间:2020/12/7 14:14:00
--  这样设置,提示不正确

在设置表ADataRowDeleting事件:

Dim dr As DataRow = datetables("汇总表").deletefor("订单号=\'" & e.DataRow("订单号") & "\'")

If dr IsNot Nothing Then

dr.Delete

End If
--  作者:有点蓝
--  发布时间:2020/12/7 14:44:00
--  
2楼一句代码就够了,无需画蛇添足
--  作者:jhxb8821
--  发布时间:2020/12/7 14:50:00
--  另外加这些代码就对了

还是在表ADataColChanged事件代码设置:

Dim dp As DataRow = DataTables("汇总表").Find("订单号 = " & e.DataRow("订单号"))

If e.DataRow("已审核") = False Then

    dp.Delete

End If