以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [讨论] DataColChanged与跨表复制  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=41733)

--  作者:lsy
--  发布时间:2013/10/25 22:54:00
--  [讨论] DataColChanged与跨表复制

DataColChanged事件中,根据编号列判断是否跨表复制,但反复重置列,或修改编号,都会复制不该复制的行。

本例似乎克服了这一缺陷,欢迎大家挑刺。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:跨表复制.table


--  作者:有点甜
--  发布时间:2013/10/25 23:13:00
--  
 呵呵,看错了,以为是有这个缺陷,就反复测试图片点击可在新窗口打开查看看到第二段,才猛然醒悟。

 例子测试没问题。

--  作者:tj-pacer
--  发布时间:2013/10/25 23:36:00
--  

这样就可实现两个无关联的表同时增加相关行了。


--  作者:lsy
--  发布时间:2013/10/26 8:32:00
--  
以下是引用有点甜在2013-10-25 23:13:00的发言:
 呵呵,看错了,以为是有这个缺陷,就反复测试图片点击可在新窗口打开查看看到第二段,才猛然醒悟。

 例子测试没问题。

辛苦你了,谢谢。


--  作者:狐狸爸爸
--  发布时间:2013/10/26 9:22:00
--  

呵呵,不错


--  作者:Bin
--  发布时间:2013/10/26 9:26:00
--  

--  作者:狐狸爸爸
--  发布时间:2013/10/26 9:30:00
--  

不过帮助的方法,应该更简单高效一些,只用找一次就行了:

http://www.foxtable.com/help/topics/2490.htm

 

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

 

[此贴子已经被作者于2013-10-26 9:32:33编辑过]

--  作者:lsy
--  发布时间:2013/10/26 10:40:00
--  
以下是引用狐狸爸爸在2013-10-26 9:30:00的发言:

不过帮助的方法,应该更简单高效一些,只用找一次就行了:

http://www.foxtable.com/help/topics/2490.htm

 

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

 

[此贴子已经被作者于2013-10-26 9:32:33编辑过]

帮助中的代码,没有判断新值,会在复制表中造成编号列重复,不行的。


--  作者:lsy
--  发布时间:2013/10/26 10:50:00
--  

还得多加判断:

If e.DataCol.Name = "编号" Then
    Dim dr As DataRow
    Dim olddr As DataRow = DataTables("员工复制").Find("编号 = \'" & e.OldValue & "\'")
    Dim newdr As DataRow = DataTables("员工复制").Find("编号 = \'" & e.NewValue & "\'")
    If olddr Is Nothing AndAlso newdr Is Nothing Then
        dr = DataTables("员工复制").AddNew()
    Else
        If olddr("编号") <> e.NewValue AndAlso newdr("编号") <> e.NewValue Then
            olddr("编号") = e.NewValue
        End If
        Return
    End If
    For Each dc As DataCol In e.DataTable.DataCols
        For Each dc1 As DataCol In DataTables("员工复制").DataCols
            If dc.Name = dc1.Name Then
                dr(dc1.Name) = e.DataRow(dc.Name)
            End If
        Next
    Next
End If


--  作者:狐狸爸爸
--  发布时间:2013/10/26 11:15:00
--  
呵呵,是的,你这个稳妥。