GetUniqueValues

提示:此方法已经被GetValues代替,请不要再使用。

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

语法:

GetUniqueValues(Filter, Col1, Col2, Col3....)

Filter: 条件表达式,请参考表达式的运算符和函数条件表达式
Col1:   指定列名称,可以指定多列。

如果只从一列中提取不重复值,那么返回的是一个字符串集合;如果从多列中提取不重复值,那么返回的是一个字符串数组集合,数组的长度等于指定的列数。

在执行以下示例之前,请打开CaseStudy目录下的示例文件"统计演示.Table"。

示例一

列出1999年6月1日后订购过PD01产品的客户名单:

Dim Customers As List(Of String)
Customers
= DataTables("订单").GetUniqueValues("[产品]= 'PD01' And [日期] > #6/1/1999#", "客户")
For
i As Integer = 0 To Customers.Count - 1 '其实用For Each好一点,这里只是顺便提供遍历集合的另一种用法。
    Output.Show(Customers(i
))
Next

示例二

Filter参数是不能省略的,如果希望无条件地返回值的集合,将Filter参数设置为""即可。
例如 列出订单表中所有的客户名单:

Dim Customers As List(Of String)
Customers =
DataTables("订单").GetUniqueValues("", "客户")
For
Each Customer As String In Customers
    Output.Show(Customer)

Next

示例三

可以同时从多列提取不重复的值,此时返回的不是字符的集合,而是字符数组的集合。
例如从客户列和产品列提取不重复的值:

'定义数组集合的时候,要在类型后加上括号,表示这是一个数组集合。
Dim
Arys As List(Of String())
Arys =
DataTables("订单").GetUniqueValues("", "客户","产品")
'注意循环变量是字符型数组,所以类型是String(),而不是String

For
Each Ary As String() In Arys
    Output.Show(Ary(
0) & "|" & Ary(1))
Next

上面的代码是从客户和产品两列提取不重复的值,返回的不是一个字符集合,而是一个字符数组集合,每个数组包括两个元素,第一个元素是客户值,第二个元素是产品值。


本页地址:http://www.foxtable.com/webhelp/topics/0392.htm