在PB中快速实现数据库树形结构
(作者:阮晓华 2001年04月03日 17:23)
树形结构在Windows环境中被普遍应用,它以简捷的界面深受用户喜爱。但在数据库开发中面对层次多、结构复杂的数据,如何快速地构造树形目录呢?
实现关键技术
在PowerBuilder所提供的控件中包含了Treeview控件,但树的具体形成还需用户编写脚本实现,即它的列表项要在程序中动态添加,而这些列表数据通常由用户已录入在数据库中,并作为数据库维护的一项内容。
为了能快速实现数据库的树形结构,我们可以采用编码法,即利用编码表来实现。
编码表的基本字段包括编码和编码名称,其编码规则是以数字、字母的位数来区分不同层次,同一层编码位数相同,层次按位数递增,程序通过判断编码位数来决定所在层数。
例如:第一层为10~99两位,第二层为1010~1099四位,用户需要做的是先要设计树的结构和对应编码,并把相应名称进行录入,然后程序在读取这些数据时形成树。
编码法的优点是可以适应任何复杂的层次数据,实现方法简单,且树内容有变动时,无需更改程序代码。
范例程序与主要代码分析
我们以建立一个城市名称的树形结构为例,来说明编码法的应用。
(作者:阮晓华 2001年04月03日 17:23)
树形结构在Windows环境中被普遍应用,它以简捷的界面深受用户喜爱。但在数据库开发中面对层次多、结构复杂的数据,如何快速地构造树形目录呢?
实现关键技术
在PowerBuilder所提供的控件中包含了Treeview控件,但树的具体形成还需用户编写脚本实现,即它的列表项要在程序中动态添加,而这些列表数据通常由用户已录入在数据库中,并作为数据库维护的一项内容。
为了能快速实现数据库的树形结构,我们可以采用编码法,即利用编码表来实现。
编码表的基本字段包括编码和编码名称,其编码规则是以数字、字母的位数来区分不同层次,同一层编码位数相同,层次按位数递增,程序通过判断编码位数来决定所在层数。
例如:第一层为10~99两位,第二层为1010~1099四位,用户需要做的是先要设计树的结构和对应编码,并把相应名称进行录入,然后程序在读取这些数据时形成树。
编码法的优点是可以适应任何复杂的层次数据,实现方法简单,且树内容有变动时,无需更改程序代码。
范例程序与主要代码分析
我们以建立一个城市名称的树形结构为例,来说明编码法的应用。