-  2 ways to populate a hierarchical tree (1. Record Group, 2. Query Text)
1 - Create Record group
2- Create hierarchical tree item (Control Block)
- WHEN-TREE-NODE-SELECTED
- WHEN-TREE-NODE-ACTIVATED
3– Create data block
-----------------------------------------------------
1- Create Record group
select 1,level,ename,null,to_char(empno)from emp connect by prior empno = mgr start with mgr is null
SELECT STATUS, LEVEL, LABEL, ICON, VALUE FROM TABLE;
STATUS - Indicates the initiate status of the Node (Normally Value is 1).
LEVEL - This is a specific pseudo-column Derived from “CONNECT BY”.
LABEL -This is the visible label of the Node.
ICON - That contains the icon name of the Node (can be NULL).
VALUE -That contains the value of the Node.
------
2- Create hierarchical tree item (Control Block)
Add the trigger code @ WHEN-NEW-FORM-INSTANCE and WHEN-TREE-NODE-ACTIVATED
1 - Create Record group
2- Create hierarchical tree item (Control Block)
- WHEN-TREE-NODE-SELECTED
- WHEN-TREE-NODE-ACTIVATED
3– Create data block
-----------------------------------------------------
1- Create Record group
select 1,level,ename,null,to_char(empno)from emp connect by prior empno = mgr start with mgr is null
SELECT STATUS, LEVEL, LABEL, ICON, VALUE FROM TABLE;
STATUS - Indicates the initiate status of the Node (Normally Value is 1).
LEVEL - This is a specific pseudo-column Derived from “CONNECT BY”.
LABEL -This is the visible label of the Node.
ICON - That contains the icon name of the Node (can be NULL).
VALUE -That contains the value of the Node.
------
2- Create hierarchical tree item (Control Block)
Add the trigger code @ WHEN-NEW-FORM-INSTANCE and WHEN-TREE-NODE-ACTIVATED
DECLARE
   vi_tree      item;
   vn_tree_rg   NUMBER;
BEGIN
   vi_tree      := FIND_ITEM ('TREE_BLK.EMP_TREE');
   vn_tree_rg   := POPULATE_GROUP ('EMP_TREE_RG');
   ftree.SET_TREE_PROPERTY ( vi_tree, ftree.record_group, 'EMP_TREE_RG');
EXCEPTION
   WHEN OTHERS
   THEN
      fnd_message.debug (SQLERRM);
END;
Add the trigger code @ WHEN-TREE-NODE-SELECTED
DECLARE
DECLARE
   vi_htree        item;
   vc_node_value   VARCHAR2 (100);
BEGIN
   vi_htree        := FIND_ITEM ('TREE_BLK.EMP_TREE');
   vc_node_value   := ftree.GET_TREE_NODE_PROPERTY ( vi_htree, :SYSTEM.trigger_node, ftree.node_value);
   SET_BLOCK_PROPERTY ( 'emp', default_where, 'EMPNO = ' || vc_node_value);
   GO_BLOCK ('EMP');
   EXECUTE_QUERY;
EXCEPTION
   WHEN OTHERS
   THEN
      fnd_message.debug (SQLERRM);
END;
3 – Create data block
then very simply u have tree form now
Yasser
I just leave this comment here - maybe it helps someone:
ReplyDeleteI nearly despaired with a FRM-47313 now. Cost me 2 hours of valueable time. Turns out, query was ok, but the semicolon at the end of the query caused all the trouble. Ah well ...