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("产品|客户","","客户,产品")
For
Each Ary
As String()
In Arys
Output.Show(Ary(0)
& "|"
& Ary(1))
Next