在维护关联的多个表的数据时,使用树状列表控件非常方便。
下面是使用treeview控件的一个例子:
1、新建一个窗口w_goodtype,在窗口内放置一个treeview控件,一个数据窗口控件。
2、本例中使用了两个表,一个type表保存货物名称及编号,一个goods表保存货物相关信息。
下面来创建这两个数据表,你可以使用type-goods.sql文件中的SQL语句。
3、为了维护goods表中的数据,建立d_good_freeform数据窗口。
4、这个数据窗口使用两个检索参数,一个是货物类型编号,一个是货物名称。
为了取得货物类型及编号信息,还要为表type建立数据窗口d_goodtype,包括表中的所有列。
5、在窗口w_goodtype的open事件中加入下面的代码:
6、为该窗口申明下面的实例变量:
7、在窗口的close事件中加入下面的代码:
8、在treeview控件的constructor事件中加入下面的代码,作用是在该控件中加入最上层条目。
9、当用双击treeview控件中的条目时,会触发itempopulate事件,我们需要在该事件中为控件加入下一级条目。代码如下图所示:
10、下面的代码接上图。
11、我们希望当用户展开某条目时该条目的图标相应改变。则在itemexpanding事件中加入下图所示代码:
12、同样,当条目折叠起来时变成初始图标:
13、当用户选择不同的条目时希望右边的货物信息数据窗口dw_1中的数据相应改变。
14、如果想让用户键入回车即可改变当前条目的折叠状态,则在key事件中加入下面的代码:
15、为了让不同层条目有不同的图标,要按下图设置treeview控件的pictures属性。
数据空间