0% found this document useful (0 votes)
128 views14 pages

Alv Tree Demo

This document defines the data and structures needed to generate an ALV tree report. It declares internal tables to store sample data, defines the field catalog structure for the report columns, and includes subroutines to retrieve data, build the field catalog, layout, and display the ALV tree report.

Uploaded by

Ricky Das
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
128 views14 pages

Alv Tree Demo

This document defines the data and structures needed to generate an ALV tree report. It declares internal tables to store sample data, defines the field catalog structure for the report columns, and includes subroutines to retrieve data, build the field catalog, layout, and display the ALV tree report.

Uploaded by

Ricky Das
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 14

*&---------------------------------------------------------------------* *& Report ZTREE_DEMO *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT ZTREE_DEMO. *Data Declaration *---------------*TABLES: ekko.

TYPE-POOLS: slis. "ALV Declarations TYPES: BEGIN OF TY_TAB, MAIN TYPE name1, MAIN1 TYPE name1, MAIN_VONKT TYPE name1, MAIN_RACCT TYPE name1, SEC TYPE name1, SEC1 TYPE name1, SEC_VONKT TYPE name1, SEC_RACCT TYPE name1, THIRD TYPE name1, THIRD1 TYPE name1, THIRD_VONKT TYPE name1, THIRD_RACCT TYPE name1, FOURTH TYPE name1, FOURTH1 TYPE name1, FOURTH_VONKT TYPE name1, FOURTH_RACCT TYPE name1, FIFTH TYPE name1, FIFTH1 TYPE name1, FIFTH_VONKT TYPE name1, FIFTH_RACCT TYPE name1, SIX TYPE name1, SIX1 TYPE name1, SIX_VONKT TYPE name1, SIX_RACCT TYPE name1, RACCT TYPE WRBTR, END OF TY_TAB. DATA: TAB TYPE TABLE OF TY_TAB, WTAB TYPE TY_TAB. TYPES: BEGIN OF TY_TAB1, MAIN TYPE name1, MAIN1 TYPE name1, MAIN_VONKT TYPE name1, MAIN_RACCT TYPE name1, SEC TYPE name1, SEC1 TYPE name1, SEC_VONKT TYPE name1, SEC_RACCT TYPE name1, THIRD TYPE name1, THIRD1 TYPE name1, THIRD_VONKT TYPE name1, THIRD_RACCT TYPE name1, FOURTH TYPE name1, FOURTH1 TYPE name1, FOURTH_VONKT TYPE name1, FOURTH_RACCT TYPE name1,

FIFTH TYPE name1, FIFTH1 TYPE name1, FIFTH_VONKT TYPE name1, FIFTH_RACCT TYPE name1, SIX TYPE name1, SIX1 TYPE name1, SIX_VONKT TYPE name1, SIX_RACCT TYPE name1, RACCT TYPE WRBTR, END OF TY_TAB1. DATA: TAB1 TYPE TABLE OF TY_TAB1, WTAB1 TYPE TY_TAB1. DATA: TAB2 TYPE TABLE OF TY_TAB1, WTAB2 TYPE TY_TAB1. *DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0, *it_ekpo TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0, DATA it_emptytab TYPE STANDARD TABLE OF TY_TAB INITIAL SIZE 0. *wa_ekko TYPE t_ekko, *wa_ekpo TYPE t_ekko. DATA: ok_code like sy-ucomm, "OK-Code save_ok like sy-ucomm. *ALV data declarations DATA: fieldcatalog TYPE lvc_t_fcat WITH HEADER LINE. DATA: gd_fieldcat TYPE lvc_t_fcat, gd_tab_group TYPE slis_t_sp_group_alv, gd_layout TYPE slis_layout_alv. *ALVtree data declarations CLASS cl_gui_column_tree DEFINITION LOAD. CLASS cl_gui_cfw DEFINITION LOAD. DATA: gd_tree TYPE REF TO cl_gui_alv_tree, gd_hierarchy_header TYPE treev_hhdr, gd_report_title TYPE slis_t_listheader, gd_logo TYPE sdydo_value, gd_variant TYPE disvariant. *Create container for alv-tree DATA: gd_tree_container_name(30) TYPE c, gd_custom_container TYPE REF TO cl_gui_custom_container. ************************************************************************ *Includes *INCLUDE ZDEMO_ALVTREEO01. "Screen PBO Modules *INCLUDE ZDEMO_ALVTREEI01. "Screen PAI Modules *INCLUDE ZDEMO_ALVTREEF01. "ABAP Subroutines(FORMS) ************************************************************************ *Start-of-selection. START-OF-SELECTION. * ALVtree setup data PERFORM data_retrieval. PERFORM build_fieldcatalog. PERFORM build_layout. PERFORM build_hierarchy_header CHANGING gd_hierarchy_header. PERFORM build_report_title USING gd_report_title gd_logo. PERFORM build_variant. * Display ALVtree report call screen 100. *&---------------------------------------------------------------------* *& Form DATA_RETRIEVAL *&---------------------------------------------------------------------* * Retrieve data into Internal tables *----------------------------------------------------------------------*

