GetComboListString
从指定的列中提取不重复的值,用符号"|"将这些值连接成一个字符串,并返回这个字符串。
此方法通常用于动态设置列表项目。
语法:
GetComboListString(ColumnName,Filter)
ColumnName:列名称
Filter: 可选参数,指定一个条件表达式,只返回符合此条件的值。请参考表达式的运算符和函数
示例,设置订单表产品列的列表项目:
Tables("订单").Cols("产品").ComboList = DataTables("订单").GetComboListString("产品")
也可以设置条件,例如,从客户表中提取华中地区的客户名单:
Output.Show(DataTables("客户").GetComboListString("客户名称","[地区] = '华北'"))
这样可以大大简化设计列表项目代码
[此贴子已经被作者于2008-11-22 18:34:33编辑过]
顶。将简化进行到底。
再举例比较以下的前后应用,非常节约命令行数,达到1:6或1:7。
e.Form.Controls("ComboBox1").Combolist =DataTables("A表").getcomboliststring("分类") 一条语句相当于以下六条:
Dim Items As String
Dim lst As List(Of String) = DataTables("A表").GetuniqueValues("","分类")
For Each Item As String In Lst
Items = Items & "|" & Item
Next
e.Form.Controls("ComboBox1").ComboList = Items
e.Form.Controls("ComboBox2").Combolist=DataTables("A表").getcomboliststring("名称","[分类]='" & e.Form.Controls("ComboBox1").value & "'" ) 一条语句相当于以下七条:
Dim drs As New List(Of string) '字符串集合
drs = DataTables("A表").GetUniqueValues("[分类]='" & e.Form.Controls("ComboBox1").value & "'" , "名称")
Dim Val AS String
For Each dr As string In drs
Val = Val & "|" & dr
Next
e.Form.Controls("ComboBox2").Combolist = Val
顶!经试验效率很好,只是不明白帮助里只有GetUniqueValues而没有GetComboListString,怕就怕会有什么副作用,就象表达式里可用Not in(副作用是效率非常低),但帮助只介绍In一样.
[此贴子已经被作者于2008-11-22 16:14:35编辑过]
以下是引用don在2008-11-22 16:14:00的发言:
顶!经试验效率很好,只是不明白帮助里只有GetUniqueValues而没有GetComboListString,怕就怕会有什么副作用,就象表达式里可用Not in(副作用是效率非常低),但帮助只介绍In一样.
[此贴子已经被作者于2008-11-22 16:14:35编辑过]
不会有副作用的,GetComboListString说明只是现在的帮助中还没加入。