PACKAGE BODY pkg_tree IS -- FORMS Package to built a TREE "manually", -- means built a record-group not with a query PROCEDURE prc_tree(pi_typ in varchar2) is v_i number :=0; htree ITEM; x pls_integer; rg_tree recordgroup; v_init_state groupcolumn; v_level groupcolumn; v_label groupcolumn; v_icon groupcolumn; v_value groupcolumn; v_status varchar2(6); begin set_application_property(cursor_style,'BUSY'); htree := Find_Item('tree_block.tree_item'); rg_tree := find_group('mytree'); if not id_null(rg_tree) then delete_group(rg_tree); end if; rg_tree := create_group('mytree'); -- Here is the Recordgroup you have to fill ( tree spezific variables) v_init_state := add_group_column(rg_tree, 'init_state', number_column); v_level := add_group_column(rg_tree, 'level', number_column); v_label := add_group_column(rg_tree, 'label', char_column, 160); v_icon := add_group_column(rg_tree, 'icon', char_column, 20); v_value := add_group_column(rg_tree, 'value', char_column, 20); -- my Solution is to fill is: frist to fill a PL/SQL-Table in a DB-Package (PKG_DB_TREE.prc_fill_tree). -- There i can built the TREE-spezific Values (mynames are): -- - tlevel -- - tstatus -- - ticon -- but also other Values that are usefull can be added to PL/SQLTAB.(The Counter in the PL/SQL-Table -- ( v_i) is the v_Value in the RecordGroup ). By the value you can use -- the WHEN_TREE_NODE_SELECTED -Trigger to get the value and access the PL/SQLTAB. -- EXAMPLE: it_value := Ftree.Get_Tree_Node_Property(treeItem -- , tree_node, Ftree.NODE_VALUE); -- call to PKG_DB_TREE == Database PACKAGE, RETURNS A PL/SQL -Table "v_tree". -- v_tree -- CONTROL.IT_VON, CONTROL.IT_BIS, pi_typ are my options for the select-stmt in -- PKG_DB_TREE.prc_fill_tree too fill v_tree. -- This only an non runable example. PKG_DB_TREE.prc_fill_tree(:CONTROL.IT_VON,:CONTROL.IT_BIS, pi_typ, v_tree ); v_i := nvl(v_tree.first,0); -- 1 -- fill the recordgroup loop if v_i = 0 then exit; end if; add_group_row(rg_tree, v_i); set_group_number_cell(v_init_state, v_i, FTREE.collapsed_node); set_group_number_cell(v_level , v_i, v_tree(v_i).tlevel); if v_tree(v_i).tstatus = '-1' then -- Title V_status := NULL; else V_status := v_tree(v_i).tstatus; end if; set_group_char_cell (v_label , v_i, v_tree(v_i).tlabel||v_status); set_group_char_cell (v_icon , v_i, v_tree(v_i).ticon); set_group_char_cell (v_value , v_i, to_char(v_i)); v_i := nvl(v_tree.next(v_i),0); end loop; -- show the tree ftree.set_tree_property(htree, ftree.record_group, rg_tree); set_application_property(cursor_style,'DEFAULT'); exception when others then set_application_property(cursor_style,'DEFAULT'); raise; end; END;