以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  求一小段代码类似逻辑列的排他式!  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=55269)

--  作者:coolbhb
--  发布时间:2014/8/13 15:43:00
--  求一小段代码类似逻辑列的排他式!
有一个逻辑列,要求这个列只能选定一个,选择新的时候自动去掉旧的。我看帮助里逻辑列排他式修改了半天都不行。哎
--  作者:有点甜
--  发布时间:2014/8/13 15:44:00
--  
  一个逻辑列,还是多个逻辑列?例子发上来看看
--  作者:coolbhb
--  发布时间: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编辑过]

--  作者:有点甜
--  发布时间: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
--  发布时间:2014/8/13 16:02:00
--  
谢谢甜老师,虽然没怎么看明白代码的意思,但是很好用。
--  作者:coolbhb
--  发布时间:2014/8/15 15:24:00
--  
这段代码非常管用,但是现在又有一个问题,就是当我选定这个表的某个行时(这个表是运行年度表),另一个表(关联或者未关联)自动勾选与之对应年份的所有行,并且去掉之前选择的行。
--  作者:有点甜
--  发布时间: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编辑过]

--  作者:花开的声音
--  发布时间:2015/2/22 10:30:00
--  

正用到,收藏学习。