以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  非关联表之间的数据同步过程中的判读  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=105972)

--  作者:zhimin
--  发布时间:2017/8/30 9:35:00
--  非关联表之间的数据同步过程中的判读
各位老师好!
在以下非关联表之间的数据同步代码中,如何实现一个判断:在产品表中修改一个产品名称,如果对应这个产品名称的产品编号在库存表不存在,则库存表增加一行(包括产品编号、产品名称、产品规格等);反之,如果对应这个产品名称的产品编号已存在,则库存表不做任何改动。
谢谢!
Select Case e.DataCol.name
    Case "产品编号"
        Dim dr As DataRow = DataTables("库存").Find("产品编号 = \'" & e.OldValue & "\'")
        
If dr Is Nothing Then 
            dr = DataTables(
"
库存").AddNew()
            dr(
"
产品编号") = e.DataRow("产品编号")
            dr(
"
产品名称") = e.DataRow("产品名称")
            dr(
"
产品规格") = e.DataRow("产品规格")
        Else
            dr(
"
产品编号") = e.DataRow("产品编号")
        End If
    Case 
"
产品名称","产品规格"
        Dim dr As DataRow = DataTables(
"
库存").Find("产品编号 = \'" & e.DataRow("产品编号") & "\'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        
End If
End
 Select

--  作者:有点甜
--  发布时间:2017/8/30 9:58:00
--  
    Case "产品名称","产品规格"
        Dim dr As DataRow = DataTables("库存").Find("产品编号 = \'" & e.DataRow("产品编号") & "\'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        Else
            dr = DataTables("库存").AddNew()
            dr("产品编号") = e.DataRow("产品编号")
            dr("产品名称") = e.DataRow("产品名称")
            dr("产品规格") = e.DataRow("产品规格")

        End If

--  作者:zhimin
--  发布时间:2017/8/30 12:19:00
--  
搞定,谢谢!
--  作者:zhimin
--  发布时间:2017/9/8 23:01:00
--  
抱歉,我试一下,我没表达正确,没能真正实现我的想法。我的想法是:
1、A表/B表均都有同一列:单位名称;
2、B表中修改或者增加了“单位名称”单元格内容;通过编码判断这个新输入或者修改的“单位名称”信息,如果这个信息在A表“单位名称”列中已存在,则A表不做变化;如果A表中没有这个单位名称,则在A表中增加行,“单位名称”列的信息即是B表中“新输入/修改”的信息。
请问如何实现。
这两个A表/B表是非关联表格。
谢谢!

--  作者:有点蓝
--  发布时间:2017/9/8 23:11:00
--  
B表,Datacolchanged

Select Case e.DataCol.name
    Case "单位名称"
        Dim dr As DataRow = DataTables("A表").Find("单位名称 = \'" & e.DataRow("单位名称") & "\'")
        If dr Is Nothing Then
            dr = DataTables("A表").AddNew()
            dr("单位名称") = e.DataRow("单位名称")
        End If
End Select