Creating a hierarchical tree

Hi,
I have 3 tables t1, t2, t3.
t1 is the master of t2.
t2 is the master of t3.
Data in t1:
seq      name
1          m
2          g
Date in t2
seq  t1_seq    name
1         1         mani
2         1         julia
3         2        kali
4         2        mali
5         2         toli
data  in t3
seq  t2_seq    title
1         1         manager
2         1         clerk
3         2        developer
4         2        clerk
5         2         salesman
6         4        manager
7         4        clerk
8         2        developer
9         3        clerk
10        3         developer---------------------------------------------------------------------------------------------------
I want the data to print for t1 seq = 1 in the following way:
mani
       manager
       clerk
julia
     developer
      clerk
      salesmanI have written the code in the following way but it was not displaying the result. Please correct me where i am going wrong.
Note: the data should be displayed in hierarchical tree fashion.
select 1, level, t3.title
from t2, t3
connect by prior t2.seq = t3.t2_seq and t2.t1_seq = 1
start with t3.t2_seq IS NOT NULL;
Thanks in advance,

Hi,
CONNECT BY queries operate on a table (or result set) where every row represents a node.
In your tables, all the nodes on level 1 are in table t2, but all the nodes on level 2 are in table t3, so you have to do a UNION to make them all appear in a single in-line view.
WITH
u     AS
(     -- Begin in-line view u, UNION of t2 and t3 as hierarchy
     SELECT seq     AS node_id,     -1     AS parent_id,     name          AS label
     FROM t2
     WHERE t1_seq = 1
UNION ALL
     SELECT NULL     AS node_id,     t2_seq     AS parent_id,     '   ' || title     AS label
     FROM t3
)     -- End in-line view u, UNION of t2 and t3 as hierarchy
SELECT     label
FROM     u
START WITH     parent_id     = -1
CONNECT BY     parent_id     = PRIOR node_id
;This assumes that -1 is never used as a key in your tables.
Instead of using LEVEL and L- or RPAD to indent children under their parents, I relied on the fact that all the rows from the same table would be at the same, fixed LEVEL. It might be more efficient to continue that reasoning farther, and consider this problem not as a CONNECT BY query at all, but a master-detail query:
WITH
v2     AS
(     -- Begin in-line view v2, relevant data from t2
SELECT     seq          AS t2_seq
,     -1          AS t3_seq
,     name          AS label
FROM     t2
WHERE     t1_seq = 1
)     -- End in-line view v2, relevant data from t2
SELECT     label,                    t2_seq,     t3_seq
FROM     v2
UNION     
SELECT     '   ' || title     AS label,     t2_seq,     seq AS t3_seq
FROM     t3
WHERE     t2_seq IN (SELECT t2_seq FROM v2)
ORDER BY     t2_seq
,          t3_seq
;This second query produces the same lable column as the CONNECT BY query above, plus two other columns needed for sorting:
LABEL             T2_SEQ     T3_SEQ
mani                   1         -1
   manager             1          1
   clerk               1          2
julia                  2         -1
   developer           2          3
   clerk               2          4
   salesman            2          5
   developer           2          8You can hide the extra columns with the SQL*Plus "COLUMN ... NOPRINT" command, or you can use another in-line view. (The sorting columns only have to be in the result set of the UNION query itselt.)
In my results, julia appears with the developer role twice. That seems correct if table t3 includes both of these rows:
3         2        developer
8         2        developer

