以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  跨表引用  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=191600)

--  作者:g1j2h3
--  发布时间:2024/4/25 13:03:00
--  跨表引用
销售接单表中的发货数量引用的是发货明细表中的发货数量,如果把发货明细删除一行,那么销售接单对应的发货数量应该恢复原有的数据,如何写代码
现在发货明细表的代码是:
Select Case e.DataCol.Name
Case "发货数量"
DataTables("销售接单").DataCols("产品名称").RaiseDataColChanged("产品名称 = \'" & e.DataRow("产品名称") & "\'and 接单单号 = \'" & e.DataRow("接单单号") & "\'")
End Select
销售接单表中的代码:
Select Case e.DataCol.Name
    Case "接单单号", "产品名称", "规格型号"
        If e.DataRow.IsNull("接单单号") Then
            e.DataRow("已发货数量") = Nothing
        Else
            Dim sl As Integer = DataTables("发货明细").Compute("Sum(发货数量)", "接单单号= \'" & e.DataRow("接单单号") & "\' And 产品名称=\'" & e.DataRow("产品名称") & "\' and 规格型号=\'" & e.DataRow("规格型号") & "\'")
            e.DataRow("已发货数量") = sl 
        End If
End Select
[此贴子已经被作者于2024/4/25 13:05:29编辑过]

--  作者:有点蓝
--  发布时间:2024/4/25 13:39:00
--  
发货明细DataRowDeleting事件

e.DataRow("发货数量") = nothing

DataTables("销售接单").DataCols("产品名称").RaiseDataColChanged("产品名称 = \'" & e.DataRow("产品名称") & "\'and 接单单号 = \'" & e.DataRow("接单单号") & "\'")

[此贴子已经被作者于2024/4/25 13:39:48编辑过]

--  作者:g1j2h3
--  发布时间:2024/4/25 15:54:00
--  
实际上我是想在跨表引用时,发货明细表增加的行的数据在保存后再引用,不是在录入后就引用,代码如何更改

[此贴子已经被作者于2024/4/25 15:57:10编辑过]

--  作者:有点蓝
--  发布时间:2024/4/25 16:33:00
--  
有什么区别呢?保存的时候再处理,效率会很低的