以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 非关联表格数据同步问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=169940)

--  作者:xtlwp
--  发布时间:2021/7/6 23:34:00
--  [求助] 非关联表格数据同步问题
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip

 
表 A ,表B两个数据表,在A表录入一行数据,表B同时增加一行,我在表A中datacolchanged中添加以下代码:
 Select e.DataCol.Name
    Case "单据编号","单位名称"
       If e.DataRow("单位名称") IsNot Nothing And e.DataRow("日期") IsNot Nothing And e.DataRow("单据编号") IsNot Nothing And e.DataRow("金额") IsNot Nothing 
        Dim dr As DataRow = DataTables("往来").Find("单位名称 = \'" & e.DataRow("单位名称") & "\' and 单据编号 = \'" & e.DataRow("单据编号")  & "\'and 日期 = \'" & e.DataRow("日期")  & "\'and 增加金额 = \'" & e.DataRow("金额")  & "\'")
        If dr Is Nothing Then
            dr = DataTables("往来").AddNew()
            dr("单位名称") = e.DataRow("单位名称")
            dr("日期") = e.DataRow("日期")
            dr("单据类型") = "费用"
            dr("单据编号") = e.DataRow("单据编号")
            dr("摘要") = e.DataRow("摘要")
            dr("增加金额") = e.DataRow("金额")
        End If
      End If
End Select

结果在A表录入一行数据后,B表出现2行数据,求助怎么解决


--  作者:y2287958
--  发布时间:2021/7/7 8:07:00
--  
两个列,每列的值都触动了一次就产生一行
--  作者:有点蓝
--  发布时间:2021/7/7 8:49:00
--  
Select e.DataCol.Name
    Case "单据编号"
       If e.DataRow.isnull("单据编号")=false
        Dim dr As DataRow = DataTables("往来").Find("单据编号 = \'" & e.DataRow("单据编号")  & "\'")
        If dr Is Nothing Then
            dr = DataTables("往来").AddNew()
            dr("单据编号") = e.DataRow("单据编号")
            dr("单据类型") = "费用"
        End If
            dr("单位名称") = e.DataRow("单位名称")
            dr("日期") = e.DataRow("日期")
            dr("摘要") = e.DataRow("摘要")
            dr("增加金额") = e.DataRow("金额")
      End If
    Case "单位名称","日期","金额","摘要"
        Dim dr As DataRow = DataTables("往来").Find(单据编号 = \'" & e.DataRow("单据编号")  & "\'")
        If dr Isnot Nothing Then
            dr("单位名称") = e.DataRow("单位名称")
            dr("日期") = e.DataRow("日期")
            dr("摘要") = e.DataRow("摘要")
            dr("增加金额") = e.DataRow("金额")
        End If
End Select