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


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

主题:[讨论] 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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/10/25 23:13:00 [只看该作者]

 呵呵,看错了,以为是有这个缺陷,就反复测试图片点击可在新窗口打开查看看到第二段,才猛然醒悟。

 例子测试没问题。

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


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
  发帖心情 Post By:2013/10/25 23:36:00 [只看该作者]

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


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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的发言:
 呵呵,看错了,以为是有这个缺陷,就反复测试图片点击可在新窗口打开查看看到第二段,才猛然醒悟。

 例子测试没问题。

辛苦你了,谢谢。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/10/26 9:22:00 [只看该作者]

呵呵,不错


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/10/26 9:26:00 [只看该作者]


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/10/26 9:30:00 [只看该作者]

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

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

 

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

 

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

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/10/26 11:15:00 [只看该作者]

呵呵,是的,你这个稳妥。

 回到顶部