Foxtable(狐表)用户栏目专家坐堂 → [求助]代码太长,看能不能简化?


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

主题:[求助]代码太长,看能不能简化?

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


加好友 发短信
等级:童狐 帖子:212 积分:1564 威望:0 精华:0 注册:2011/7/20 21:00:00
[求助]代码太长,看能不能简化?  发帖心情 Post By:2011/8/3 10:13:00 [只看该作者]

If e.form.Controls("ComboBox1").Value Is Nothing Then
    MsgBox("请选择患者住院号!",64,"提示")
    Return
End If
If e.Form.Controls("DateTimePicker1").Value Is Nothing And e.Form.Controls("ComboBox5").Value IsNot Nothing Then
    Dim r As Row = CurrentTable.AddNew
    r("住院号") =e.Form.Controls("ComboBox1").value.split(":")(2)
    r("开嘱日期") =Date.Today
    r("医生") =e.Form.Controls("ComboBox5").value.split(":")(1)
End If
If e.Form.Controls("DateTimePicker1").Value Is Nothing And e.Form.Controls("ComboBox5").Value Is Nothing Then
    Dim r As Row = CurrentTable.AddNew
    r("住院号") =e.Form.Controls("ComboBox1").value.split(":")(2)
    r("开嘱日期") =Date.Today
End If
If e.Form.Controls("DateTimePicker1").Value IsNot Nothing And e.Form.Controls("ComboBox5").Value Is Nothing Then
    Dim r As Row = CurrentTable.AddNew
    r("住院号") =e.Form.Controls("ComboBox1").value.split(":")(2)
    r("开嘱日期") =e.Form.Controls("DateTimePicker1").value
End If
If e.Form.Controls("DateTimePicker1").Value IsNot Nothing And e.Form.Controls("ComboBox5").Value IsNot Nothing Then
    Dim r As Row = CurrentTable.AddNew
    r("住院号") =e.Form.Controls("ComboBox1").value.split(":")(2)
    r("开嘱日期") =e.Form.Controls("DateTimePicker1").value
    r("医生") =e.Form.Controls("ComboBox5").value.split(":")(1)
End If

 

说明:主要是对"开嘱日期"、"医生"进行判断:

1、"开嘱日期"等于  "空 "、"医生"不等于 "空  "  则

2、"开嘱日期"等于 "空 "、"医生"等于 "空  ",则

1、"开嘱日期"不等于"空 "、"医生"等于 "空  "  则

2、"开嘱日期"不等于 "空 "、"医生"不等于 "空  ",则

判断条件太多,能不能简化?

因为我还存在一个三联式判断,那就更复杂了。

 

[此贴子已经被作者于2011-8-3 10:27:25编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/3 10:20:00 [只看该作者]

If e.form.Controls("ComboBox1").Value Is Nothing Then
    MsgBox("请选择患者住院号!",64,"提示")
    Return
End If
Dim r As Row = CurrentTable.AddNew
If e.Form.Controls("DateTimePicker1").Value Is Nothing And e.Form.Controls("ComboBox5").Value IsNot Nothing Then
    r("住院号") =e.Form.Controls("ComboBox1").value.split(":")(2)
    r("开嘱日期") =Date.Today
    r("医生") =e.Form.Controls("ComboBox5").value.split(":")(1)
End If
If e.Form.Controls("DateTimePicker1").Value Is Nothing And e.Form.Controls("ComboBox5").Value Is Nothing Then
    r("住院号") =e.Form.Controls("ComboBox1").value.split(":")(2)
    r("开嘱日期") =Date.Today
End If
If e.Form.Controls("DateTimePicker1").Value IsNot Nothing And e.Form.Controls("ComboBox5").Value Is Nothing Then
    r("住院号") =e.Form.Controls("ComboBox1").value.split(":")(2)
    r("开嘱日期") =e.Form.Controls("DateTimePicker1").value
End If
If e.Form.Controls("DateTimePicker1").Value IsNot Nothing And e.Form.Controls("ComboBox5").Value IsNot Nothing Then
    r("住院号") =e.Form.Controls("ComboBox1").value.split(":")(2)
    r("开嘱日期") =e.Form.Controls("DateTimePicker1").value
    r("医生") =e.Form.Controls("ComboBox5").value.split(":")(1)
End If 

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


加好友 发短信
等级:童狐 帖子:212 积分:1564 威望:0 精华:0 注册:2011/7/20 21:00:00
  发帖心情 Post By:2011/8/3 10:31:00 [只看该作者]

老总真快啊,太谢谢了。简化只能到此吗?那我后面的一个代码就更长了,需要8-9个IF.

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/3 10:36:00 [只看该作者]

If e.form.Controls("ComboBox1").Value Is Nothing Then
    MsgBox("请选择患者住院号!",64,"提示")
    Return
End If
Dim r As Row = CurrentTable.AddNew
r("住院号") =e.Form.Controls("ComboBox1").value.split(":")(2)
If e.Form.Controls("DateTimePicker1").Value Is Nothing Then
    r("开嘱日期") =Date.Today
Else
    r("开嘱日期") =e.Form.Controls("DateTimePicker1").value
End If
If  e.Form.Controls("ComboBox5").Value IsNot Nothing Then
    r("医生") =e.Form.Controls("ComboBox5").value.split(":")(1)
End If

 回到顶部