Foxtable(狐表)用户栏目专家坐堂 → 求一小段代码类似逻辑列的排他式!


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

主题:求一小段代码类似逻辑列的排他式!

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


加好友 发短信
等级:婴狐 帖子:60 积分:490 威望:0 精华:0 注册:2014/7/11 9:16:00
求一小段代码类似逻辑列的排他式!  发帖心情 Post By:2014/8/13 15:43:00 [只看该作者]

有一个逻辑列,要求这个列只能选定一个,选择新的时候自动去掉旧的。我看帮助里逻辑列排他式修改了半天都不行。哎

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


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

  一个逻辑列,还是多个逻辑列?例子发上来看看

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


加好友 发短信
等级:婴狐 帖子:60 积分:490 威望:0 精华:0 注册:2014/7/11 9:16:00
  发帖心情 Post By:2014/8/13 15:51:00 [只看该作者]

一个 这个是帮助里多个列的例子。但是我就需要一个

Select Case e.DataCol.Name
    Case
"选项A","选项B","选项C","选项D"
        If
e.NewValue = True Then
            Dim
nms() As String = {"选项A","选项B","选项C","选项D"}
           
For Each nm As String In nms
                If nm <> e.DataCol.Name AndAlso e.DataRow(nm) = True Then
                    e.DataRow(nm) = False
                End If
           
Next
        End If
End Select

[此贴子已经被作者于2014-8-13 15:52:19编辑过]

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


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

DataColChanged 事件

 
If e.DataCol.Name = "逻辑列" AndAlso e.DataRow("逻辑列") = True Then
    e.DataTable.ReplaceFor("逻辑列", False, "_Identify <> " & e.DataRow("_Identify"))
End If


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


加好友 发短信
等级:婴狐 帖子:60 积分:490 威望:0 精华:0 注册:2014/7/11 9:16:00
  发帖心情 Post By:2014/8/13 16:02:00 [只看该作者]

谢谢甜老师,虽然没怎么看明白代码的意思,但是很好用。

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


加好友 发短信
等级:婴狐 帖子:60 积分:490 威望:0 精华:0 注册:2014/7/11 9:16:00
  发帖心情 Post By:2014/8/15 15:24:00 [只看该作者]

这段代码非常管用,但是现在又有一个问题,就是当我选定这个表的某个行时(这个表是运行年度表),另一个表(关联或者未关联)自动勾选与之对应年份的所有行,并且去掉之前选择的行。

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


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

以下是引用coolbhb在2014-8-15 15:24:00的发言:
这段代码非常管用,但是现在又有一个问题,就是当我选定这个表的某个行时(这个表是运行年度表),另一个表(关联或者未关联)自动勾选与之对应年份的所有行,并且去掉之前选择的行。

 

 

If e.DataCol.Name = "逻辑列" AndAlso e.DataRow("逻辑列") = True Then
    e.DataTable.ReplaceFor("逻辑列", False, "_Identify <> " & e.DataRow("_Identify"))

    DataTables("另一个表").ReplaceFor("逻辑列", False, "年份 <> '" & e.DataRow("年份") & "'")

    DataTables("另一个表").ReplaceFor("逻辑列", True, "年份 = '" & e.DataRow("年份") & "'")
End If

[此贴子已经被作者于2014-8-15 15:37:49编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8418 威望:0 精华:0 注册:2012/10/29 20:09:00
  发帖心情 Post By:2015/2/22 10:30:00 [只看该作者]

正用到,收藏学习。


 回到顶部