Foxtable(狐表)用户栏目专家坐堂 → 两列的值相互转换


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

主题:两列的值相互转换

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


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

新项目在开发阶段BOM不确定,常发生设计变更,将新项目产品的BOM表设计成如下列

 

材料代码      材料名        是否用替代料      替代材料代码     替代材料名

233456      RP334        (逻辑列)         334556          ND7568

 

希望点击逻辑列后,逻辑列左右两列的值互换

 

材料代码      材料名        是否用替代料      替代材料代码     替代材料名

334556      ND7568                            233456          RP334        

 

求助代码如何写!


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


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

 直接写就行了。

 dim temp = e.datarow("材料代码")
 e.datarow("材料代码") = e.datarow("替代材料代码")
 e.datarow("替代材料代码") = temp

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


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2013/10/26 22:03:00 [只看该作者]

Dim A,B,C,D As String
表的DataColChanged 事件:

If e.DataCol.Name = "是否用替代料" Then '如果用替代料列的内容变动
    If e.NewValue = True Then '而且变动后的值是True(已勾选)
        A= e.DataRow("材料代码")
        B= e.DataRow("材料名")
        C= e.DataRow("替代材料代码")
        D= e.DataRow("替代材料名")
        e.DataRow("材料代码")=C
        e.DataRow("材料名")=D
        e.DataRow("替代材料代码")=A
        e.DataRow("替代材料名")=B
    End If
End If


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


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

以下是引用sloyy在2013-10-26 22:03:00的发言:

Dim A,B,C,D As String
表的DataColChanged 事件:

If e.DataCol.Name = "是否用替代料" Then '如果用替代料列的内容变动
    If e.NewValue = True Then '而且变动后的值是True(已勾选)
        A= e.DataRow("材料代码")
        B= e.DataRow("材料名")
        C= e.DataRow("替代材料代码")
        D= e.DataRow("替代材料名")
        e.DataRow("材料代码")=C
        e.DataRow("材料名")=D
        e.DataRow("替代材料代码")=A
        e.DataRow("替代材料名")=B
    End If
End If

谢谢3楼,试了,报错。


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


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2013/10/27 9:46:00 [只看该作者]

字段全部设为string 你可能设置为数字了吧

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/10/27 11:13:00 [只看该作者]

If e.DataCol.Name = "是否用替代材料" Then
    If e.DataRow(e.DataCol) = True Then
        e.DataRow("材料代码") = e.DataRow.OriginalValue("替代材料代码")
        e.DataRow("材料名") = e.DataRow.OriginalValue("替代材料名")
        e.DataRow("替代材料名") = e.DataRow.OriginalValue("材料名")
        e.DataRow("替代材料代码") = e.DataRow.OriginalValue("材料代码")
    End If
End If

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


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

以下是引用lsy在2013-10-27 11:13:00的发言:
If e.DataCol.Name = "是否用替代材料" Then
    If e.DataRow(e.DataCol) = True Then
        e.DataRow("材料代码") = e.DataRow.OriginalValue("替代材料代码")
        e.DataRow("材料名") = e.DataRow.OriginalValue("替代材料名")
        e.DataRow("替代材料名") = e.DataRow.OriginalValue("材料名")
        e.DataRow("替代材料代码") = e.DataRow.OriginalValue("材料代码")
    End If
End If

Hi, 还是你的对。如果不用逻辑列判断,用双击"替代材料名",方法,将两列互换位置,并且点击可以往返,可以实行吗?


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/10/27 14:23:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:列值互换.table


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


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

太棒了,谢谢!


 回到顶部