以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何对被复选框选中的行,进行某列的去重  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186039)

--  作者:moseser
--  发布时间:2023/4/3 9:52:00
--  如何对被复选框选中的行,进行某列的去重
如有table1 ,一共50行,复选框选中了30 行,如何对,选中的这30行的,单位名称列,进行去重?

Dim rs As List(Of Row) = Tables("table1").GetCheckedRows



--  作者:有点蓝
--  发布时间:2023/4/3 9:57:00
--  
Dim rs As List(Of Row) = Tables("table1").GetCheckedRows
for i as integer = rs.count - 1 to 1 step -1
if rs(i)("单位名称") = rs(i-1)("单位名称")  then
rs(i).checked = false
rs.removeat(i)
end if
next

--  作者:moseser
--  发布时间:2023/4/3 11:32:00
--  回复:(有点蓝)Dim rs As List(Of Row) = Tables("t...
不是这个意思
比如 表A  
序号  名称        单位名称 
1    混凝土柱     m3
2    钢筋 φ12    t
3    预制柱         m3
4    混凝土梁      m3
5   钢筋 φ8        t

加入,目前选中的行,是这5行,我想对这5行的单位名称去重,得到的 是 m3  、 t 两个单位;
然后将这两个单位填写到 B表的 备注列,本列扩展为多值字段,  m3,t


--  作者:moseser
--  发布时间:2023/4/3 11:35:00
--  回复:(moseser)回复:(有点蓝)Dim rs As List(Of...
datatable("表A").getvalue("单位名称","是否可以用这里写个筛选")  ?用这种方式
--  作者:有点蓝
--  发布时间:2023/4/3 11:38:00
--  
Dim rs As List(Of Row) = Tables("table1").GetCheckedRows
dim s as string
Dim lst As new List(Of string)
for each r as row in rs
if lst.contains( r("单位名称")) = false  then
lst.add( r("单位名称"))
end if
next
s = string.join(",",lst.toarray())
msgbox(s)