Foxtable(狐表)用户栏目专家坐堂 → 多条件代码怎么简洁


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

主题:多条件代码怎么简洁

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


加好友 发短信
等级:小狐 帖子:337 积分:3225 威望:0 精华:0 注册:2020/2/25 23:12:00
多条件代码怎么简洁  发帖心情 Post By:2021/9/18 11:31:00 [只看该作者]

这样的代码怎么简洁写,

checkbox1,2,3 的值 排列组合,可以是任意一种组合方式,执行的代码相应的变化

 

 

if forms("窗口1").controls("checkbox1").checked =true   and   forms("窗口1").controls("checkbox2").checked =false and   forms("窗口1").controls("checkbox3").checked =false   then

dim dr as list(of datarow)= datatables("表A").select("第列 =         ") 

end if

if forms("窗口1").controls("checkbox1").checked =false   and   forms("窗口1").controls("checkbox2").checked =true  and   forms("窗口1").controls("checkbox3").checked =false   then 

dim dr as list(of datarow)= datatables("表A").select("第列 =         ")  

end if

if forms("窗口1").controls("checkbox1").checked =true  and   forms("窗口1").controls("checkbox2").checked =true  and   forms("窗口1").controls("checkbox3").checked =false   then 

dim dr as list(of datarow)= datatables("表A").select("第列 =    and    第列 =         ")  

end if

f forms("窗口1").controls("checkbox1").checked =true  and   forms("窗口1").controls("checkbox2").checked =true  and   forms("窗口1").controls("checkbox3").checked =TRUE   then 

dim dr as list(of datarow)= datatables("表A").select("第列 =    and    第列 =  and   第列 =       ")  

end if

.

.

.


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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/18 11:42:00 [只看该作者]

dim s as string = ""
for i as integer = 1 to 3 
s = s & IIF(forms("窗口1").controls("checkbox" & i).checked,"1","0")
next

select case s
case "001"

case "010"
……

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


加好友 发短信
等级:狐神 帖子:4628 积分:33778 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2021/9/18 12:00:00 [只看该作者]

Dim dic As New Dictionary(Of object, String)
dic.add(forms("窗口13").controls("checkbox1"),"第一列 =         ")
dic.add(forms("窗口13").controls("checkbox2"),"第二列 =         ")
dic.add(forms("窗口13").controls("checkbox3"),"第三列 =         ")
Dim lst As new List(of String)
For Each k As object In dic.Keys
    If k.checked = True Then lst.add(dic(k))
Next
Output.Show(String.join(" and ",lst))

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/18 12:03:00 [只看该作者]

可能是我理解错了,参考这种:http://www.foxtable.com/webhelp/topics/1058.htm

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


加好友 发短信
等级:九尾狐 帖子:2192 积分:18023 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2021/9/18 14:00:00 [只看该作者]

Dim css As String = "第一列,第二列,第三列"
Dim cs As String() = css.Split(",")

Dim s As String = ""
For i As Integer = 1 To 3
    If forms("窗口1").controls("checkbox" & i).checked Then
        s &= cs(i-1) & "= 'xx' and "  
    End If 
Next
 
Dim drs As List(of DataRow) = DataTables("表A").Select(s.trim("a","n","d"," ")) 

 回到顶部