以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]请教getcomboliststring结果中如何去掉特定值  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=132959)

--  作者:tkxffb
--  发布时间:2019/4/2 23:55:00
--  [求助]请教getcomboliststring结果中如何去掉特定值

老师好,深夜请教,打扰了,谢谢

下面的代码目的是在人员录入窗口先录入乡镇,然后从词典中用SQLGetComboListString方法筛选出该乡镇的供养单位,填入“供养单位”控件中,但代码不能用,请指教

Dim gydw As String = e.Form.Controls("ComboBox3").value 
Dim gnq As String = RibbonTabs.SelectedTab.Name   \'---定义gnq是功能区的名称
If gnq = "乡镇敬老院人员信息系统" Then  \'---如果功能区名称是乡镇集中供养人员信息系统
    e.sender.ComboList = DataTables("乡镇及供养单位词典").SQLGetComboListString("乡镇供养单位","乡镇供养单位 Like \'%" & gydw & "% \'" & " And 乡镇供养单位 Like \'%敬老院%\'")
ElseIf gnq = "村级养老点人员信息系统" Then
    e.sender.ComboList = DataTables("乡镇及供养单位词典").SQLGetComboListString("乡镇供养单位","乡镇供养单位 Like \'%" & gydw & "% \'" & " And 乡镇供养单位 Not Like \'%敬老院%\'")
End If

图片点击可在新窗口打开查看此主题相关图片如下:360截图2019040223412285.jpg
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:360截图20190402234258039.jpg
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2019/4/3 9:24:00
--  
Dim gydw As String = e.Form.Controls("ComboBox3").value 
Dim gnq As String = RibbonTabs.SelectedTab.Name   \'---定义gnq是功能区的名称
If gnq = "乡镇敬老院人员信息系统" Then  \'---如果功能区名称是乡镇集中供养人员信息系统
    e.sender.ComboList = DataTables("乡镇及供养单位词典").SQLGetComboListString("乡镇供养单位","乡镇供养单位 Like \'%" & gydw & "%\'" & " And 乡镇供养单位 Like \'%敬老院%\'")
ElseIf gnq = "村级养老点人员信息系统" Then
    e.sender.ComboList = DataTables("乡镇及供养单位词典").SQLGetComboListString("乡镇供养单位","乡镇供养单位 Like \'%" & gydw & "%\'" & " And 乡镇供养单位 Not Like \'%敬老院%\'")
End If

--  作者:tkxffb
--  发布时间:2019/4/3 9:33:00
--  
有点甜老师,我看了看,您对代码没有修改,可是代码不能用,麻烦您再仔细看看、改改
[此贴子已经被作者于2019/4/3 9:33:55编辑过]

--  作者:martin723
--  发布时间:2019/4/3 10:11:00
--  
GetComboListString 是从 DataTables 中取值,能不能根据 table 当前显示的记录(已经经过筛选了)来取值?

或者说直接获取table中某列的不重复值?
[此贴子已经被作者于2019/4/3 10:12:13编辑过]

--  作者:有点甜
--  发布时间:2019/4/3 10:18:00
--  

直接复制粘贴上面的代码测试即可啊

 

 


--  作者:tkxffb
--  发布时间:2019/4/3 13:06:00
--  
以下是引用有点甜在2019/4/3 10:18:00的发言:

直接复制粘贴上面的代码测试即可啊

 

 我把项目的bin文件夹删除之后再启动就能用了,谢谢甜老师


--  作者:tkxffb
--  发布时间:2019/4/3 13:10:00
--  
以下是引用martin723在2019/4/3 10:11:00的发言:
GetComboListString 是从 DataTables 中取值,能不能根据 table 当前显示的记录(已经经过筛选了)来取值?

或者说直接获取table中某列的不重复值?

SQLGetComboListString 是从datatables 中提取不重复的值,我这段代码涉及二次提取,感觉这种方法最简洁。谢谢


--  作者:有点甜
--  发布时间:2019/4/3 15:12:00
--  

方法一,在后面加上你table的条件,如

 

 e.sender.ComboList = DataTables("乡镇及供养单位词典").SQLGetComboListString("乡镇供养单位","乡镇供养单位 Like \'%" & gydw & "%\'" & " And 乡镇供养单位 Not Like \'%敬老院%\' and " & Tables("表A").filter)

 

方法二,循环每一行获取不重复值,如

 

Dim t As Table = Tables("表A")
Dim ls As new List(of String)
For Each r As Row In t.Rows
    If ls.contains(r("第一列")) = False Then
        ls.add(r("第一列"))
    End If
Next
msgbox(String.join("|", ls.Toarray))


--  作者:tkxffb
--  发布时间:2019/4/3 22:45:00
--  
真心感谢甜老师不厌其烦、举一反三的指教!