以文本方式查看主题

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

--  作者:kittyzhang
--  发布时间:2018/1/10 11:24: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("型号规格")
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



我想实现,当“采购表”增加一行,“采购验证表”也增加一行。并且把采购表新增行里“设备名称”“型号规格”“数量”“单位”“申购人”列的内容复制“采购验证表”中

按上面这样写只能实现当编号发生更改才能复制内容  请教大大,改如何写?

--  作者:有点甜
--  发布时间:2018/1/10 11:42:00
--  

DataRowAdded事件

 

e.DataRow.Save

dim dr = DataTables("采购验证表").AddNew()

dr("编号") = e.DataRow("_Identify")
 
DataColChanged事件
 
Select Case e.DataCol.name
    Case "编号","设备名称","型号规格","数量","单位","申购人"
        Dim dr As DataRow = DataTables("采购验证表").Find("编号 = \'" & e.DataRow("_Identify") & "\'")
        If dr IsNot Nothing Then
            dr("设备名称") = e.DataRow("设备名称")
            dr("型号规格") = e.DataRow("型号规格")
            dr("数量") = e.DataRow("数量")
            dr("单位") = e.DataRow("单位")
            dr("申购人") = e.DataRow("申购人")
        End If
End Select
[此贴子已经被作者于2018/1/12 12:06:06编辑过]

--  作者:kittyzhang
--  发布时间:2018/1/12 11:50:00
--  
按上面的操作不正确,不能复制过去

有两张表,一张采购表 一张采购验证表
当采购表新增一行数据的时候,采购验证表里面也增加一行数据,采购表新增的这一行数据里面的“设备名称”“型号规格”“数量”“单位”“申购人”“编号”复制到采购验证表的相同名称行里。
当采购表对应行数据发生变更的时候采购验证表数据也发生变更。


--  作者:有点甜
--  发布时间:2018/1/12 12:06:00
--  

2楼代码肯定没问题。(请重新看一下,测试一下)

 

如果有问题,请上传实例说明。

[此贴子已经被作者于2018/1/12 12:06:24编辑过]