分类: Oracle
2008-04-04 23:40:19
来源:赛迪网 作者:010032 |
树的简介
Deveoper6.0以上版本提供了hierarchytree(层次树)的概念,htree控件非常方便,只需要少量的编程即可实现显示层次结构的目的。
树的特有属性中如下几个较为重要:
多项选择(Muti-Seection):是否允许一次选中树的多个节点。如果不允许,那么选中第二个节点时,第一个被选中的节点会取消选择。
记录组(RecordGroup):指定生成树的记录组的名字。
简单介绍一下跟树相关的触发子(Buit-in):
|
功能:取得树节点的属性:
◆其中property有如下几种:
◆NODE_STATE:EXPANDED_NODE(扩展节点)
◆COAPSED_NODE(收缩节点)
◆EAF_NODE(叶节点)--注:不能展开或收缩
◆NODE_DEPTH:既节点在树中的层级。
◆NODE_ABE:节点的显示文本
◆NODE_ICON:节点的图标
◆NODE_VAUE:节点的值。
例子:
|
注释:其中:SYSTEM.TRIGGER_NODE指当前选中的树节点。
FUNCTIONGET_TREE_PROPERTY(item_nameVARCHAR2,propertyNUMBER);
功能:取得树的属性:
其中property有如下几种:
|
功能:设置树节点的属性:
|
功能:设置树的属性PROCEDUREPOPUATE_TREE(item_nameVARCHAR2);。
功能:清空树中已有数据,并根据记录组或数据查询重新生成树。
|
功能:在指定节点下添加树中数据:
注:使用比较麻烦。
|
功能:找到显示文本或值符合search_string的节点。
参数:
|
功能:添加树节点:
|
功能:删除树节点FUNCTIONGET_TREE_NODE_PARENT(item_nameVARCHAR2,nodeNODE);
功能:得到指定节点的父节点FUNCTIONGET_TREE_SEECTION(item_nameVARCHAR2,seectionNUMBER);
功能:得到处于选中状态的节点。PROCEDURESET_TREE_SEECTION(item_nameVARCHAR2,nodeNODE,seection_typeNUMBER);
功能:指定单个节点的选中状态:
参数:
|
生成树的方式
树控件一般单独放在一个控制块中(注:不能放在数据块中),在画布(CANVAS)上放置树很容易,并且,如无必要,树的属性也不需要设置。
生成树的方式有几种:
◆运行前通过设置记录组或数据查询属性来生成
◆通过ADD_TREE_DATA触发子来实现
◆运行态,通过ADD_TREE_NODE等触发子来实现
◆运行态,通过添加或删除记录组的数据元素来实现
分析:
对树直接操作:
描述:Find_Tree_Node找到指定节点,Add_Tree_Node来添加其下级节点。
缺点:编程较为复杂,操作不灵活,而且易出错。
优点:可以对添加节点等过程进行控制,实现一些特殊要求。
例子:
|
动态记录组:
层次树所使用记录组的数据格式:
|