以文本方式查看主题

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

--  作者:foxuser
--  发布时间:2017/11/17 9:25:00
--  非关联表数据同步失败
老师,
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:项目.rar

帮我看下这个项目数据同步失败呢?已上传实例
--  作者:有点甜
--  发布时间:2017/11/17 9:55:00
--  

表B,datacolchanged事件

 

Select Case e.DataCol.name
    Case "生产批车次号"
        If e.DataRow.IsNull("卷号") = False Then
            Dim dr As DataRow
            If e.OldValue = Nothing Then
                dr = DataTables("c表").Find("生产批号 = \'" & e.NewValue & e.DataRow("卷号") & "\'")
            Else
                dr = DataTables("c表").Find("生产批号 = \'" & e.oldvalue & e.DataRow("卷号") & "\'")
            End If
           
            If dr Is Nothing Then
                dr = DataTables("c表").AddNew()
            End If
            dr("生产批号") = e.NewValue & e.DataRow("卷号")
            dr("母卷号") = e.DataRow("母卷号")
        End If
    Case  "卷号"
        If e.DataRow.IsNull("生产批车次号") = False Then
            Dim dr As DataRow
            If e.OldValue = Nothing Then
                dr = DataTables("c表").Find("生产批号 = \'" & e.DataRow("生产批车次号") & e.DataRow("卷号") & "\'")
            Else
                dr = DataTables("c表").Find("生产批号 = \'" & e.DataRow("生产批车次号") & e.OldValue & "\'")
            End If
           
            If dr Is Nothing Then
                dr = DataTables("c表").AddNew()
            End If
            dr("生产批号") = e.DataRow("生产批车次号") & e.DataRow("卷号")
            dr("母卷号") = e.DataRow("母卷号")
        End If
End Select


--  作者:foxuser
--  发布时间:2017/11/17 11:25:00
--  
还是同步不了呢?
--  作者:有点甜
--  发布时间:2017/11/17 11:26:00
--  

 重置列

 

图片点击可在新窗口打开查看


--  作者:foxuser
--  发布时间:2017/11/17 13:56:00
--  
点重置列后,还是不能同步
--  作者:有点甜
--  发布时间:2017/11/17 14:09:00
--  

1、代码写到表BDataColChanged事件;

 

2、重置表B、生产批车次号、卷号 列。


--  作者:foxuser
--  发布时间:2017/11/17 15:26:00
--  
能否实现在C表输入B中某个批号时,才把相关数据同步过来呢?如:在表C录入批号NAC2017090601A03B01时,就会同步这个批号的母卷号过来呢?
现在的代码是在表B录入批号后,自动在C表添加一行数据了

--  作者:有点甜
--  发布时间:2017/11/17 15:31:00
--  

 

[此贴子已经被作者于2017/11/17 15:31:34编辑过]

--  作者:有点甜
--  发布时间:2017/11/17 15:38:00
--  

表C代码

 

Select Case e.DataCol.name
    Case "生产批号"
        Dim dr As DataRow = DataTables("B表").Find("生产出货批号 = \'" &  e.newValue & "\'")
        If dr IsNot Nothing Then
            e.DataRow("母卷号") = dr("母卷号")
        End If
End Select