GetValues

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

语法:

GetValues(ColumnName,Filter,Sort)

ColumnName:列名称,从此列中提取不重复的值。
Filter:     可选参数,指定一个条件表达式,只返回符合此条件的值;请参考表达式的运算符和函数条件表达式
Sort:       可选参数,指定排序列,如果省略,则根据取值列排序,通常无需设置。

示例一

列出产品表中所有的产品名称:

Dim Products As List(Of String)
Products = DataTables("产品").GetValues("产品名称")
For
Each Product As String In Products
    Output.Show(Product)

Next

示例二

返回的值默认按照取值列排序,我们可以另外指定排序列;例如按产品编号顺序,列出产品表中所有的产品名称:

Dim Products As List(Of String)
Products = DataTables("产品").GetValues("产品名称","","产品编号")
For
Each Product As String In Products
    Output.Show(Product)

Next

示例三

给排序列加上DESC关键词,返回值可以降序排序,例如按最近一次订货的日期顺序,列出订单表中的客户名单:

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

Next

示例四

可以设置取值条件,列出产品表中单价大于100的产品:

Dim Products As List(Of String)
Products = DataTables("产品").GetValues("产品名称","单价 > 100")
For
Each Product As String In Products
    Output.Show(Product)

Next

示例五

可以同时设置取值条件和排序列,例如按日期顺序,列出2012年6月1日后订购过PD01产品的客户名单:

Dim Customers As List(Of String)
Customers =
DataTables("订单").GetValues("客户","[产品]= 'PD01' And [日期] > #6/1/2012#","日期")
For Each
Customer As String In Customers
   
Output.Show(Customer)
Next

示例六

下面这个例子,一般用户客户忽略。
可以同时从多列提取不重复的值,此时返回的不是字符的集合,而是字符数组的集合。
例如从客户列和产品列提取不重复的值:

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

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

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

需要注意的是,如果从多列取值,且需要指定顺序,取值列需全部参与排序,列的先后顺序可以调整,例如:

Dim Arys As List(Of String())
Arys
= DataTables("订单").GetValues("产品|客户","","客户,产品")
For
Each Ary As String() In Arys
    Output.Show(Ary(0) & "|" & Ary(1))

Next


 


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