以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  非关联表数据同步  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=117714)

--  作者:7877485
--  发布时间:2018/4/18 9:22: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("配件名称")
        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

--  作者:有点甜
--  发布时间:2018/4/18 9:54:00
--  
Select Case e.DataCol.name
    Case "设备类型"  第一列是设备类型,第二列是配件名称,一种设备类型下有多个配件名称,新增一个已有的设备类型和配件名称,只会同步设备类型,配件名称不会同步
        Dim dr As DataRow = DataTables("库存").Find("设备类型 = \'" & e.OldValue & "\' and 配件名称 = \'" & e.DataRow("配件名称") & "\'")
        If dr Is Nothing Then
            dr = DataTables("库存").AddNew()
            dr("设备类型") = e.DataRow("设备类型")
            dr("配件名称") = e.DataRow("配件名称")
        Else
            dr("设备类型") = e.DataRow("设备类型")
        End If
    Case "配件名称"
        Dim dr As DataRow = DataTables("库存").Find("设备类型 = \'" & e.DataRow("设备类型") & "\' and 配件名称 = \'" & e.oldValue & "\'")
        If dr Is Nothing Then
            dr = DataTables("库存").AddNew()
            dr("设备类型") = e.DataRow("设备类型")
            dr("配件名称") = e.DataRow("配件名称")
        Else
            dr("配件名称") = e.DataRow("配件名称")
        End If
End Select
 
 
[此贴子已经被作者于2018/4/18 9:54:38编辑过]

--  作者:7877485
--  发布时间:2018/4/18 10:12:00
--  
还是不行,只会同步设备类型,不会同步配件名称
--  作者:7877485
--  发布时间:2018/4/18 10:13:00
--  

[此贴子已经被作者于2018/4/18 10:19:40编辑过]

--  作者:有点甜
--  发布时间:2018/4/18 10:18:00
--  
Select Case e.DataCol.name
    Case "设备类型"
        If e.DataRow.IsNull("设备类型") = False AndAlso e.DataRow.IsNull("配件名称") = False Then
            Dim dr As DataRow
            If e.OldValue = Nothing Then
                dr = DataTables("库存").Find("设备类型 = \'" & e.NewValue & "\' and 配件名称 = \'" & e.DataRow("配件名称") & "\'")
            Else
                dr = DataTables("库存").Find("设备类型 = \'" & e.oldvalue & "\' and 配件名称 = \'" & e.DataRow("配件名称") & "\'")
            End If
            If dr Is Nothing Then
                dr = DataTables("库存").AddNew()
                dr("设备类型") = e.DataRow("设备类型")
                dr("配件名称") = e.DataRow("配件名称")
               
            Else
                dr("设备类型") = e.DataRow("设备类型")
            End If
        End If
    Case "配件名称"
        If e.DataRow.IsNull("设备类型") = False AndAlso e.DataRow.IsNull("配件名称") = False Then
            Dim dr As DataRow
            If e.OldValue = Nothing Then
                dr = DataTables("库存").Find("设备类型 = \'" & e.DataRow("设备类型") & "\' and 配件名称 = \'" & e.NewValue & "\'")
            Else
                dr = DataTables("库存").Find("设备类型 = \'" & e.DataRow("设备类型") & "\' and 配件名称 = \'" & e.oldvalue & "\'")
            End If
            If dr Is Nothing Then
                dr = DataTables("库存").AddNew()
                dr("设备类型") = e.DataRow("设备类型")
                dr("配件名称") = e.DataRow("配件名称")
            Else
                dr("配件名称") = e.DataRow("配件名称")
            End If
        End If
End Select