数据表字典

数据字典一般都是通过列属性直接设置的,很少需要通过代码设置,所以一般用户可以忽略本节的内容。
其实大多数时候,多列数据字典的内容来自于一个现有的数据表,例如订单表有一个"客户 ID"列,显然该列的内容来自于客户表的"ID"列。
我们希望在显示的时候,订单表的"客户 ID"列用对应的客户名称代替,同时在输入的时候,能够自动列出客户表中的所有客户及相关信息,供使用者选择客户,如下图所示:
 

完成上述要求的代码如下:

Dim dmp as New TableDataMap
dmp.
DataTable = "客户" '指定数据来源表
dmp.ValueCol =
"ID" '指定取值列
dmp.DisplayCol =
"公司" '指定显示列
'指定下拉列表时显示哪些列的数据

dmp.ListCols =
"ID,公司,姓氏,名字,职务,业务电话,传真号,地址,城市,邮政编码"
dmp.Sort =
"城市" '指定排序方式
Tables
("订单").Cols("客户 ID").DataMap = dmp.CreateDataMap()
'生成并设置DataMap

我们利用类型TableDataMap来根据数据表创建多列数据字典,该类型包括以下属性:

数据字典仅用于输入

对于上面的例子,就我个人的喜好而言,大多数时候,我会将显示列和取值列同时设为"ID",也就是将数据字典仅用于输入;而另外增加一个表达式列,名称设为“客户名称”,表达式设为:Parent(客户_订单).公司,这里假定客户和订单表之间建立的关联的名称为“客户_订单”。
两种方式各有所长,无所谓好坏,完全看开发者的喜好了。

关闭数据字典

如果你要关闭数据字典,很简单:

Tables("订单").Cols("客户 ID").DataMap = Nothing


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