以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- [求助] 组合条件 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=111440) |
-- 作者:zcgmxf -- 发布时间:2017/12/21 21:42:00 -- [求助] 组合条件 老师,下面的字符串如果包括三项还好写代码,如果有五项,排列组合120个,不知如何理顺这个逻辑关系,该如何简化代码?谢谢! Dim str As String = r("体检项目") If str.Contains("内科") And str.Contains("外科") = False And str.Contains("神经系统") = False Then If r("内科_确认检查") = False Then lb2.Text = "内外科未检" lb2.ForeColor = Color.red Else lb2.Text = "内外科已检" lb2.ForeColor = Color.blue End If ElseIf str.Contains("内科") And str.Contains("外科") And str.Contains("神经系统") = False Then If r("外科_确认检查") = False Or r("内科_确认检查") = False Then lb2.Text = "内外科未检" lb2.ForeColor = Color.red Else lb2.Text = "内外科已检" lb2.ForeColor = Color.blue End If ElseIf str.Contains("内科") And str.Contains("外科") And str.Contains("神经系统") Then If r("神经系统_确认检查") = False Or r("外科_确认检查") = False Or r("内科_确认检查") = False Then lb2.Text = "内外科未检" lb2.ForeColor = Color.red Else lb2.Text = "内外科已检" lb2.ForeColor = Color.blue End If ElseIf str.Contains("内科") = False And str.Contains("外科") And str.Contains("神经系统") Then If r("外科_确认检查") = False Or r("内科_确认检查") = False Then lb2.Text = "内外科未检" lb2.ForeColor = Color.red Else lb2.Text = "内外科已检" lb2.ForeColor = Color.blue End If ElseIf str.Contains("内科") = False And str.Contains("外科") = False And str.Contains("神经系统") Then If r("神经系统_确认检查") = False Then lb2.Text = "内外科未检" lb2.ForeColor = Color.red Else lb2.Text = "内外科已检" lb2.ForeColor = Color.blue End If ElseIf str.Contains("内科") = False And str.Contains("外科") And str.Contains("神经系统") = False Then If r("外科_确认检查") = False Then lb2.Text = "内外科未检" lb2.ForeColor = Color.red Else lb2.Text = "内外科已检" lb2.ForeColor = Color.blue End If End If str.Contains("鼻及咽部") str.Contains("眼科") str.Contains("口腔科") str.Contains("耳科") str.Contains("耳科") r("鼻咽部_确认检查") = False r("耳部_确认检查") = False r("口腔_确认检查") = False r("眼部_确认检查") = False r("神经系统_确认检查") = False lb6.Text = "五官未检" lb6.ForeColor = Color.red Else lb6.Text = "五官已检" lb6.ForeColor = Color.blue End If |
-- 作者:有点甜 -- 发布时间:2017/12/21 23:37:00 -- 写成数组,写成循环。
Dim ary() As String = {"内科", "外科", "神经系统"} |