单列数据字典

数据字典一般都是通过列属性直接设置的,很少需要通过代码设置,所以一般用户可以忽略本节的内容。
Col有一个DataMap属性,可以通过该属性设置数据字典。
有三种类型的数据字典(DataMap),分别是单列、多列和数据表型,我们首先介绍单列数据字典。

假定有一产品编号列,不同的编号代表不同的产品,分别是:

1: 苹果
2:香蕉
3:菠萝
4、桔子
5、桃子

我们希望该列存储整数型的产品编号,但是显示的是该编号代表的产品名称,设置代码如下:

Dim dmp As New DataMap
dmp.Add(1,"苹果")
dmp.Add(2,"香蕉")
dmp.Add(3,"波罗")
dmp.Add(4,"桔子")
dmp.Add(5,"桃子")
Tables
("订单").Cols("产品编号").DataMap = dmp

在命令窗口输入上述代码后执行,然后选择产品编号列,可以看到一个下拉列表框,列出了上述产品供我们选择。

DataMap类简单,就一个Add方法,语法为:

Add(Value,Text)

Value:值。
ImageFile: 值的字符说明。

为了验证产品编号列虽然显示的是产品名称,但是存储的内容是产品编号,我们可以增加一个表达式列,将其表达式设为:[产品编号]
结果会告诉你,产品编号列的值和显示内容确实是不同的。

数据字典键值的类型必须和列的类型一致,如果产品编号列不是整数型,而是字符型,那么原来的代码必须改为:

Dim dmp As New DataMap
dmp.Add(
"1","苹果")
dmp.Add(
"2","香蕉")
dmp.Add(
"3","波罗")
dmp.Add(
"4","桔子")
dmp.Add(
"5","桃子")
Tables
("订单").Cols("产品编号"
).DataMap = dmp

你还可以使用更复杂的字符作为键值:

Dim dmp As New DataMap
dmp
.Add("Apple","苹果")
dmp
.Add("Banana","香蕉")
dmp
.Add("Pineapple","波罗")
dmp
.Add("Orange","桔子")
Tables
("订单").Cols("产品编号").DataMap = dmp


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