Foxtable(狐表)用户栏目专家坐堂 → 难题来了:用If 或 Case 还是其他的,能简化代码吗?


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

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

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
难题来了:用If 或 Case 还是其他的,能简化代码吗?  发帖心情 Post By: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编辑过]

 回到顶部
美女呀,离线,留言给我吧!
shaof
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:67 积分:491 威望:0 精华:0 注册:2008/9/11 15:30:00
  发帖心情 Post By:2009/4/3 22:51:00 [只看该作者]

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


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2009/4/3 23:25:00 [只看该作者]

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

[此贴子已经被作者于2009-4-3 23:35:05编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33957 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/4/4 0:06:00 [只看该作者]

没有问题,而且可以简化的让你无法相信。

代码放在哪个事件中?

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/4/4 0:08:00 [只看该作者]

代码放在按钮中即可~  谢谢了 。

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33957 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33957 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By: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楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By: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
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/4/4 0:27:00 [只看该作者]

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


 回到顶部
总数 18 1 2 下一页