以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 多列提取不重复的值增加到单元格中 (http://foxtable.net/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中去 [此贴子已经被作者于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楼的方式处理吧,那个也是最靠谱的方法了。 |