You are on page 1of 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