以文本方式查看主题

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

--  作者:工匠
--  发布时间:2025/3/12 11:51:00
--  跨表更新
老师好!

      关于跨表更新,请教一段代码,请帮看看,谢谢!

Select Case e.DataCol.Name
    Case "物料名称"   \'\'\'改变表列 "产品物料信息表"
        
        Dim Filter As String = "[子件编码] = \'" & e.DataRow("物料编码") & "\'"
        Dim drs As List(Of DataRow) = DataTables("BOM明细").Select(Filter)
        For Each dr As DataRow In drs
            dr(e.DataCol.Name) = e.NewValue
            \'\'\'现在在"产品物料信息表"修改"物料名称"列, "BOM明细"表里用到此物料的"物料名称"列会自动更新,
            \'\'\'需要实现 "BOM明细"表里用到此物料的"子件物料名称"列等于修改后"产品物料信息表的""物料名称"
            
        Next
End Select

                       谢谢!

--  作者:y2287958
--  发布时间:2025/3/12 11:58:00
--  
Select Case e.DataCol.Name
    Case "物料名称" \'\'\'改变表列 "产品物料信息表"
        Dim Filter As String = "[子件编码] = \'" & e.DataRow("物料编码") & "\'"
        DataTables("BOM明细").ReplaceFor(e.DataCol.Name, e.NewValue, Filter)
End Select

--  作者:工匠
--  发布时间:2025/3/12 12:38:00
--  
谢谢老师,可以了,换成实际列名等于修改值
非常感谢!

--  作者:denghui69986
--  发布时间:2025/3/12 14:24:00
--  
这代码是放在那事件代码