Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共18 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:难题来了:用If 或 Case 还是其他的,能简化代码吗?

1楼
mr725 发表于:2009/4/3 22:36:00

图片点击可在新窗口打开查看此主题相关图片如下:用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编辑过]
2楼
shaof 发表于:2009/4/3 22:51:00

你应该貼出执行代码,让大家看看有没有规律。

3楼
程兴刚 发表于:2009/4/3 23:25:00

应该能简化,只是像您贴代码,大家不好下手!

[此贴子已经被作者于2009-4-3 23:35:05编辑过]
4楼
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编辑过]
5楼
czy 发表于:2009/4/4 0:06:00
没有问题,而且可以简化的让你无法相信。

代码放在哪个事件中?
6楼
mr725 发表于:2009/4/4 0:08:00
代码放在按钮中即可~  谢谢了 。
7楼
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")

8楼
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")
9楼
程兴刚 发表于: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编辑过]
10楼
mr725 发表于:2009/4/4 0:27:00

我只是对象这样有规则的代码不会简化,版主可以做个放在‘命令窗口’中能执行即可,多谢啊~

共18 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03491 s, 2 queries.