FORM data_retrieval. WTAB-MAIN = 'SANDEEP'. WTAB-MAIN1 = 'KUMAR'. WTAB-SEC = 'RAM'. WTAB-THIRD = 'SINGH'. WTAB-RACCT = '1'. APPEND WTAB TO TAB. CLEAR WTAB. WTAB-MAIN = 'SANDEEP'. WTAB-MAIN1 = 'KUMAR'. WTAB-SEC = 'RAM'. WTAB-THIRD = 'SINGH1'. WTAB-RACCT = '1'. APPEND WTAB TO TAB. CLEAR WTAB. WTAB-MAIN = 'SANDEEP'. WTAB-MAIN1 = 'KUMAR'. WTAB-SEC = 'RAM'. WTAB-THIRD = 'SINGH2'. WTAB-RACCT = '2'. APPEND WTAB TO TAB. CLEAR WTAB. ************************** *WTAB1-MAIN = 'SANDEEP'. *WTAB1-MAIN1 = 'KUMAR'. *WTAB1-SEC = 'RAM'. *WTAB1-RACCT = '001'. *APPEND WTAB1 TO TAB1. *CLEAR WTAB1. *WTAB1-MAIN = 'SANDEEP'. *WTAB1-MAIN1 = 'KUMAR'. *WTAB1-SEC = 'RAM'. *WTAB1-RACCT = '001'. *APPEND WTAB1 TO TAB1. *CLEAR WTAB1. *WTAB1-MAIN = 'SANDEEP'. *WTAB1-MAIN1 = 'KUMAR'. *WTAB1-SEC = 'RAM'. *WTAB1-RACCT = '002'. *APPEND WTAB1 TO TAB1. *CLEAR WTAB1. *************************** *WTAB2-MAIN = 'SANDEEP'. *WTAB2-MAIN1 = 'KUMAR'. *WTAB2-SEC = 'RAM'. *WTAB2-THIRD = 'SINGH'. *WTAB2-RACCT = '001'. *APPEND WTAB2 TO TAB2. *CLEAR WTAB2. *WTAB2-MAIN = 'SANDEEP'. *WTAB2-MAIN1 = 'KUMAR'. *WTAB2-SEC = 'RAM'. *WTAB2-RACCT = '001'. *APPEND WTAB2 TO TAB2. *CLEAR WTAB2. *WTAB2-MAIN = 'SANDEEP'. *WTAB2-MAIN1 = 'KUMAR'. *WTAB2-SEC = 'RAM'. *WTAB2-RACCT = '002'. *APPEND WTAB2 TO TAB2.

