创建一个动态的Tree,需要设置4个步骤:
1.创建recordgroup,目的将原始的数据保存至recordgroup中,范例语法:
delcare
rg_id recordgroup;
begin
rg_id := create_group_from_query('alpha','select 1, level, ename, null, to_char(empno) ' || ' from emp where deptno= ' ||:control.dno ||' connect by prior empno= mgr ' || ' start with job=''PRESIDENT''');
end;
2.检查recordgroup,目的检查recordgroup中的SQL是否正确(正确返回0,错误返回Oracle SQL错误的代号),范例语法:
delcare
v_ignore number;
begin
v_ignore := populate_group(rg_id);
end;
3.设置hierarch tree属性,目的将recordgroup中的数据显示在界面的hierarch tree中,范例语法:
ftree.set_tree_property('TREE_BLOCK.TREE',ftree.record_group,rg_id);
或者
htree := find_item('TREE_BLOCK.tree');
ftree.set_tree_property(htree,ftree.record_group,rg_id);
4.清除rg_id,目的清除后台建立的recordgroup释放系统资源,示范语法;
delete_group(rg_id);
全部示范语法:
declare
htree item;
v_ignore number;
rg_id recordgroup;
begin
set_block_property('emp',default_where,'deptno='||:CONTROL.dno);
go_block('emp');
execute_query;
htree := find_item('TREE_BLOCK.tree');
rg_id := create_group_from_query('alpha','select 1, level, ename, null, to_char(empno) ' || ' from emp where deptno= ' ||:control.dno ||' connect by prior empno= mgr ' || ' start with job=''PRESIDENT''');
v_ignore := populate_group(rg_id);
ftree.set_tree_property('TREE_BLOCK.TREE',ftree.record_group,rg_id);
--ftree.set_tree_property(htree,ftree.record_group,rg_id);
delete_group(rg_id);
end;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7306066/viewspace-704540/
,如需转载,请注明出处,否则将追究法律责任。