以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]ComboList代码问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=79225)

--  作者:cqlwsam
--  发布时间:2015/12/27 9:38:00
--  [求助]ComboList代码问题
如截图,通过“手术名称”列中的值,决定“手术方式”及“术后并发症”列的combolist值。单个会写。两个就有点困难。谢谢!


图片点击可在新窗口打开查看此主题相关图片如下:360反馈意见截图162303238111767.png
图片点击可在新窗口打开查看


--  作者:cqlwsam
--  发布时间:2015/12/27 9:39:00
--  
单个的代码如下:

Dim r As Row= e.Row

If e.Col.name = "手术方式" OrElse e.Col.name="术后并发症" Then

    Dim t As String=r("手术名称")

    If t="唇裂修补术" Then

        Dim t1 As String=r("手术部位") & t

        If t1="双侧唇裂修补术"

            e.Col.ComboList="前唇原长法|前唇加长法|改良原长法(重医)|其它"

        Else

            e.Col.ComboList="Millard I式唇修复|Milladr II式唇修复|Millard III式唇修复|Tennison法|Moler法|华西改良法|其它"

        End If

    End If


End If


--  作者:cqlwsam
--  发布时间:2015/12/27 11:59:00
--  
在startedit中,如何指定列。如以上代码。当“手术名称”选择“唇裂修复术”后,“手术方式”的combolist不同,“手术并发症”的combolist不同。当选择“腭裂修补术”是这两列也会不同。
--  作者:大红袍
--  发布时间:2015/12/27 12:01:00
--  

分开写

 

Dim r As Row= e.Row

If e.Col.name = "手术方式" Then
    Dim t As String=r("手术名称")
    If t="唇裂修补术" Then
        Dim t1 As String=r("手术部位") & t
        If t1="双侧唇裂修补术"
            e.Col.ComboList="前唇原长法|前唇加长法|改良原长法(重医)|其它"
        Else
            e.Col.ComboList="Millard I式唇修复|Milladr II式唇修复|Millard III式唇修复|Tennison法|Moler法|华西改良法|其它"
        End If
    End If
End If


--  作者:cqlwsam
--  发布时间:2015/12/27 12:07:00
--  
哦。我想两者的逻辑关系差不多,想合在一起。那只有分开写了。哎。
--  作者:cqlwsam
--  发布时间:2015/12/28 17:30:00
--  
代码:

Dim r As Row= e.Row
If e.Col.name="手术名称" Then
    If r("疾病诊断").contains("腭咽闭合不全") Then
        e.Cancel=True
    End If
End If

If e.Col.name = "手术方式" Then
    Dim t As String= r("手术名称")
    If t Is Nothing Then
        If r("疾病诊断").contains("腭咽闭合不全") Then
            e.Col.ComboList="腭再成形术|咽后壁瓣|腭咽肌瓣|咽后嵴增高术|Furlow法|其它"
        Else
            e.Col.ComboList= Nothing
        End If
    ElseIf t="唇裂修补术"  or t=“唇裂再修补术” Then
        If r("手术部位")="双侧" Then
            e.Col.ComboList="前唇原长法|前唇加长法|改良原长法(重医)|其它"
        ElseIf r("手术部位")="左侧" or  r("手术部位")="右侧" Then
            e.Col.ComboList="Millard I式唇修复|Milladr II式唇修复|Millard III式唇修复|Tennison法|Moler法|华西改良法|其它"
        Else
            e.Col.ComboList=Nothing
        End If
    ElseIf t.Contains("腭裂修补术") Or t.contains("腭裂再修补术") Then
        e.Col.ComboList="兰式法|兰式+腭咽提肌重建术|两瓣法|两瓣法+腭帆提肌重建术|Push-back法|Push-back法+腭帆提肌重建术|Furlow法|Sommerlad法|其它"
    Else
        e.Col.ComboList=Nothing
    End If
End If

If e.Col.name="术后并发症" Then
    Dim t As String=r("手术名称")
    If t Is Nothing Then
        e.Col.ComboList=Nothing
    ElseIf t="唇裂修补术" Then
        e.Col.ComboList="出血|感染|部分裂开|全部裂开|其它"
    ElseIf t="腭裂修补术" Then
        e.Col.ComboList="出血|感染|粘膜瓣坏死|腭瘘|复裂|其它"
    Else
    End If
End If

手术名称选“唇裂修补术”时下拉框不能用。是不能使用or吗?

--  作者:大红袍
--  发布时间:2015/12/28 18:29:00
--  

代码没有问题,肯定是你的 手术部位 不满足条件才不会有下拉