以文本方式查看主题

-  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=122100)

--  作者:ZJZK2018
--  发布时间:2018/7/18 22:48:00
--  多列提取不重复的值增加到单元格中
老师:

下面这段代码有二个需求:
1、这种集合能排序吗?
2、如何合并到指定单元格中,如:“AA|33,CC|55”


Dim st As String
Dim Arys As New List(Of String())
Arys = DataTables("编号统计").GetValues("市外_入围编号|市外_次数")
arys.Sort = "市外_入围编号,市外_次数 DESC"
For Each Ary As String() In Arys
    \' msgbox(Ary(0) & "|" & Ary(1))
    st = Ary(0) & "|" & Ary(1)
    st = st & "," & st
Next
\'Dim st As String = String.Join("@",Arys.ToArray)
msgbox(st)


--  作者:有点甜
--  发布时间:2018/7/18 23:05:00
--  
Arys = DataTables("编号统计").GetValues("市外_入围编号|市外_次数", "", "市外_入围编号,市外_次数 DESC")
--  作者:ZJZK2018
--  发布时间:2018/7/19 12:43:00
--  
老师下面代码是可以用了,有没有更好的办法,难道一定要新增一另一个集合中吗?

Dim Arys As New List(Of String())
Dim lst As New List(Of String)
Arys = DataTables("编号统计").GetValues("市外_入围编号|市外_次数", "", "市外_入围编号,市外_次数 DESC")
For Each Ary As String() In Arys
    Dim st As String = Ary(0) & "|" & Ary(1)
    If lst.Contains(st) = False Then
        lst.Add(Ary(0) & "|" & Ary(1))
    End If
Next
msgbox(String.Join(",",lst.ToArray))


--  作者:有点甜
--  发布时间:2018/7/19 12:50:00
--  

参考

 

http://www.foxtable.com/webhelp/scr/2910.htm

 

[此贴子已经被作者于2018/7/19 12:50:42编辑过]

--  作者:cxmxjwlmq
--  发布时间:2018/7/19 19:34:00
--  

受教了!谢谢


--  作者:有点甜
--  发布时间:2018/7/19 19:58:00
--  

 

Dim s As String = DataTables("产品").SQLGetComboListString("市外_入围编号 + \',\' + 市外_次数", "", "市外_入围编号,市外_次数 DESC)

output.show(s)


--  作者:ZJZK2018
--  发布时间:2018/7/22 20:51:00
--  
有点甜老师:

按6楼的做法,弹出的是空白,没有数据。我的需求是:把排序前五项输入到textbox中去

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多值列次数.table



图片点击可在新窗口打开查看此主题相关图片如下:pppp.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2018/7/22 20:51:57编辑过]

--  作者:有点甜
--  发布时间:2018/7/22 22:57:00
--  

1、数据保存后,才能用SQLGetComboListString的,没有保存的数据获取不到;

 

2、现正在的SQLGetComboListString有bug,排序如果是多个排序的时候,会出错(等候修复)。

 

下面这样不排序的时候没问题

 

Dim s As String = DataTables("统计编号").SQLGetComboListString("cstr(编号) + \',\' + cstr(次数)", "编号 is not null", "")

msgbox(s)


--  作者:有点甜
--  发布时间:2018/7/22 22:59:00
--  
3、尽量用你3楼的方式处理吧,那个也是最靠谱的方法了。