以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  代码修改  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=79364)

--  作者:文道古月
--  发布时间:2015/12/29 19:40:00
--  代码修改

老师好: 如果要排除列表项目中,粉色部分的值,代码要怎么改啊?

 

Dim cmb1 As WinForm.ComboBox = e.Form.Controls("接收单元ComboBox1") \'\'定义引用一个控件,目的:设置控件隐藏和列表项目
Dim ls As New List(Of String)
Dim st2 As String = ""   \'\'为了连接得出字符串,肯定要定义空字符串
If e.Sender.value <> "" AndAlso e.Sender.value.StartsWith("1")  Then \'假如当前发生变化的控件值不为空,并且以1开头
    cmb1.Enabled = True \'\'设置该控件可用,
    Dim cmb As WinForm.ComboBox = e.Sender \'\'定义一个正在发生变化的控件
    If cmb.value <> "" Then
        Dim str As String = cmb.Text.SubString(4) \'取得当前控件值第四位之后的值
        For Each dr As DataRow In DataTables("移动类型").Select("[移动文本] = \'" & str & "\'") \'根据str的值找到对应的行
            For Each kh As String In dr("接收单元").split("|") \'\'将找到的行用|分割,并保存在kh中
                If ls.Contains(kh) = False Then \'假如数组不含集合的值
                    ls.add(kh) \'\'那么添加集合的值到数组中
                    Dim fdr As DataRow = DataTables("单元位置").Find("单元 = \'" & kh & "\'") \'\'查找数组中的值所对应的行,fdr
                    If fdr IsNot Nothing Then \'\'如果找到行,
                        st2 &= kh & "-" & fdr("位置") & "|"  \'\'字符=字符找到的字符连接-字符对应行所对对应的位置,统一用|连接
                        cmb1.ComboList = st2
                    End If
                End If
            Next
        Next
    End If
Else  \'\'如果不以1开头,那么设置控件不可用
    cmb1.value = Nothing
    cmb1.Enabled = False
End If


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

For Each dr As DataRow In DataTables("移动类型").Select("[移动文本] <> \'" & str & "\'") \'根据str的值找到对应的行


--  作者:文道古月
--  发布时间:2015/12/29 20:06:00
--  

图片点击可在新窗口打开查看

 

 

原来是我想复杂了。。。

 

谢!


--  作者:文道古月
--  发布时间:2015/12/29 20:16:00
--  

试了下,还是不行啊。

 

细想了下,这个是用来找对应行的,一旦排除了,设条件不就没用了吗?

 

cmb1.ComboList = st2 返回的列表项目就是所有的行了。

 


 

 


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

那你到底想做什么?要不你就在这里比较

 

 If fdr IsNot Nothing and 其它条件 Then \'\'如果找到行,