Foxtable(狐表)用户栏目专家坐堂 → [求助] 组合条件


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

主题:[求助] 组合条件

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


加好友 发短信
等级:七尾狐 帖子:1636 积分:14489 威望:0 精华:0 注册:2014/6/6 8:42:00
[求助] 组合条件  发帖心情 Post By: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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/21 23:37:00 [只看该作者]

写成数组,写成循环。

 

Dim ary() As String = {"内科", "外科", "神经系统"}
Dim str As String = "内科神经系统"
Dim r As Row
Dim flag As Boolean = True
For Each s As String In ary
    If str.Contains(s) Then
        If r(s & "_确认检查") = False Then
            msgbox(s & "没检查")
            flag = False
            Exit For
        End If
    End If
Next
if flag = true then
    msgbox("全部检查了")
end if


 回到顶部