Foxtable(狐表)用户栏目专家坐堂 → [讨论] DataColChanged与跨表复制


  共有6463人关注过本帖树形打印复制链接

主题:[讨论] DataColChanged与跨表复制

帅哥哟,离线,有人找我吗?
lsy
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
[讨论] DataColChanged与跨表复制  发帖心情 Post By:2013/10/25 22:54:00 [显示全部帖子]

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

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/10/26 8:32:00 [显示全部帖子]

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

 例子测试没问题。

辛苦你了,谢谢。


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By: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


 回到顶部