动态数据字典
利用类型TableDataMap来根据数据表创建多列数据字典,该类型包括以下属性:
我们知道,通过菜单中的列属性设置的数据字典,在原数据表更新后,数据字典并不会自动更新。
通过TableDataMap, 可以很方便地动态更新数据字段。
假定我们希望在显示的时候,订单表的"客户 ID"列用对应的客户名称代替,同时在输入的时候,能够自动列出客户表中的所有客户及相关信息,供使用者选择客户,如下图所示:
例如我们在项目事件MainTableChanged事件中设置代码:
If MainTable.Name
= "订单"
Then
Dim
dmp
As New
TableDataMap
dmp.DataTable
= "客户"
'指定数据来源表
dmp.ValueCol
= "ID"
'指定取值列
dmp.DisplayCol
= "公司"
'指定显示列
'指定下拉列表时显示哪些列的数据
dmp.ListCols
=
"ID,公司,姓氏,名字,职务,业务电话,传真号,地址,城市,邮政编码"
dmp.Sort
= "城市"
'指定排序方式
Tables("订单").Cols("客户
ID").DataMap
= dmp.CreateDataMap()
'生成并设置DataMap
End If
这样在客户表修改数据后,重新切换到订单表,就会自动重新生成数据字典,保证数据字典的内容是最新的。
重要提示
如果要动态设置条件,那么最好不要用数据字典,建议编号和名称分开两列,用帮助介绍的自定义录入界面选择数据录入,我们在学习窗口设计的时候,会接触到这部分内容。
假定你的编号列有1、2、3、4、5等值,如果设置数据字典的条件后,字典只包括1、2、3三个编号,那么编号列的4、5会显示空白,如果数据字典没有符合条件的数据,那么编号列全部都会显示空白。