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,
PSOplace 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
Michaela 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,
PS1) 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,
VagHi ,
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:
user537672Thank 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?
peteI 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)
ThanksMoved 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) ' | |
'from emp ' | |
'connect by prior empno = mgr ' | |
'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 ' | |
'from Item_all '
| |' 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)' | |
'connect by prior item_name = main_name ' | |
'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 seherlerJust 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