*CLEAR WTAB2. *SELECT ebeln *UP TO 10 ROWS *FROM ekko *INTO corresponding fields of TABLE it_ekko. *loop at it_ekko into wa_ekko. *SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh *FROM ekpo *appending TABLE it_ekpo *where ebeln eq wa_ekko-ebeln. *endloop. ENDFORM. " DATA_RETRIEVAL *&---------------------------------------------------------------------* *& Form BUILD_FIELDCATALOG *&---------------------------------------------------------------------* * Build Fieldcatalog for ALV Report *----------------------------------------------------------------------* FORM build_fieldcatalog. * fixed columns (obligatory) CLEAR fieldcatalog. fieldcatalog-TABNAME = 'TAB'. fieldcatalog-FIX_COLUMN = 'X'. fieldcatalog-NO_OUT = 'O'. fieldcatalog-FIELDNAME = 'MAIN'. APPEND fieldcatalog TO gd_fieldcat. fieldcatalog-FIELDNAME = 'MAIN1'. APPEND fieldcatalog TO gd_fieldcat. * totalized columns CLEAR fieldcatalog. fieldcatalog-TABNAME = 'TAB'. fieldcatalog-SP_GROUP = 'A'. fieldcatalog-DO_SUM = 'X'. fieldcatalog-FIELDNAME = 'SEC'. APPEND fieldcatalog TO gd_fieldcat. fieldcatalog-FIELDNAME = 'SEC1'. APPEND fieldcatalog TO gd_fieldcat. fieldcatalog-FIELDNAME = 'THIRD'. APPEND fieldcatalog TO gd_fieldcat. fieldcatalog-FIELDNAME = 'THIRD1'. APPEND fieldcatalog TO gd_fieldcat. fieldcatalog-FIELDNAME = 'FOURTH'. APPEND fieldcatalog TO gd_fieldcat. fieldcatalog-FIELDNAME = 'FOURTH1'. APPEND fieldcatalog TO gd_fieldcat. * columns with different description fieldcatalog-FIELDNAME = 'FIFTH'. * fieldcatalog-SELTEXT_M = 'Sales Orders'. * fieldcatalog-SELTEXT_S = 'Sales Or'. * fieldcatalog-SELTEXT_L = 'Sales Orders Qty'. APPEND fieldcatalog TO gd_fieldcat. fieldcatalog-FIELDNAME = 'FIFTH1'. * fieldcatalog-SELTEXT_M = 'Sched. Delivery'. * fieldcatalog-SELTEXT_S = 'Schd. Del'. * fieldcatalog-SELTEXT_L = 'Scheduled for Delivery'. APPEND fieldcatalog TO gd_fieldcat. fieldcatalog-FIELDNAME = 'SIX'. * fieldcatalog-SELTEXT_M = 'Stk. in transit'. * fieldcatalog-SELTEXT_S = 'Stk. trns'. * fieldcatalog-SELTEXT_L = 'Stock in transit (sum)'.

APPEND fieldcatalog TO gd_fieldcat. fieldcatalog-FIELDNAME = 'SIX1'. * fieldcatalog-SELTEXT_M = 'Available'. * fieldcatalog-SELTEXT_S = 'Avail.'. * fieldcatalog-SELTEXT_L = 'Stock Available'. APPEND fieldcatalog TO gd_fieldcat. fieldcatalog-FIELDNAME = 'RACCT'. * fieldcatalog-SELTEXT_M = 'Open Orders'. * fieldcatalog-SELTEXT_S = 'Open Ord'. * fieldcatalog-SELTEXT_L = 'Open Purchase Orders'. APPEND fieldcatalog TO gd_fieldcat. * columns not displayed CLEAR fieldcatalog. fieldcatalog-TABNAME = 'INV'. fieldcatalog-SP_GROUP = 'A'. fieldcatalog-NO_OUT = 'X'. fieldcatalog-FIELDNAME = 'MEINS'. APPEND fieldcatalog TO gd_fieldcat. fieldcatalog-FIELDNAME = 'UMLMC'. APPEND fieldcatalog TO gd_fieldcat. fieldcatalog-FIELDNAME = 'TRAME'. APPEND fieldcatalog TO gd_fieldcat. fieldcatalog-FIELDNAME = 'STPRS'. APPEND fieldcatalog TO gd_fieldcat. fieldcatalog-FIELDNAME = 'VALUE'. APPEND fieldcatalog TO gd_fieldcat. * Please not there are a number of differences between the structure of * ALVtree fieldcatalogs and ALVgrid fieldcatalogs. * For example the field seltext_m is replace by scrtext_m in ALVtree. *fieldcatalog-fieldname = 'MAIN'. "Field name in itab *fieldcatalog-scrtext_m = 'MAIN'. "Column text *fieldcatalog-col_pos = 0. "Column position *fieldcatalog-outputlen = 15. "Column width *fieldcatalog-emphasize = 'X'. "Emphasize (X or SPACE) *fieldcatalog-key = 'X'. "Key Field? (X or SPACE) *fieldcatalog-SP_GROUP = 'A'. * fieldcatalog-do_sum = 'X'. "Sum Column? * fieldcatalog-no_zero = 'X'. "Don't display if zero *APPEND fieldcatalog TO gd_fieldcat. *CLEAR fieldcatalog. *fieldcatalog-fieldname = 'RACCT'. *fieldcatalog-scrtext_m = 'RACCT'. *fieldcatalog-datatype = 'CURR'. *fieldcatalog-SP_GROUP = 'A'. *fieldcatalog-outputlen = 15. *fieldcatalog-col_pos = 1. *APPEND fieldcatalog TO gd_fieldcat.. *CLEAR fieldcatalog. *fieldcatalog-fieldname = 'STATU'. *fieldcatalog-scrtext_m = 'Status'. *fieldcatalog-outputlen = 15. *fieldcatalog-col_pos = 2. *APPEND fieldcatalog TO gd_fieldcat.. *CLEAR fieldcatalog. *fieldcatalog-fieldname = 'AEDAT'. *fieldcatalog-scrtext_m = 'Item change date'. *fieldcatalog-outputlen = 15. *fieldcatalog-col_pos = 3. *APPEND fieldcatalog TO gd_fieldcat..

