动态数据字典

利用类型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会显示空白,如果数据字典没有符合条件的数据,那么编号列全部都会显示空白。


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