以文本方式查看主题

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

--  作者:冷泉
--  发布时间:2020/4/11 22:22:00
--  非关联表之间的数据同步

老师您好,我想问下,因为库存表是采用动态加载每页显示50行,商品资料修改了其中一个产品名称,但是库存表在第三页没有加载出来,用下面的代码无法同步更新修改后的产品名称


设计步骤

1、将产品表的DataColChanged事件代码设置为:

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

2、将产品表的DataRowDeleting事件代码设置为:

Dim dr As DataRow = DataTables("库存").Find("产品编号 = \'" & e.DataRow("产品编号"& "\'")
If
 dr IsNot Nothing Then
    dr.
Delete()

End
 If


--  作者:冷泉
--  发布时间:2020/4/11 23:55: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 Is Nothing Then
            dr = DataTables("库存").SqlFind("商品编号 = \'" & e.DataRow("商品编号") & "\'")
        End If        
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select

--  作者:有点蓝
--  发布时间:2020/4/12 21:48:00
--  
就这样用