以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  逻辑列实现单选 功能  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186852)

--  作者:lianghanyu
--  发布时间:2023/6/3 8:54:00
--  逻辑列实现单选 功能
我有一个 任务状态的逻辑列,我想把它做成只能是单选的 在DataColChanged中加入以下代码
Select Case e.DataCol.Name
     Case "任务状态"
        If e.DataRow("任务状态") = True Then
         
            Dim drs As List(Of DataRow) = DataTables("信息记录").SQLSelect("任务状态 = 1")
            If drs.Count > 0 Then 
                For Each dr As DataRow In drs
                    dr("任务状态") = 0
                    dr.Save
                Next
                
            End If 
        End If 
        
End Select
这样做,如果我每次操作只勾选一行,可以实现把其它已经的清除掉勾选 。  但是如果我勾选多行,再保存,它会把我勾选的多行都可以选 中,  无法实现单选

--  作者:有点蓝
--  发布时间:2023/6/3 9:12:00
--  
       If e.DataRow("任务状态") = True Then
                 Dim drs As List(Of DataRow) = DataTables("信息记录").SQLSelect("任务状态 = 1")
                For Each dr As DataRow In drs
                    dr("任务状态") = false
                Next    
DataTables("信息记录").SQLUpdate(drs) http://www.foxtable.com/webhelp/topics/2901.htm
            Dim drs As List(Of DataRow) = DataTables("信息记录").Select("任务状态 = true and _identify <>" & e.DataRow("_identify"))
                For Each dr As DataRow In drs
                    dr("任务状态") = false
                Next
        End If 

如果数据是全部加载的,没有必要使用SQLSelect,直接去掉第一段SQLSelect的代码即可

--  作者:lianghanyu
--  发布时间:2023/6/3 9:55:00
--  
谢谢!