以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  if条件较多怎么解决?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=154503)

--  作者:wh420
--  发布时间:2020/9/16 16:42:00
--  if条件较多怎么解决?
if条件比较多,如何先判断完后以变量形式记录当成参数传入到自定义函数中?请老师帮我代码举例说明。


例如:窗口中有5个checkbox,每个checkbox选中的状态都需要IF判断并执行相应代码。有选中两个的情况,有选中3个的情况,有都选中的情况。。。。需要判断的比较多。

怎么实现简单些。

--  作者:有点蓝
--  发布时间:2020/9/16 16:54:00
--  
简单不了。建议从业务的角度,从设计上解决。不如详细说明一下要做什么功能
--  作者:z769036165
--  发布时间:2020/9/16 17:08:00
--  
可以加个标签做中间变量,转换一下
选中则把标签加1个变量,取消选中,则替换那个变量
最后判断这个标签

--  作者:wh420
--  发布时间:2020/9/16 17:14:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目6.foxdb

老师帮忙看看,IF一多有点绕晕了,想实现的功能就是每种CHECKBOX的情况都要被考虑到,并像楼上那位老师说的加标签变量。

--  作者:有点蓝
--  发布时间:2020/9/16 17:21:00
--  
没看懂,有多少种判断逻辑?有多少种组合判断结果?使用文字说一下
--  作者:wh420
--  发布时间:2020/9/17 10:56:00
--  
1、全不选的情况
2、全选的情况
3、1和2 checbox被选中的情况
4、2和3 被选中的情况
5、1和3被选中的情况
总之3个checkbox所有情况都组合一遍,判断完后有一个变量记着这个结果。我好要在函数里用。
[此贴子已经被作者于2020/9/17 11:14:11编辑过]

--  作者:有点蓝
--  发布时间:2020/9/17 11:14:00
--  
那么总共有7种组合,这些组合全部都是互斥的条件,只能逐个判断,没有其它办法

if 全不选(checkbox1.checked=false and checkbox2.checked=false and .....

elseif 全选checkbox1.checked=true and checkbox2.checked=true and .....

elseif 只选1checkbox1.checked=true and checkbox2.checked=false and .....

elseif ...

elseif 1和2 checbox被选中checkbox1.checked=true and checkbox2.checked=true and checkbox3.checked=false 

elseif ...

或者这样判断:
dim s as string
for i as integer = 1 to 3
if e.form.controls("checkbox" & i).checked then
s = s & "1"
else
s = s & "0"
end if
next

select case s
case "000" \'全不选

case "111" \'全选
case "100" \'只选1
case "110" \'1和2 checbox被选中
……

end select

--  作者:wh420
--  发布时间:2020/9/17 11:45:00
--  
OK,明白了。
现在想把每次点选后的结果赋值给一个标签,这个标签怎么写最好?好让我能在自定义函数里调用。

--  作者:有点蓝
--  发布时间:2020/9/17 11:57:00
--  
e.form.controls("lable1").text= ”xxx值“

或者使用全局变量