Similar Messages

  • Creating a Hierarchical Tree in Forma 6i

    Hi Gurus,
    We are using forms 6i and oracle 9i. In oracle forms i have one control block and another control block. When we click on one column repname ,the other control block displays the
    corresponding info for the sales rep name. eg. Lets say i pick John the salesrep in the other
    control block it displays its code,geography region etc.
    I want to create a hierarchical tree in the other block where it is displaying the salesrep info.
    So i want when i click on the sales rep name(the other control block measure)
    then it should the code,geography region etc in the form of hierarchical tree in the other control
    block. If the sales rep name is not clicked then the control block having the salesrep info should be hidden.
    I would appreciate your help.
    Thanks,
    PSO

    place your treeitem in the layout. The treeitem has to the only item in the block and property "Single record" has to be true.
    To populate your tree with data you can either
    - use a query to populate a treeitem have a look at this thread Tree Menu
    - use the Ftree.Add_Tree_Node built-in and program your own logic.

  • Problem creating a hierarchical tree in forms builder[issue with the query]

    Hi all,
    I have 2 tables.
    box (box_id, box_name)
    item(item_id, item_name, box_id)
    In a box there are several items.
    I want to create a hierachical tree to display items that are present in each box.
    LIKE:
    |---BOX1
    | |----ITEM 1
    | |----ITEM 2
    |
    |---BOX2
    | |----ITEM 1
    | |----ITEM 2
    Currently i am trying this query:
    SELECT -1 state, box_name, 'icon' icon, box_id val
    from box b, item i;
    I don't know what value to put for level, i don't know how to code the 'connect by prior' part.
    Could you please advise me?
    Michaël.
    PS. Then i will eventually use this query in forms builder.

    Hi MichaelR
    i get the FRM - 47321 error in forms builder ..
    Hence In order to populate a tree, the Select order must retrieve 5 columns:
    STATUS, LEVEL, LABEL, ICON, VALUE u should notice this orders in ur Query this will solve the error and pls notice that the...
    My advice is to use the On Line help in ur forms builder to help u in this ...
    Initial state : number
    Node tree depth : number
    Label for the node : varchar2
    Icon for the node : varchar2
    Data : varchar2This should be in WHEN-NEW-FORM-INSTANCE-trigger in order to populate ur tree...
    another thing why don't u think of building ur tree as i did here in the following example...Pls have a look here ....
    Hope this helps...
    Regards,
    Amatu Allah.

  • Hierarchical tree with iconic nodes

    hi i'm using database - 10g, developer suite - 10g; created a hierarchical tree and the icons are displaying along side the nodes when they are being selected or activated.
    problem - i've stored the icons in g:\ICONS (all gif icons). but when i run the form it is picking up the icons from the following location - C:\Documents and Settings\development\Oracle Jar Cache\frmall_jinit.jar-63ace618-1160d49b\oracle\forms\icons. I've a button in the same form and the icon showing on it is from the location G:\ICONS(as desired); but in case of tree it's from the location which is not desirable.
    any help.

    Hello,
    You need to change the imagebase parameter to be documentbase instead of codebase.
    When imagebase is set to codebase forms looks for Images in the jar files and then in the absolute path, otherwise it check direct path.
    For details in deploying the Images please check:
    http://docs.oracle.com/cd/B14099_19/web.1012/b14032/configure009.htm
    Clear the Java cache and browser cache after the above changes!
    Regards,
    Alex
    If someone's answer is helpful or correct please mark it accordingly!

  • Hierarchical Tree not showing using a record group to populate

    Hi, I am trying to set up an hierarchical tree. Can someone please give me the exact steps I need to take to get this right.
    I am trying to create a hierarchical tree to behave like a menu on a Main form from where I will call the other forms of my application.
    I have done the following
    select 1, level, null, form_name, form_name
    from iso_forms
    connect by prior form_name=action
    start with action is null
    and get this when I run the statement in pl/sql
    1 LEVEL NULL FORM_NAME FORM_NAME
    1 1 Edit Edit
    1 2 Holder Holder
    1 2 Isotopes Isotopes
    1 2 Laboratories Laboratories
    1 2 Personal Personal
    1 2 Incident Incident
    1 2 Equipment Equipment
    1 2 Over Exposure Over Exposure
    1 2 Archive Archive
    1 1 Print Print
    1 1 Queries Queries
    My tree on my main form is still blank, I have checked that the tree is the only item in the block but I am not sure how to confirm that it is a control block. I created the tree in layout editor by clicking on the Hierarchical Tree icon on the left and then dragging out a block, so I am assuming that the block is of the correct type.
    Thank you for your assistance
    Michael

    a control block is one not based on a table/view/procedure . check the block's query data source name. its must be blank.
    I suggest you create a procedure where you create the record_group using
    CREATE_GROUP_FROM_QUERY,populate_group and ftree.set_tree_property
    Here is my code that I i used to populate my tree .it works:
    PROCEDURE populate_the_tree IS
    grp recordgroup;
    error_number number;
    grpname varchar2(20) :='rg_group';
    tree_id item :=find_item('ctrl.tree');
    grp_qry2 varchar2(500) :='select -1,level,ename,null,empno from emp start with mgr is null connect by prior empno=mgr';
    begin
         grp := find_group(grpname);
         if not id_null(grp)
              then delete_group(grp);
         end if;
    --     grp := create_group_from_query(grpname,grp_qry1||grp_qry2);
         grp := create_group_from_query(grpname,grp_qry2);
         error_number:=populate_group(grpname);
         if error_number <> 0
              then message('Error while populating tree');
              raise form_trigger_failure;
         end if;
         ftree.set_tree_property(tree_id,ftree.record_group,grp);
    END;
    Message was edited by:
    lewismak2000

  • Hierarchical Tree IN Oracle FORMS6i and oracle 9i

    Hi ,
    I have written all the scenarios as follows. Please write in steps to do this.
    I have the follwing scenario to create the hierarchical tree.
    The display is as follows when the user comes to this screen.
    CTRLBLK1 CTRLBLK2
    SCOTT This block is hidden
    John
    The way I want it when the user is clicking scott it is displaying the records in the other block
    the full tree expanded not collapasble.
    Scenario1
    CTRLBLK1 CTRLBLK2
    SCOTT President
    VP
    Manager
    Same is over here in scenario2
    Scenario2
    CTRLBLK1 CTRLBLK2
    John President
    VP
    Manager
    Clerk
    The tree should be displayed not collapsed. What is way to do the above
    in forms. I tried to do the way suggested in OTN. But i didnot reached to the solution.
    The way I want it when the user is clicking scott it is displaying the records in the other block
    the full tree expanded not collapasble.
    Pls help.
    Thanks,
    PS

    1) create a item Hierarchical Tree,
    ANS: The tree is created
    2) put this to pull in data to the Tree
    DECLARE
    l_query VARCHAR2(500);
    BEGIN
    l_query := '';
    FTREE.SET_TREE_PROPERTY ( c_tree_blk_item_nm, FTREE.QUERY_TEXT, l_query );
    FTREE.POPULATE_TREE ( c_tree_blk_item_nm );
    go_node ( c_tree_root_node );
    IF FTREE.GET_TREE_PROPERTY (c_tree_blk_item_nm, FTREE.NODE_COUNT ) = 1 THEN
    po_found := FALSE;
    ELSE
    po_found := TRUE;
    END IF;
    END;
    Ans: I wrote this code in WHEN_NEW_FORM_INSTANCE trigger. But the code didnot got compiled . I did cut and paste of query too.
    Pls help me in defining the c_tree_blk_item_nm and go_node ( c_tree_root_node ). I was thinking some code of this type would work.
    The code itself didnot got compiled. It didnot ran.
    3) put this coding into WHEN-TREE-NODE-SELECTED trigger under the item, this is to populate the data to other block when u select the tree node.
    IF :SYSTEM.TRIGGER_NODE_SELECTED = 'TRUE' THEN
    GO_BLOCK ( 'BK_AGT' );
    EXECUTE_QUERY;
    SYNCHRONIZE;
    end if;
    BK_AGT is the 2nd control block .
    Help me in solution for this scenario in creating the hierarchical tree in forms6i.
    -KJJJ

  • Call forms and reports from a hierarchical tree node.

    Hello,
    I am new in pl/sql programming and I have some dificulties. I have created a hierarchical tree, in order to use it as a menu in an application that I am trying to develope. The problem is that I do not know how can I make the last nodes to be either a form or a report and when somebody double clicks on these nodes the form or the report will run. What is more, should I use the when-tree-node-selected trigger or the when-tree-node-activated?
    Thank you in advance,
    Vag

    Hi ,
    In Oracle Forms , a hierarchical tree is developed through the use of a sql statement and column which defines the order of leaves...
    Visit the on-line help of Forms10g to find out the details , and the triggers as well...
    Something else...post this question to Oracle Forms to get more detailed answer...
    Regards,
    Simon

  • Call forms and reports through a hierarchical tree node.

    Hello,
    I am new in pl/sql programming and I have some dificulties. I have created a hierarchical tree, in order to use it as a menu in an application that I am trying to develope. The problem is that I do not know how can I make the last nodes to be either a form or a report and when somebody double clicks on these nodes the form or the report will run. What is more, should I use the when-tree-node-selected trigger or the when-tree-node-activated? I use forms 6i.
    Thank you in advance,
    Vag
    Message was edited by:
    user537672

    Thank you very much for your reply. I tried what you said and managed to create a when-tree-node-activated trigger that works fine. The only problem is that I do not know how to find the last 3 characters of every node in order to make the form understand if it is a form or a report. I mean that the name of each node maybe of different length so I do not know how exactly to use the substr().
    Thank you
    Vag

  • Hierarchical Tree view Indentation not working...

    I just followed the PersistentListUI example to create a hierarchical tree view... everything seems to work except the indentation.
    I have:
    virtual PMReal GetIndentForNode(const NodeID & inNode) const {
    return PMReal(10.0);
    but AFAICT, there's no indentation on the GUI...
    any idea why?
    pete

    I add the following to the code:
    virtual PMReal GetIndent(const NodeID & inNode) const {
    PMReal parent_value = CTreeViewWidgetMgr::GetIndent(inNode);
    the parent_value is indeed 0;
    I put an printf in GetIndentForNode() and it's indeed being called...
    hmm...

  • Is it possible to create hierarchical tree report (not group tree) CR2008?

    Hi,
    Is it possible to create hierarchical tree kind report using CR 2008(no group tree in the report)?  The report somewhat look like below and a node can have multiple Child and so and so. Is there any magical way either as a chart or any object which supports the below structure.
                                                          Parent1
                                           Child1              Child2             Child3             Child4          Child5
                     Child1A     Child1B      Child1C
        Child1Aa  Child1Ab
    its hierarchical tree  structure and it should be in detail section of the report so that print in paper is possible.
    Please help first of all, can we able to create a report in above structure(each item needs to be surronuded with box and the each last child will contain a table valued data.
    (if I post this thread, it may look like plain text, please consider the above data as a hierarchical tree  structure with child having N number of children)
    Thanks

    Moved from .NET Development - Crystal Reports forum to Crystal Reports Design forum.
    Ludek

  • How do we create Hierarchical tree??

    Can I get help on creating hirerchical tree with detailed description ?? I tried basing hierarchical item on query but it didn't work.Do i need to specifically give code for populating it ??
    Also I need help on basing it on Record Group ??
    Is there any rule for having specific no of columns for a tree ??

    You can create Hierarchical Tree in two ways.
    One using "connect by prior" and another
    by Adding columns and row to record group at run time.
    If your table has Self reference Key then
    you can create using connect by prior.
    Otherwise you have to go for second one.
    Go and check the navwiz.fmb in oracle demo files.
    Following example is from navwiz.fmb
    (open navwiz.pll and then check refresh_tree)
    In this example they used both.For Emp they used connect by prior.
    PROCEDURE refresh_trees(p_view VARCHAR2) IS
    cursor cursor_dept is
    select dname, deptno
    from dept
    order by dname;
    cursor cursor_emp(p_dno number) is
    select ename, empno
    from emp
    where deptno = p_dno
    order by ename;
    v_i number;
    v_ignore number;
    rg_emps recordgroup;
    rg_depts recordgroup;
    v_init_state groupcolumn;
    v_level groupcolumn;
    v_label groupcolumn;
    v_icon groupcolumn;
    v_value groupcolumn;
    begin
    if p_view = 'EMP' then
    --the emps hierarchy
    rg_emps := find_group('EMPS');
    if not id_null(rg_emps) then
    delete_group(rg_emps);
    end if;
    rg_emps := create_group_from_query('EMPS',
    'select 1, level, ename, NULL, to_char(empno) ' &#0124; &#0124;
    'from emp ' &#0124; &#0124;
    'connect by prior empno = mgr ' &#0124; &#0124;
    'start with mgr IS NULL');
    v_ignore := populate_group(rg_emps);
    ftree.set_tree_property('navigator.nav_display', ftree.record_group, rg_emps);
    else
    --the organization
    rg_depts := find_group('DEPTS');
    if not id_null(rg_depts) then
    delete_group(rg_depts);
    end if;
    rg_depts := create_group('DEPTS');
    v_init_state := add_group_column(rg_depts, 'init_state', number_column);
    v_level := add_group_column(rg_depts, 'level', number_column);
    v_label := add_group_column(rg_depts, 'label', char_column, 40);
    v_icon := add_group_column(rg_depts, 'icon', char_column, 20);
    v_value := add_group_column(rg_depts, 'value', char_column, 5);
    v_i := 1;
    for deptrec in cursor_dept loop
    add_group_row(rg_depts, v_i);
    set_group_number_cell(v_init_state, v_i, 1);
    set_group_number_cell(v_level , v_i, 1);
    set_group_char_cell (v_label , v_i, deptrec.dname);
    set_group_char_cell (v_icon , v_i, NULL);
    set_group_char_cell (v_value , v_i, to_char(deptrec.deptno));
    v_i := v_i + 1;
    for emprec in cursor_emp(deptrec.deptno) loop
    add_group_row(rg_depts, v_i);
    set_group_number_cell(v_init_state, v_i, 1);
    set_group_number_cell(v_level , v_i, 2);
    set_group_char_cell (v_label , v_i, emprec.ename);
    set_group_char_cell (v_icon , v_i, NULL);
    set_group_char_cell (v_value , v_i, to_char(emprec.empno));
    v_i := v_i + 1;
    end loop;
    end loop;
    ftree.set_tree_property('navigator.nav_display', ftree.record_group, rg_depts);
    end if;
    My query******
    procedure refresh1 is
    v_i number;
    v_ignore number;
    Rg_Menus recordgroup;
    rg_depts recordgroup;
    Begin
    Rg_Menus := find_group('MENUS');
    If not id_null(Rg_Menus) then
    delete_group(Rg_Menus);
    End If;
    Rg_Menus := create_group_from_query('MENUS',
    'select 1, level, item_name, NULL, item_id ' &#0124; &#0124;
    'from Item_all '
    &#0124; &#0124;' where Item_id in (select Item_id from Item_access_all where role_id in
    (select role_id from org_access_all where user_id =
    (select gsp_user_id from users_all where upper(user_name) = upper(USER))
    and code = :global.code) )
    and item_id not in (select item_id from item_Exception where Code = :Global.Code)' &#0124; &#0124;
    'connect by prior item_name = main_name ' &#0124; &#0124;
    'start with item_name = ''MAIN''');
    v_ignore := populate_group(Rg_Menus);
    ftree.set_tree_property('tree_blk.tree_menu', ftree.record_group,Rg_Menus);
    Exception
    When Others then
    Bell;
    Message('You cannot Access any menu item...');
    Raise Form_trigger_Failure;
    End;
    viji.
    null

  • Newbei tries to create hierarchical tree

    hi all;
    I'm pretty new to the oracle forms and I'm trying to create a system similar to forum.
    I have created the following table at the database;
    create table tblFrmData(
    frmID number(2), -- forum ID
    frmNodeID number(5),
    frmParentNodeID number(5), -- the NodeID of the parent branch
    frmSubject varchar(100), -- the subject ( will be the label of tree)
    frmBody varchar(1000), -- the body of the message (will be the data of the tree)
    Now I want to create a tree depending on the data in this table
    I have created the tree with dragging and droping from the toolbar at forms. The name is tree8. It is in block3.
    I have also created a record group and named it as RG. The select statement used while creating the RG was
    select -1, frmNodeID, frmSubject,'', frmBody from tblFrmData
    after that I have modified when-new-item-instance trigger of tree8 as following
    declare
    htree ITEM;
    begin
    htree:=Find_Item('block3.htree8');
    Ftree.Set_Tree_Property(htree, Ftree.RECORD_GROUP, 'rg');
    end;
    this trigger was compiled without error.
    when I save the form and try to run it the following error is given! And I do not know how to solve it although I have readed the referances and looked at the old questions in this forum.
    frm-32089: trees must be in single row, single item blocks.
    hierarchical tree item TREE8
    Block: BLOCK3
    Form: FORM_TREE
    frm-30085:Unable to adjust form for output
    I'm waiting for your answers
    regards
    erdem seherler

    Just ensure that the Hierarchical Tree you have created is the only Item present in that Data Block.
    Move all other items to a new Data Block.

  • Problem Creating a query for a hierarchical tree. [using connect by prior]

    Hi all,
    I have 2 tables.
    box (box_id, box_name)
    item(item_id, item_name, box_id)
    In a box there are several items.
    I want to create a hierachical tree to display items that are present in each box.
    LIKE:
    |---BOX1
    | |----ITEM 1
    | |----ITEM 2
    |
    |---BOX2
    | |----ITEM 1
    | |----ITEM 2
    Currently i am trying this query:
    SELECT -1 state, box_name, 'icon' icon, box_id val
    from box b, item i;
    I don't know what value to put for level, i don't know how to code the 'connect by prior' part.
    Could you please advise me?
    Michaël.
    PS. Then i will eventually use this query in forms builder.

    Note the name of this forum is "SQL Developer *(Not for general SQL/PLSQL questions)*" - so only for issues with the SQL Developer tool. Please post these questions under the dedicated SQL And PL/SQL forum.
    Regards,
    K.

  • Hierarchical Trees: Creating and populating

    How would I go about it if was to have hierarchical trees and populate them with dynamic data that changes at runtime with the occurence of an event such as clicking of a button?
    I use Forms version 6.0.8.8.0.

    Did you read the documentation? It explains how to use hierarchical trees.
    Regards,
    Robin Zimmermann
    Forms Product Management

  • How to set the control-on hierarchical tree nodes

    Hi,
    I have created form in which at the left it has hierarchical tree structure(BOM) and towards the right it brings up the query results for selected node.
    Now, I have a button upon clicking which I navigate to the root node by issuing
    "Ftree.set_Tree_selection(htree, 1, Ftree.select_on);".
    But, it cannot automatically run the ' when-tree-node-selected' trigger '.
    any solution???
    Its really urgent.I have a customer demo on monday.
    Please help me asap.
    regards,
    Nagadeep.

    Hello Nagadeep,
    couldn't you just put the code from the trigger into a procedure
    and run that after the navigation to the item?
    Just a thought,
    Bernd
    The docs state that:
    No programmatic action will cause the When-Tree-Node-Selected trigger to fire. Only end-user action will generate an event.
    Probably due to performance reasons.
    Bernd
    Message was edited by:
    Bernd Prechtl

Maybe you are looking for

  • Adding eSAN storage to a Solaris 9 box, with MPXIO and Qlogic HBAs

    I recently added a few SAN drives to a Solaris-9 box and enabled MPXIO. I noticed that after you install the qlc drivers and do a reconfigure boot you see two additional devices besides the disks. These additional devices are very small and present t

  • NIO - Selector problem - when using more than one in same application

    Hi, I'm developing a multiplayer-server, which shall be able to handle at least 2000 concurrent clients. To avoid the use of 4000 threads for 2000 clients (a thread for each stream), I would like to use NIO. Problem: The server has of course a Server

  • BUSINESS RULES FOR Vendor, Customer & PRODUCT

    Hi, Can any one help me to provide Business Rules(Validation Rules) of Vendor, Customer & Product domain to be considered in integrating with other technologies. Thanks & Best Regards, Giri

  • I can't read a Object from file, Please help me

    i want to write a Object into File. this is code of Object class objStoreCus implements Comparable, Serializable String customerID = new String(); String customerName = new String(); String customerEmail = new String(); objStoreCus(String cusID, Stri

  • I need to unistall flash player 11.7 & install 11.6

    After getting a prompt to install the latest flash player version, I did & installed flash player 11.7.  Right after doing that, I went to Smilebox to finish a birthday creation & found that there was NO sound.  I guess I'm not the only one & Smilebo