以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [讨论] 关于GetUniqueValues  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=951)

--  作者:wcs
--  发布时间:2008/10/22 22:17:00
--  [讨论] 关于GetUniqueValues

GetUniqueValues

从指定列中,获取不重复的值,以集合的形式返回。

想问一下,以集合形式返回的不重复的值,如何填入表的某一列中?

我的想法是,A表第一列从B表第一列中提取不重复的内容,像易表中就可以直接解决这个问题。


--  作者:czy
--  发布时间:2008/10/22 22:50:00
--  
这样吗?

 

Dim lts As List(Of String)

lts = DataTables("A").GetUniqueValues("", "第一列")

For Each lt As String In lts

    For i As integer = 0 to lts.count -1

      CurrentTable.Rows(i)("第一列") = lts(i)

   Next

Next


--  作者:wcs
--  发布时间:2008/10/22 22:59:00
--  
代码中:
For Each
lt As String In lts
......

Next


作什么用?变量lt好像什么用啊?

我理解了一下:将GetUniqueValues返回的不重复值装入数组lts,
       再用for  next给需要的每一行赋值。

这中间lt没什么用啊!


不过感觉这样的效率会不很高吧,如果不重复的值达一万行,可能速度较慢。



--  作者:jweishan
--  发布时间:2008/10/22 23:12:00
--  

这种情况可以用数据填充器啊!


--  作者:lxl
--  发布时间:2008/10/22 23:19:00
--  excel模版报表 员工,2 这个设定 好象只显一个记录

数据多的话可以用数据填充器
C版那个是笔误,多嵌套了一个循环.
Dim lts As List(Of String)

lts = DataTables("表A").GetUniqueValues("", "第一列")

For i As integer = 0 to lts.count -1
   CurrentTable.Rows(i)("第一列") = lts(i)

Next

或者是

Dim lts As List(Of String)

lts = DataTables("表A").GetUniqueValues("", "第一列")
Dim i As Integer = 0

For Each lt As String In lts

    CurrentTable.Rows(i)("第一列") = lts(i)
    i = i + 1

Next



--  作者:czy
--  发布时间:2008/10/22 23:33:00
--  
呵,这段时间太忙,把学到的都还给老六了。
--  作者:wcs
--  发布时间:2008/10/23 8:04:00
--  

我试试数据填充器,这个效率可能高一些的。

总感觉循环10000次,是不是会太慢。

等下来报告结果。