*CLEAR fieldcatalog. *fieldcatalog-fieldname = 'MATNR'. *fieldcatalog-scrtext_m = 'Material Number'. *fieldcatalog-outputlen = 15. *fieldcatalog-col_pos = 4. *APPEND fieldcatalog TO gd_fieldcat.. *CLEAR fieldcatalog. *fieldcatalog-fieldname = 'MENGE'. *fieldcatalog-scrtext_m = 'PO quantity'. *fieldcatalog-outputlen = 15. *fieldcatalog-col_pos = 5. *APPEND fieldcatalog TO gd_fieldcat.. *CLEAR fieldcatalog. *fieldcatalog-fieldname = 'MEINS'. *fieldcatalog-scrtext_m = 'Order Unit'. *fieldcatalog-outputlen = 15. *fieldcatalog-col_pos = 6. *APPEND fieldcatalog TO gd_fieldcat.. *CLEAR fieldcatalog. *fieldcatalog-fieldname = 'NETPR'. *fieldcatalog-scrtext_m = 'Net Price'. *fieldcatalog-outputlen = 15. *fieldcatalog-col_pos = 7. *fieldcatalog-datatype = 'CURR'. *APPEND fieldcatalog TO gd_fieldcat.. *CLEAR fieldcatalog. *fieldcatalog-fieldname = 'PEINH'. *fieldcatalog-scrtext_m = 'Price Unit'. *fieldcatalog-outputlen = 15. *fieldcatalog-col_pos = 8. *APPEND fieldcatalog TO gd_fieldcat.. *CLEAR fieldcatalog. ENDFORM. " BUILD_FIELDCATALOG *&---------------------------------------------------------------------* *& Form BUILD_LAYOUT *&---------------------------------------------------------------------* * Build layout for ALV grid report *----------------------------------------------------------------------* FORM build_layout. gd_layout-no_input = 'X'. gd_layout-colwidth_optimize = 'X'. gd_layout-totals_text = 'Totals'(201). * gd_layout-totals_only = 'X'. * gd_layout-f2code = 'DISP'. "Sets fcode for when double * "click(press f2) * gd_layout-zebra = 'X'. * gd_layout-group_change_edit = 'X'. * gd_layout-header_text = 'helllllo'. ENDFORM. " BUILD_LAYOUT *&---------------------------------------------------------------------* *& Form build_hierarchy_header *&---------------------------------------------------------------------* * build hierarchy-header-information *----------------------------------------------------------------------* * -->P_L_HIERARCHY_HEADER structure for hierarchy-header *----------------------------------------------------------------------* FORM build_hierarchy_header CHANGING p_hierarchy_header TYPE treev_hhdr. p_hierarchy_header-heading = 'Hierarchy Header'(013). p_hierarchy_header-tooltip = 'This is the Hierarchy Header !'(014).

