在维护关联的多个表的数据时,使用树状列表控件非常方便。

下面是使用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属性。

 

返回

数据空间