Foxtable(狐表)用户栏目专家坐堂 → if条件较多怎么解决?


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

主题:if条件较多怎么解决?

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


加好友 发短信
等级:三尾狐 帖子:790 积分:7446 威望:0 精华:0 注册:2014/2/19 16:32:00
if条件较多怎么解决?  发帖心情 Post By:2020/9/16 16:42:00 [只看该作者]

if条件比较多,如何先判断完后以变量形式记录当成参数传入到自定义函数中?请老师帮我代码举例说明。


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

怎么实现简单些。

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


加好友 发短信
等级:超级版主 帖子:57342 积分:290623 威望:0 精华:8 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/16 16:54:00 [只看该作者]

简单不了。建议从业务的角度,从设计上解决。不如详细说明一下要做什么功能

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


加好友 发短信
等级:一尾狐 帖子:404 积分:2973 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2020/9/16 17:08:00 [只看该作者]

可以加个标签做中间变量,转换一下
选中则把标签加1个变量,取消选中,则替换那个变量
最后判断这个标签

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


加好友 发短信
等级:三尾狐 帖子:790 积分:7446 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2020/9/16 17:14:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目6.foxdb

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

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


加好友 发短信
等级:超级版主 帖子:57342 积分:290623 威望:0 精华:8 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/16 17:21:00 [只看该作者]

没看懂,有多少种判断逻辑?有多少种组合判断结果?使用文字说一下

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


加好友 发短信
等级:三尾狐 帖子:790 积分:7446 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:超级版主 帖子:57342 积分:290623 威望:0 精华:8 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:790 积分:7446 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2020/9/17 11:45:00 [只看该作者]

OK,明白了。
现在想把每次点选后的结果赋值给一个标签,这个标签怎么写最好?好让我能在自定义函数里调用。

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


加好友 发短信
等级:超级版主 帖子:57342 积分:290623 威望:0 精华:8 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/17 11:57:00 [只看该作者]

e.form.controls("lable1").text= ”xxx值“

或者使用全局变量

 回到顶部