p_hierarchy_header-width = 30. p_hierarchy_header-width_pix = ''. ENDFORM. " build_hierarchy_header *&---------------------------------------------------------------------* *& Form BUILD_REPORT_TITLE *&---------------------------------------------------------------------* * Build table for ALVtree header *----------------------------------------------------------------------* * <-> p1 Header details * <-> p2 Logo value *----------------------------------------------------------------------* FORM build_report_title CHANGING pt_report_title TYPE slis_t_listheader pa_logo TYPE sdydo_value. DATA: ls_line TYPE slis_listheader, ld_date(10) TYPE c. * List Heading Line(TYPE H) CLEAR ls_line. ls_line-typ = 'H'. * ls_line-key "Not Used For This Type(H) ls_line-info = 'ALVTree Display'. APPEND ls_line TO pt_report_title. * Status Line(TYPE S) ld_date(2) = sy-datum+6(2). ld_date+2(1) = '/'. ld_date+3(2) = sy-datum+4(2). ld_date+5(1) = '/'. ld_date+6(4) = sy-datum(4). ls_line-typ = 'S'. ls_line-key = 'Date'. ls_line-info = ld_date. APPEND ls_line TO pt_report_title. * Action Line(TYPE A) CLEAR ls_line. ls_line-typ = 'A'. CONCATENATE 'Report: ' sy-repid INTO ls_line-info SEPARATED BY space. APPEND ls_line TO pt_report_title. ENDFORM. *&---------------------------------------------------------------------* *& Form BUILD_VARIANT *&---------------------------------------------------------------------* * Build variant *----------------------------------------------------------------------* form build_variant. * Set repid for storing variants gd_variant-report = sy-repid. endform. " BUILD_VARIANT *&---------------------------------------------------------------------* *& Module STATUS_0100 OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* module STATUS_0100 output. SET PF-STATUS '100'. * SET TITLEBAR 'xxx'. IF gd_tree IS INITIAL. PERFORM create_alvtree_container. PERFORM create_object_in_container. PERFORM build_report_title USING gd_report_title gd_logo. PERFORM create_empty_alvtree_control.

PERFORM create_alvtree_hierarchy. ENDIF. CALL METHOD cl_gui_cfw=>flush. endmodule. " STATUS_0100 OUTPUT *&---------------------------------------------------------------------* *& Module USER_COMMAND_0100 INPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* module USER_COMMAND_0100 input. DATA return TYPE REF TO cl_gui_event. save_ok = ok_code. case ok_code. when 'EXIT' or 'BACK' or 'CANC'. * Exit program leave to screen 0. * Process ALVtree user actions when others. call method cl_gui_cfw=>get_current_event_object receiving event_object = return. call method cl_gui_cfw=>dispatch. endcase. endmodule. " USER_COMMAND_0100 INPUT *&---------------------------------------------------------------------* *& Form create_alvtree_container *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form create_alvtree_container . gd_tree_container_name = 'SCREEN_CONTAINER'. create object gd_custom_container exporting container_name = gd_tree_container_name exceptions cntl_error = 1 cntl_system_error = 2 create_error = 3 lifetime_error = 4 lifetime_dynpro_dynpro_link = 5. if sy-subrc <> 0. message x208(00) with 'ERROR'. endif. endform. " create_alvtree_container *&---------------------------------------------------------------------* *& Form create_object_in_container *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form create_object_in_container . create object gd_tree exporting parent = gd_custom_container

node_selection_mode = cl_gui_column_tree=>node_sel_mode_single item_selection = 'X' no_html_header = '' no_toolbar = '' 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. if sy-subrc <> 0. message x208(00) with 'ERROR'. endif. endform. " create_object_in_container *&---------------------------------------------------------------------* *& Form create_empty_alvtree_control *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form create_empty_alvtree_control . CLEAR: it_emptytab. REFRESH: it_emptytab. CALL METHOD gd_tree->set_table_for_first_display EXPORTING is_hierarchy_header = gd_hierarchy_header it_list_commentary = gd_report_title i_logo = gd_logo * i_background_id = 'ALV_BACKGROUND' i_save = 'A' is_variant = gd_variant CHANGING it_outtab = it_emptytab "Must be empty it_fieldcatalog = gd_fieldcat. endform. " create_empty_alvtree_control *&---------------------------------------------------------------------* *& Form create_alvtree_hierarchy *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form create_alvtree_hierarchy . * add data to tree DATA: l_key_main TYPE lvc_nkey, l_key_node1 TYPE lvc_nkey, l_key_node2 TYPE lvc_nkey, l_key_node3 TYPE lvc_nkey, l_key_node4 TYPE lvc_nkey, l_key_node5 TYPE lvc_nkey, l_key_node6 TYPE lvc_nkey, l_node TYPE lvc_value. *****

