以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 难题来了:用If 或 Case 还是其他的,能简化代码吗? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2280)
|
-- 作者:mr725
-- 发布时间:2009/4/3 22:36:00
-- 难题来了:用If 或 Case 还是其他的,能简化代码吗?
此主题相关图片如下:用if 还是 case 或其他,怎样简化这样的选择?.jpg
If e.Row("A") = True
andalso
e.Row("B") = False
andalso
e.Row("C") = False
andalso
e.Row("D") = False
andalso
e.Row("E") = False
andalso
e.Row("F") = False Then Forms("窗口").open() Forms("窗口").Controls("textboxA").Enabled = True Forms("窗口").Controls("textboxB").Enabled = False Forms("窗口").Controls("textboxC").Enabled = False Forms("窗口").Controls("textboxD").Enabled = False Forms("窗口").Controls("textboxE").Enabled = False Forms("窗口").Controls("textboxF").Enabled = False
Elseif e.Row("A") = True
andalso
e.Row("B") = True andalso
e.Row("C") = False
andalso
e.Row("D") = False andalso e.Row("E") = False andalso e.Row("F") = False Then Forms("窗口").open() Forms("窗口").Controls("textboxA").Enabled = True Forms("窗口").Controls("textboxB").Enabled = True Forms("窗口").Controls("textboxC").Enabled = False Forms("窗口").Controls("textboxD").Enabled = False Forms("窗口").Controls("textboxE").Enabled = False Forms("窗口").Controls("textboxF").Enabled = False Eseif e.Row("A") = True
andalso
e.Row("B") = True
andalso
e.Row("C") = True
andalso
e.Row("D") = False
andalso
e.Row("E") = False
andalso
e.Row("F") = False Then Forms("窗口").open() Forms("窗口").Controls("textboxA").Enabled = True Forms("窗口").Controls("textboxB").Enabled = True Forms("窗口").Controls("textboxC").Enabled = True Forms("窗口").Controls("textboxD").Enabled = False Forms("窗口").Controls("textboxE").Enabled = False Forms("窗口").Controls("textboxF").Enabled = False .........
排列组合有720个啊,谁能简化这个代码吗??????? .......... ......... End If
应2、3楼要求补上执行代码!~
[此贴子已经被作者于2009-4-3 23:53:56编辑过]
|
-- 作者:shaof
-- 发布时间:2009/4/3 22:51:00
--
你应该貼出执行代码,让大家看看有没有规律。
|
-- 作者:程兴刚
-- 发布时间:2009/4/3 23:25:00
--
应该能简化,只是像您贴代码,大家不好下手!
[此贴子已经被作者于2009-4-3 23:35:05编辑过]
|
-- 作者:mr725
-- 发布时间:2009/4/3 23:43:00
--
......执行1 Forms("窗口").open() Forms("窗口").Controls("textboxA").Enabled = True Forms("窗口").Controls("textboxB").Enabled = False Forms("窗口").Controls("textboxC").Enabled = False Forms("窗口").Controls("textboxD").Enabled = False Forms("窗口").Controls("textboxE").Enabled = False Forms("窗口").Controls("textboxF").Enabled = False
......执行2: Forms("窗口").open() Forms("窗口").Controls("textboxA").Enabled = True Forms("窗口").Controls("textboxB").Enabled = True Forms("窗口").Controls("textboxC").Enabled = False Forms("窗口").Controls("textboxD").Enabled = False Forms("窗口").Controls("textboxE").Enabled = False Forms("窗口").Controls("textboxF").Enabled = False
...............
这样能下手吗?????
[此贴子已经被作者于2009-4-3 23:47:25编辑过]
|
-- 作者:czy
-- 发布时间:2009/4/4 0:06:00
--
没有问题,而且可以简化的让你无法相信。
代码放在哪个事件中?
|
-- 作者:mr725
-- 发布时间:2009/4/4 0:08:00
--
代码放在按钮中即可~ 谢谢了 。
|
-- 作者:czy
-- 发布时间:2009/4/4 0:16:00
--
按钮代码:Forms("窗口").open()
要打开的窗口AfterLoad事件代码。
Dim r As Row = CurrentTable.Current e.Form.Controls("textboxA").Enabled = r("A") e.Form.Controls("textboxB").Enabled = r("B") e.Form.Controls("textboxC").Enabled = r("C") e.Form.Controls("textboxD").Enabled = r("D") e.Form.Controls("textboxE").Enabled = r("E") e.Form.Controls("textboxF").Enabled = r("F")
|
-- 作者:czy
-- 发布时间:2009/4/4 0:22:00
--
全部放在按钮中就这样。
Forms("窗口").open() Dim r As Row = CurrentTable.Current Forms("窗口").Controls("textboxA").Enabled = r("A") Forms("窗口").Controls("textboxB").Enabled = r("B") Forms("窗口").Controls("textboxC").Enabled = r("C") Forms("窗口").Controls("textboxD").Enabled = r("D") Forms("窗口").Controls("textboxE").Enabled = r("E") Forms("窗口").Controls("textboxF").Enabled = r("F")
|
-- 作者:程兴刚
-- 发布时间:2009/4/4 0:23:00
--
水平差就是不行,我这个才是正确的:
Dim r As Row = CurrentTable.Current Dim Multi As String = "A|B|C|D|E|F" Dim Values() as String Values = Multi.split("|") Forms("窗口").open() For Index As Integer = 0 To Values.Length - 1 Forms("窗口").Controls("TextBox" & Values(Index)).Enabled = r(Values(Index)) Next
[此贴子已经被作者于2009-4-4 1:09:48编辑过]
|
-- 作者:mr725
-- 发布时间:2009/4/4 0:27:00
--
我只是对象这样有规则的代码不会简化,版主可以做个放在‘命令窗口’中能执行即可,多谢啊~
|