Tree ALV with CL_GUI_ALV_TREE


DATA :   lr_cust TYPE REF TO cl_gui_custom_container,
lr_tree TYPE REF TO cl_gui_alv_tree,
lt_scarr TYPE TABLE OF scarr,
gt_scarr TYPE TABLE OF scarr,
ls_scarr TYPE scarr,
ls_header TYPE treev_hhdr,
lv_node_key1 TYPE lvc_nkey,
lv_node_key2 TYPE lvc_nkey,
lv_node_text TYPE lvc_value.

START-OF-SELECTION.
CALL SCREEN 0001.
*&———————————————————————*
*&      Module  STATUS_0001  OUTPUT
*&———————————————————————*

MODULE status_0001 OUTPUT.
SET PF-STATUS ‘STATUS’.
*  SET TITLEBAR ‘xxx’.
ENDMODULE.                 ” STATUS_0001  OUTPUT
*&———————————————————————*
*&      Module  GET_DATA  OUTPUT
*&———————————————————————*
MODULE get_data OUTPUT.
IF lt_scarr IS INITIAL.
SELECT FROM scarr INTO TABLE lt_scarr.
ENDIF.
ENDMODULE.                 ” GET_DATA  OUTPUT
*&———————————————————————*
*&      Module  BUILD_TREE  OUTPUT
*&———————————————————————*
MODULE build_tree OUTPUT.


IF lr_cust IS NOT BOUND.


CREATE OBJECT lr_cust
EXPORTING
container_name              ‘ALV_TREE’
repid                       syrepid
dynnr                       sydynnr
EXCEPTIONS
cntl_error                  1
cntl_system_error           2
create_error                3
lifetime_error              4
lifetime_dynpro_dynpro_link 5
OTHERS                      6.

ENDIF.


IF lr_tree IS NOT BOUND.


CREATE OBJECT lr_tree
EXPORTING
parent                      lr_cust
node_selection_mode         cl_gui_column_tree=>node_sel_mode_single
item_selection              ‘X’    ” Can Individual Items be Selected?
no_toolbar                  ‘ ‘    ” NO_TOOLBAR
no_html_header              ‘X’    ” NO_HTML_HEADER
EXCEPTIONS
cntl_error                  1
cntl_system_error           2
create_error                3
lifetime_error              4
illegal_node_selection_mode 5
failed                      6
illegal_column_name         7
OTHERS                      8.

ENDIF.


* Prepairing Header
ls_headerheading ‘FLight Information’.
ls_headertooltip ‘Flight Data’.
ls_headerwidth 40.
ls_headerwidth_pix ‘ ‘.

CALL METHOD lr_tree->set_table_for_first_display
EXPORTING
i_structure_name    ‘SCARR’
is_hierarchy_header ls_header
CHANGING
it_outtab           gt_scarr” table must be initial

* Prepairing Root node


lv_node_text ‘Flight Code’.
CALL METHOD lr_tree->add_node
EXPORTING
i_relat_node_key     ‘ ‘
i_relationship       cl_gui_column_tree=>relat_last_child
i_node_text          lv_node_text
IMPORTING
e_new_node_key       lv_node_key1  ” get the root node key
EXCEPTIONS
relat_node_not_found 1
node_not_found       2
OTHERS               3.

* Create Hierarchy ( nodes )
LOOP AT lt_scarr INTO ls_scarr.

lv_node_text ls_scarrcarrname.


CALL METHOD lr_tree->add_node
EXPORTING
i_relat_node_key     lv_node_key1  ” pass the root node key
i_relationship       cl_gui_column_tree=>relat_last_child    ” How to Insert Node
*        is_outtab_line       = ls_scarr    ” Attributes of Inserted Node
i_node_text          lv_node_text   ” Hierarchy Node Text
IMPORTING
e_new_node_key       lv_node_key2   ” Key of New Node Key
EXCEPTIONS
relat_node_not_found 1
node_not_found       2
OTHERS               3.

ENDLOOP.

* Must Call this method to display nodes on the container
CALL METHOD lr_tree->frontend_update.


ENDMODULE.                 ” BUILD_TREE  OUTPUT


*&———————————————————————*
*&      Module  USER_COMMAND_0001  INPUT
*&———————————————————————*
MODULE user_command_0001 INPUT.
CASE syucomm.
WHEN ‘BACK’ OR ‘EXIT’ OR ‘CANCEL’.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE.                 ” USER_COMMAND_0001  INPUT


Screen flow Logic.

Screen  Layout.

Execute the program.

Here we have the tree.

Now remove the comment line so that we can display all the columns. Execute the program.

 Here is how the Tree ALV is displayed.


 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s