| nbsp; PROCEDURE SET_TREE_SELECTION(item_name VARCHAR2,node NODE, selection_type NUMBER);
功能:指定单个节点的选中状态
参数:
selection_type:SELECT_ON
SELECT_OFF
SELECT_TOGGLE
FORM运行态时有关的触发器:
l When-Tree-Node-Activated:用户双击节点或在节点选中时按[ENTER]键时触发。
l When-Tree-Node-Expanded:节点展开或收缩时触发
l When-Tree-Node-Selected:当节点选中或取消选择时触发
二、生成树的方式
树控件一般单独放在一个控制块中(注:不能放在数据块中),在画布(CANVAS)上放置树很容易,并且,如无必要,树的属性也不需要设置。
生成树的方式有几种:
l 运行前通过设置记录组或数据查询属性来生成
l 通过ADD_TREE_DATA触发子来实现
l 运行态,通过ADD_TREE_NODE等触发子来实现
l 运行态,通过添加或删除记录组的数据元素来实现
分析:
一、 对树直接操作
描述:Find_Tree_Node找到指定节点,Add_Tree_Node来添加其下级节点。
缺点:编程较为复杂,操作不灵活,而且易出错。
优点:可以对添加节点等过程进行控制,实现一些特殊要求。
例子:
--dept_cur为取单位的CURSOR,emp_cur为取雇员的CURSOR
htree := Find_Item(''''tree_view.tree_emp'''');
open dept_cur;
loop
fetch dept_cur into aa;
exit when dept_cur%notfound;
del_node := Ftree.Find_Tree_Node ( htree,aa.kjmc, Ftree.FIND_NEXT, Ftree.NODE_LABEL, Ftree.ROOT_NODE, Ftree.ROOT_NODE);
-- 删除单位节点及其子节点
IF NOT Ftree.ID_NULL(del_node) then
Ftree.Delete_Tree_Node(htree, del_node);
END IF;
end loop;
close dept_cur;
-- 根据用CURSOR取得的单位生成树的第一层节点
open dept_cur;
loop
fetch dept_cur into aa;
exit when dept_cur%notfound;
new_node := Ftree.Add_Tree_Node(htree, Ftree.ROOT_NODE, Ftree.parent_OFFSET, Ftree.LAST_CHILD, Ftree.EXPANDED_NODE, aa.dname, '''''''', aa.deptno);
end loop;
close dept_cur;
--根据雇员CURSOR生成树的下层节点
open emp_cur;
loop
fetch emp_cur into bb;
exit when emp_cur%notfound;
find_node := Ftree.Find_Tree_Node(htree, bb.kjbh, Ftree.FIND_NEXT,
Ftree.NODE_value, Ftree.ROOT_node, Ftree.ROOT_NODE);
new_node := Ftree.Add_Tree_Node(htree, find_node, Ftree.parent_OFFSET, Ftree.LAST_CHILD, Ftree.EXPANDED_NODE, bb.ename, '''''''', bb.empno);
end loop;
close emp_cur;
-- 得到树的根节点
ss := Ftree.get_tree_property(htree,FTREE.NODE_COUNT);
-- 循环,直到树的所有节点都展开
for j in 1..ss LOOP
exp_node := Ftree.Find_Tree_Node(htree, '''''''');
state := Ftree.Get_Tree_Node_Property(htree, j, Ftree.NODE_STATE);
IF state = Ftree.COLLAPSED_NODE THEN
Ftree.Set_Tree_Node_Property(htree, j, Ftree.NODE_STATE, Ftree.EXPANDED_NODE);
END IF;
END LOOP;
二、 动态记录组
层次树所使用记录组的数据格式:
+ — Car
|
- — Airplane
| — Boeing
| — Boeing
初始状态
层数
显示文本
图标
值
-1(收缩节点)
1
‘Car’
''''''''
‘car’
0(叶节点)
2
''''Honda''''
''''''''
上一页 [1] [2] [3] [4] 下一页 |