LOOP AT tab INTO wtab. *****main node MOVE-CORRESPONDING wtab TO wtab1. AT NEW main. CLEAR l_node. l_node = wtab1-main. PERFORM add_node_main USING WTAB2 '' l_node CHANGING l_key_main. ENDAT. ****node 1 * MOVE-CORRESPONDING wTAB1 to wTAB. IF NOT wTAB-SEC IS INITIAL. AT NEW SEC. CLEAR l_node. l_node = wTAB1-SEC. PERFORM add_nodE USING WTAB2 l_key_main l_node CHANGING l_key_NODE1. ENDAT. ENDIF. ****node 2 * MOVE-CORRESPONDING wTAB to wTAB1. IF NOT wTAB-THIRD IS INITIAL. AT NEW THIRD. CLEAR l_node. l_node = wTAB1-THIRD. PERFORM add_node USING wTAB1 l_key_node1 l_node CHANGING l_key_node2. ENDAT. ENDIF. ******node 3 IF NOT wTAB-FOURTH IS INITIAL. AT NEW FOURTH. CLEAR l_node. l_node = wTAB1-FOURTH. PERFORM add_node USING wTAB1 l_key_node2 l_node CHANGING l_key_node3. ENDAT. * ELSE. ** AT NEW FOURTH. * CLEAR l_node.

* * * * * **

l_node = wTAB1-FOURTH_RACCT. PERFORM add_node USING wTAB l_key_node2 l_node CHANGING l_key_node3. ENDAT.

ENDIF. *****node 4 IF NOT wTAB-Fifth IS INITIAL. AT NEW FIFTH. CLEAR l_node. l_node = wTAB1-FIFTH. PERFORM add_node USING wTAB1 l_key_node3 l_node CHANGING l_key_node4. ENDAT. * ELSE. * CLEAR l_node. * l_node = wTAB1-FIFTH_RACCT. * PERFORM add_node USING wTAB * l_key_node3 * l_node * CHANGING l_key_node4. ENDIF. *****node 5 IF NOT wTAB-SIX IS INITIAL. AT NEW SIX. CLEAR l_node. l_node = wTAB1-SIX. PERFORM add_node USING wTAB1 l_key_node4 l_node CHANGING l_key_node5. ENDAT. ENDIF. ******node 6 *IF NOT wTAB-RACCT IS INITIAL. ** AT NEW RACCT. * CLEAR l_node. * l_node = wTAB1-RACCT. * PERFORM add_node USING wTAB * l_key_node5 * l_node * CHANGING l_key_node6. ** ENDAT. * ENDIF. ENDLOOP. * *data: ls_sflight type sflight, *lt_sflight type sflight occurs 0. *data: ld_ebeln_key type lvc_nkey, * ld_TAB2_key type lvc_nkey, *ld_ebelp_key type lvc_nkey.

*loop at TAB into WTAB. *perform add_ekko_node using WTAB *'' *changing ld_ebeln_key. *loop at TAB1 into WTAB1 where RACCT eq WTAB-RACCT. *perform add_ekpo_line using WTAB1 *ld_ebeln_key *changing ld_ebelp_key. * *endloop. **loop at TAB2 into WTAB2 where MAIN eq WTAB1-MAIN. **perform add_TAB2_line using WTAB2 **ld_TAB2_key **changing ld_TAB2_key. **endloop. *endloop. * calculate totals call method gd_tree->update_calculations. * this method must be called to send the data to the frontend call method gd_tree->frontend_update. endform. " create_alvtree_hierarchy *&---------------------------------------------------------------------* *& Form add_ekko_node *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->P_WTAB text * -->P_0624 text * <--P_LD_EBELN_KEY text *----------------------------------------------------------------------* form add_ekko_node using PS_EKKO LIKE WTAB value(p_RELATE_KEY) changing p_NODE_key. data: ld_node_text type lvc_value, ls_sflight type sflight. * Set item-layout data: lt_item_layout type lvc_t_layi, ls_item_layout type lvc_s_layi. ls_item_layout-t_image = '@3P@'. ls_item_layout-fieldname = gd_tree->c_hierarchy_column_name. ls_item_layout-style = cl_gui_column_tree=>style_default. ld_node_text = ps_ekko-MAIN. append ls_item_layout to lt_item_layout. * Add node call method gd_tree->add_node exporting i_relat_node_key = p_relate_key i_relationship = cl_gui_column_tree=>relat_last_child i_node_text = ld_node_text is_outtab_line = ps_ekko it_item_layout = lt_item_layout importing e_new_node_key = p_node_key. endform. " add_ekko_node *&---------------------------------------------------------------------* *& Form add_ekpo_line *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------*

