以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  下接列表框能否实现这样的功能?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=2830)

--  作者:woodiy
--  发布时间:2009/5/19 9:36:00
--  下接列表框能否实现这样的功能?

图片点击可在新窗口打开查看此主题相关图片如下:111111111.gif
图片点击可在新窗口打开查看

下接列表框能否实现如上图的功能,谢谢!
--  作者:yangming
--  发布时间:2009/5/19 9:46:00
--  
不明白,你的意思是要显示二列的?
--  作者:yangming
--  发布时间:2009/5/19 10:08:00
--  

看看这个
多列数据字典

数据字典设置字典设置起来稍微复杂一点,必须借助于MultiDataMap类型。

MultiDataMap有一个Add方法,用于用于添加多列数据字典的内容,添加的时候,每一列的内容用符号“|”隔开,例如:

Dim mdm As New MultiDataMap
mdm.Add(
"0|苹果|Appele"
)

MultiDataMap有两个整数型属性,分别是ValueCol和DisplayCol,前者指定哪一列的内容用于取值,后者指定哪一列的内容用于显示,例如:

mdm.ValueCol = 0
mdm.DisplayCol =
1

表示第一列的内容用于取值,第二列的内容用于显示。

多列字典内容添加完成后,可以调用MultiDataMap的CreateDataMap方法,生成一个多列数据字典,然后赋值给Col的DataMap属性,例如:

CurrentTable.Cols("第一列").DataMap = mdm.CreateDataMap()

下面是一个完整的例子:

Dim mdm as New MultiDataMap
mdm.add(
"0|苹果|Apple")
mdm.add(
"1|香蕉|Banana")
mdm.add(
"2|桔子|Orange")
mdm.add(
"4|菠萝|pineapple")
mdm.ValueCol =
0
mdm.DisplayCol =
1
CurrentTable
.Cols("第一列"
).DataMap = mdm.CreateDataMap()

在命令窗口执行上述代码后,在第一列输入数据的时候,会出现如下的效果:

在上图中,选择某一条目的时候,该条目的第一列内容会自动存储到当前单元格中,单元格显示的内容将是所选条目的第二列内容。
当然,ValueCol和DisplayCol可以是同一列,此时数据字典类似于列表项目,仅用于输入。


--  作者:woodiy
--  发布时间:2009/5/20 20:04:00
--  

数据能否取值于某表呢?


--  作者:yangming
--  发布时间:2009/5/20 20:30:00
--  
可以,看列属性--字典---数据表

用数据表做字典

前面提到通过自定义数据字典,在产品编号列不显示产品编号,而是用对应的产品名称代替。

但是这个解决办法还是不够好,因为产品编号和产品名称已经在产品表中输入,能不能直接调用产品表中的呢,当然可以。
现在我们来看看如何利用产品表作为数据字典,来实现同样的功能。

1、选择订单表的产品编号列,打开其列属性设置窗口,将数据字典属性设为“数据表,然后单击“数据字典页:

2、按下图所示设置数据字典

经过上述设置,订单表中的产品编号列,显示的将不再是产品编号,而是该产品编号对应的产品名称;而输入数据的时候,下拉列表是一个表格: