Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Building Tree hierarchy Using nested loops and class cl_gui_column_tree

YayatiEkbote
Contributor
0 Likes
689

Hello gurus,

I want to create a tree report using custom container and class cl_gui_column_tree. I have read and understood the standard demo report which SAP has provided i.e. SAPCOLUMN_TREE_CONTROL_DEMO. But in this report all the levels nodes are created as constants and hardcoded. I want to create hierarchy using nested loops. For this i took one example of a hierarchy of VBAK-VBELN->VBAP-POSNR Like One sales order has many line items and each line item can have number of line items in billing plan.

I have done some coding for it.

FORM build_tree USING node_table TYPE treev_ntab

item_table TYPE zitem_table. " i created the zitem_table table type of mtreeitm in SE11.

DATA: node TYPE treev_node,

item TYPE mtreeitm.

node-node_key = root.

CLEAR node-relatkey.

CLEAR node-relatship.

node-hidden = ' '.

node-disabled = ' '.

CLEAR node-n_image.

CLEAR node-exp_image.

node-isfolder = 'X'.

node-expander = 'X'.

APPEND node TO node_table.

item-node_key = root.

item-item_name = colm1.

item-class = cl_gui_column_tree=>item_class_text.

item-text = 'Root'.

APPEND item TO item_table.

item-node_key = root.

item-item_name = colm2.

item-class = cl_gui_column_tree=>item_class_text.

item-text = 'Amount'.

APPEND item TO item_table.

LOOP AT it_vbeln INTO wa_vbeln.

node-node_key = wa_vbeln-vbeln.

node-relatkey = root.

node-relatship = cl_gui_column_tree=>relat_last_child.

node-hidden = ' '.

node-disabled = ' '.

CLEAR node-n_image.

CLEAR node-exp_image.

node-isfolder = 'X'.

node-expander = 'X'.

APPEND node TO node_table.

item-node_key = wa_vbeln-vbeln.

item-item_name = colm1.

item-class = cl_gui_column_tree=>item_class_text.

item-text = wa_vbeln-vbeln.

APPEND item TO item_table.

item-node_key = wa_vbeln-vbeln.

item-item_name = colm2.

item-class = cl_gui_column_tree=>item_class_text.

item-text = wa_vbeln-netwr.

APPEND item TO item_table.

LOOP AT it_posnr INTO wa_posnr.

node-node_key = wa_posnr-posnr.

node-relatkey = wa_vbeln-vbeln.

node-relatship = cl_gui_column_tree=>relat_last_child.

node-hidden = ' '.

node-disabled = ' '.

CLEAR node-n_image.

CLEAR node-exp_image.

node-isfolder = ' '.

node-expander = ' '.

APPEND node TO node_table.

item-node_key = wa_posnr-posnr.

item-item_name = colm1.

item-class = cl_gui_column_tree=>item_class_text.

item-text = wa_posnr-posnr.

APPEND item TO item_table.

item-node_key = wa_posnr-posnr.

item-item_name = colm2.

item-class = cl_gui_column_tree=>item_class_text.

item-text = wa_posnr-netpr.

APPEND item TO item_table.

ENDLOOP.

ENDLOOP.

ENDFORM.

Now this program compiles fine and runs till there is only one level. That is root->vbeln. But when i add one more loop of it_posnr it gives me runtime error of message type 'X'. The problem i found was uniqueness of item-item_name as all the sales order have posnr = 0010. What could be done? I tried giving item_name unique hierarchy level using counters just like stufe field in prps eg. 10.10.10, 10.10.20,10.20.10,10.20.20,20.10.10 etc.. etc.. but still i am getting runtime error when i add one more hierarchy using nested loop. Plz guide.

Edited by: Yayati6260 on Jul 14, 2011 7:25 AM

Hello gurus,

I want to create a tree report using custom container and class cl_gui_column_tree. I have read and understood the standard demo report which SAP has provided i.e. SAPCOLUMN_TREE_CONTROL_DEMO. But in this report all the levels nodes are created as constants and hardcoded. I want to create hierarchy using nested loops. For this i took one example of a hierarchy of VBAK-VBELN->VBAP-POSNR Like One sales order has many line items and each line item can have number of line items in billing plan.

I have done some coding for it.

FORM build_tree USING node_table TYPE treev_ntab

item_table TYPE zitem_table. " i created the zitem_table table type of mtreeitm in SE11.

DATA: node TYPE treev_node,

item TYPE mtreeitm.

node-node_key = root.

CLEAR node-relatkey.

CLEAR node-relatship.

node-hidden = ' '.

node-disabled = ' '.

CLEAR node-n_image.

CLEAR node-exp_image.

node-isfolder = 'X'.

node-expander = 'X'.

APPEND node TO node_table.

item-node_key = root.

item-item_name = colm1.

item-class = cl_gui_column_tree=>item_class_text.

item-text = 'Root'.

APPEND item TO item_table.

item-node_key = root.

item-item_name = colm2.

item-class = cl_gui_column_tree=>item_class_text.

item-text = 'Amount'.

APPEND item TO item_table.

LOOP AT it_vbeln INTO wa_vbeln.

node-node_key = wa_vbeln-vbeln.

node-relatkey = root.

node-relatship = cl_gui_column_tree=>relat_last_child.

node-hidden = ' '.

node-disabled = ' '.

CLEAR node-n_image.

CLEAR node-exp_image.

node-isfolder = 'X'.

node-expander = 'X'.

APPEND node TO node_table.

item-node_key = wa_vbeln-vbeln.

item-item_name = colm1.

item-class = cl_gui_column_tree=>item_class_text.

item-text = wa_vbeln-vbeln.

APPEND item TO item_table.

item-node_key = wa_vbeln-vbeln.

item-item_name = colm2.

item-class = cl_gui_column_tree=>item_class_text.

item-text = wa_vbeln-netwr.

APPEND item TO item_table.

LOOP AT it_posnr INTO wa_posnr.

node-node_key = wa_posnr-posnr.

node-relatkey = wa_vbeln-vbeln.

node-relatship = cl_gui_column_tree=>relat_last_child.

node-hidden = ' '.

node-disabled = ' '.

CLEAR node-n_image.

CLEAR node-exp_image.

node-isfolder = ' '.

node-expander = ' '.

APPEND node TO node_table.

item-node_key = wa_posnr-posnr.

item-item_name = colm1.

item-class = cl_gui_column_tree=>item_class_text.

item-text = wa_posnr-posnr.

APPEND item TO item_table.

item-node_key = wa_posnr-posnr.

item-item_name = colm2.

item-class = cl_gui_column_tree=>item_class_text.

item-text = wa_posnr-netpr.

APPEND item TO item_table.

ENDLOOP.

ENDLOOP.

ENDFORM.

Now this program compiles fine and runs till there is only one level. That is root->vbeln. But when i add one more loop of it_posnr it gives me runtime error of message type 'X'. The problem i found was uniqueness of item-item_name as all the sales order have posnr = 0010. What could be done? I tried giving item_name unique hierarchy level using counters just like stufe field in prps eg. 10.10.10, 10.10.20,10.20.10,10.20.20,20.10.10 etc.. etc.. but still i am getting runtime error when i add one more hierarchy using nested loop. Plz guide.

Edited by: Yayati6260 on Jul 14, 2011 7:25 AM

1 REPLY 1
Read only

YayatiEkbote
Contributor
0 Likes
487

Hello all,

Thanks the issue is solved. The node key was not getting a unique identification as nodekey. I resolved the issue by generating unique identification for each level. Thanks all,

Regards

Yayati Ekbote