* -->P_WTAB1 text * -->P_LD_EBELN_KEY text * <--P_LD_EBELP_KEY text *----------------------------------------------------------------------* form add_ekpo_line using ps_ekpo like WTAB1 value(p_relate_key) changing p_node_key. data: ld_node_text type lvc_value, ls_sflight type sflight. * Set item-layout data: lt_item_layout type lvc_t_layi, ls_item_layout type lvc_s_layi. ls_item_layout-t_image = '@3P@'. ls_item_layout-fieldname = gd_tree->c_hierarchy_column_name. ls_item_layout-style = cl_gui_column_tree=>style_default. ld_node_text = ps_ekpo-RACCT. append ls_item_layout to lt_item_layout. * Add node call method gd_tree->add_node exporting i_relat_node_key = p_relate_key i_relationship = cl_gui_column_tree=>relat_last_child i_node_text = ld_node_text is_outtab_line = ps_ekpo it_item_layout = lt_item_layout importing e_new_node_key = p_node_key. endform. form add_TAB2_line using " add_ekpo_line pS_TAB2 LIKE wtab2 value(p_relate_key)

changing p_node_key. data: ld_node_text type lvc_value, ls_sflight type sflight. * Set item-layout data: lt_item_layout type lvc_t_layi, ls_item_layout type lvc_s_layi. ls_item_layout-t_image = '@3P@'. ls_item_layout-fieldname = gd_tree->c_hierarchy_column_name. ls_item_layout-style = cl_gui_column_tree=>style_default. ld_node_text = ps_TAB2-SEC. append ls_item_layout to lt_item_layout. * Add node call method gd_tree->add_node exporting i_relat_node_key = p_relate_key i_relationship = cl_gui_column_tree=>relat_last_child i_node_text = ld_node_text is_outtab_line = ps_TAB2 it_item_layout = lt_item_layout importing e_new_node_key = p_node_key. endform. FORM add_node USING " add_TAB2_line p_aux TYPE TY_TAB p_relat_key TYPE lvc_nkey p_node TYPE lvc_value CHANGING p_node_key TYPE lvc_nkey.

DATA: l_node_text TYPE lvc_value, ls_sflight TYPE TY_TAB. * set item-layout DATA: lt_item_layout TYPE lvc_t_layi, ls_item_layout TYPE lvc_s_layi. ls_item_layout-t_image = '@3P@'. ls_item_layout-fieldname = gd_tree->c_hierarchy_column_name. ls_item_layout-style = cl_gui_column_tree=>style_intensifd_critical. APPEND ls_item_layout TO lt_item_layout. * add node l_node_text = p_node. CALL METHOD gd_tree->add_node EXPORTING i_relat_node_key = p_relat_key i_relationship = cl_gui_column_tree=>relat_last_child i_node_text = l_node_text is_outtab_line = p_aux it_item_layout = lt_item_layout IMPORTING e_new_node_key = p_node_key. ***** ENDFORM. " add_node FORM add_node_main USING p_aux TYPE ty_tab p_relat_key TYPE lvc_nkey p_node TYPE lvc_value CHANGING p_node_key TYPE lvc_nkey. DATA: l_node_text TYPE lvc_value, ls_sflight TYPE ty_tab. * set item-layout DATA: lt_item_layout TYPE lvc_t_layi, ls_item_layout TYPE lvc_s_layi. * ls_item_layout-t_image = '@3P@'. ls_item_layout-fieldname = gd_tree->c_hierarchy_column_name. ls_item_layout-style = cl_gui_column_tree=>style_intensifd_critical. APPEND ls_item_layout TO lt_item_layout. * add node l_node_text = p_node. CALL METHOD gd_tree->add_node EXPORTING i_relat_node_key = p_relat_key i_relationship = cl_gui_column_tree=>relat_last_child i_node_text = l_node_text is_outtab_line = p_aux it_item_layout = lt_item_layout IMPORTING e_new_node_key = p_node_key. ***** ENDFORM. " add_node_main

You might also like