*======================================================================* * This report was initially created by ALVRobot.com.ar * Please, read terms and conditions on the site. *======================================================================* * Author: Gabriel Jenik * 19.02.07 - Reporte Prueba * Este es un reporte de prueba. *======================================================================* REPORT ZGJTEST. *========================== Global definitions =======================* ** * Data Types ** TYPE-pools: slis. TYPES: BEGIN OF tp_data, ebeln LIKE ekko-ebeln, aedat LIKE ekko-aedat, lifnr LIKE ekko-lifnr, ebelp LIKE ekpo-ebelp, txz01 LIKE ekpo-txz01, menge LIKE ekpo-menge, netpr LIKE ekpo-netpr, peinh LIKE ekpo-peinh, __mark, END OF tp_data, tp_tbl_data TYPE STANDARD TABLE OF tp_data. ** * Constants ** ** * Data objects (variable declarations and definitions) ** * Report data to be shown. DATA: it_data TYPE STANDARD TABLE OF tp_data. * Heading of the report. DATA: t_heading TYPE slis_t_listheader. *========================== Selection Screen ==========================* selection-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-t01. DATA: w_aux_ebeln LIKE ekko-ebeln. SELECT-OPTIONS s_ebeln FOR w_aux_ebeln . DATA: w_aux_aedat LIKE ekko-aedat. SELECT-OPTIONS s_aedat FOR w_aux_aedat . DATA: w_aux_name1 LIKE lfa1-name1. SELECT-OPTIONS s_name1 FOR w_aux_name1 . selection-SCREEN: END OF BLOCK b1. *=========================== Event Blocks =============================* AT selection-SCREEN. start-OF-selection. PERFORM get_data USING it_data. END-OF-selection. PERFORM build_alv USING it_data t_heading. *=========================== Subroutines ==============================* *&---------------------------------------------------------------------* *& Form get_data *&---------------------------------------------------------------------* * Gets the information to be shown in the report. *----------------------------------------------------------------------* FORM get_data USING t_data TYPE tp_tbl_data. SELECT e~lifnr e~ebeln e~aedat p~ebelp p~txz01 p~menge p~netpr p~peinh INTO CORRESPONDING FIELDS OF TABLE t_data FROM ekko AS e inner JOIN lfa1 AS l ON e~lifnr = l~lifnr inner JOIN ekpo AS p ON p~ebeln = e~ebeln WHERE e~ebeln IN s_ebeln AND e~aedat IN s_aedat AND l~name1 IN s_name1 . ENDFORM. " get_data *&---------------------------------------------------------------------* *& Form build_alv *&---------------------------------------------------------------------* * Builds and display the ALV Grid. *----------------------------------------------------------------------* FORM build_alv USING t_data TYPE tp_tbl_data t_heading TYPE slis_t_listheader. * ALV required data objects. DATA: w_title TYPE lvc_title, w_comm TYPE slis_formname, w_status TYPE slis_formname, x_layout TYPE slis_layout_alv, t_event TYPE slis_t_event, t_fieldcat TYPE slis_t_fieldcat_alv, t_sort TYPE slis_t_sortinfo_alv. REFRESH t_fieldcat. REFRESH t_event. REFRESH t_sort. CLEAR x_layout. CLEAR w_title. * Field Catalog PERFORM set_fieldcat2 USING: 1 '__MARK' 'XFELD' space space space 'Select' 'Select this row' 'Sel' 'Select this row' space space space 'X' 'X' space t_fieldcat, 2 'LIFNR' 'LIFNR' 'EKKO' space space space space space space space space space space space space t_fieldcat , 3 'EBELN' 'EBELN' 'EKKO' space space space space space space space 'X' space space space space t_fieldcat , 4 'AEDAT' 'AEDAT' 'EKKO' space space space space space space space space space space space space t_fieldcat , 5 'EBELP' 'EBELP' 'EKPO' space space space space space space space space space space space space t_fieldcat , 6 'TXZ01' 'TXZ01' 'EKPO' space space space space space space space space space space space space t_fieldcat , 7 'MENGE' 'MENGE' 'EKPO' space space space space space space space space space space space 'X' t_fieldcat , 8 'NETPR' 'NETPR' 'EKPO' space space space space space space space space space space space space t_fieldcat , 9 'PEINH' 'PEINH' 'EKPO' space space space space space space space space space space space space t_fieldcat . * Layout x_layout-zebra = 'X'. * Top of page heading PERFORM set_top_page_heading USING t_heading t_event. * Events PERFORM set_events USING t_event. * GUI Status w_status = ''. * User commands w_comm = 'USER_COMMAND'. * Order * Example * PERFORM set_order USING '' 'IT_DATA' 'X' space space t_sort. PERFORM set_order USING 'LIFNR' 'IT_DATA' 'X' space 'X' t_sort. PERFORM set_order USING 'EBELN' 'IT_DATA' 'X' space 'X' t_sort. PERFORM set_order USING 'EBELP' 'IT_DATA' 'X' space space t_sort. * Displays the ALV grid CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid it_fieldcat = t_fieldcat is_layout = x_layout it_sort = t_sort i_callback_pf_status_set = w_status i_callback_user_command = w_comm i_save = 'X' it_events = t_event i_grid_title = w_title TABLES t_outtab = t_data EXCEPTIONS program_error = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDFORM. " build_alv. *&---------------------------------------------------------------------* *& Form set_top_page_heading *&---------------------------------------------------------------------* * Creates the report headings. *----------------------------------------------------------------------* FORM set_top_page_heading USING t_heading TYPE slis_t_listheader t_events TYPE slis_t_event. DATA: x_heading TYPE slis_listheader, x_event TYPE LINE OF slis_t_event. * Report title CLEAR t_heading[]. CLEAR x_heading. x_heading-typ = 'H'. x_heading-info = 'Reporte Prueba'(001). APPEND x_heading TO t_heading. * Program name CLEAR x_heading. x_heading-typ = 'S'. x_heading-KEY = 'Program: '. x_heading-info = sy-repid. APPEND x_heading TO t_heading. * User who is running the report CLEAR x_heading. x_heading-typ = 'S'. x_heading-KEY = 'User: '. x_heading-info = sy-uname. APPEND x_heading TO t_heading. * Date of execution CLEAR x_heading. x_heading-typ = 'S'. x_heading-KEY = 'Date: '. WRITE sy-datum TO x_heading-info. APPEND x_heading TO t_heading. * Time of execution CLEAR x_heading. x_heading-typ = 'S'. x_heading-KEY = 'Time: '. WRITE sy-uzeit TO x_heading-info. APPEND x_heading TO t_heading. * Top of page event x_event-name = slis_ev_top_of_page. x_event-FORM = 'TOP_OF_PAGE'. APPEND x_event TO t_events. ENDFORM. *&---------------------------------------------------------------------* *& Form set_events *&---------------------------------------------------------------------* * Sets the events for ALV. * The TOP_OF_PAGE event is alredy being registered in * the set_top_page_heading subroutine. *----------------------------------------------------------------------* FORM set_events USING t_events TYPE slis_t_event. DATA: x_event TYPE LINE OF slis_t_event. ** * Example * ------- * clear x_event. * x_event-name = . * x_event-form = . * append x_event to t_event. ** ENDFORM. *&---------------------------------------------------------------------* *& Form set_order *&---------------------------------------------------------------------* * Adds an entry to the order table. *----------------------------------------------------------------------* FORM set_order USING p_fieldname p_tabname p_up p_down p_subtot t_sort TYPE slis_t_sortinfo_alv. DATA: x_sort TYPE slis_sortinfo_alv. CLEAR x_sort. x_sort-fieldname = p_fieldname. x_sort-tabname = p_tabname. x_sort-UP = p_up. x_sort-down = p_down. x_sort-subtot = p_subtot. APPEND x_sort TO t_sort. ENDFORM. "set_order *&---------------------------------------------------------------------* *& Form set_fieldcat2 *&---------------------------------------------------------------------* * Adds an entry to the field catalog. *----------------------------------------------------------------------* FORM set_fieldcat2 USING p_colpos p_fieldname p_ref_fieldname p_ref_tabname p_outputlen p_noout p_seltext_m p_seltext_l p_seltext_s p_reptext_ddic p_ddictxt p_hotspot p_showasicon p_checkbox p_edit p_dosum t_fieldcat TYPE slis_t_fieldcat_alv. DATA: wa_fieldcat TYPE slis_fieldcat_alv. CLEAR wa_fieldcat. * General settings wa_fieldcat-fieldname = p_fieldname. wa_fieldcat-col_pos = p_colpos. wa_fieldcat-no_out = p_noout. wa_fieldcat-HOTSPOT = p_hotspot. wa_fieldcat-CHECKBOX = p_checkbox. wa_fieldcat-ICON = p_showasicon. wa_fieldcat-do_sum = p_dosum. * Set reference fieldname, tablenam and rollname. * If p_ref_tabname is not given, the ref_fieldname given is a data element. * If p_ref_tabname is given, the ref_fieldname given is a field of a table. In case ref_fieldname is not given, it is copied from the fieldname. IF p_ref_tabname IS INITIAL. wa_fieldcat-rollname = p_ref_fieldname. ELSE. wa_fieldcat-ref_tabname = p_ref_tabname. IF p_ref_fieldname EQ space. wa_fieldcat-ref_fieldname = wa_fieldcat-fieldname. ELSE. wa_fieldcat-ref_fieldname = p_ref_fieldname. ENDIF. ENDIF. * Set output length. IF NOT p_outputlen IS INITIAL. wa_fieldcat-outputlen = p_outputlen. ENDIF. * Set text headers. IF NOT p_seltext_m IS INITIAL. wa_fieldcat-seltext_m = p_seltext_m. ENDIF. IF NOT p_seltext_l IS INITIAL. wa_fieldcat-seltext_l = p_seltext_l. ENDIF. IF NOT p_seltext_s IS INITIAL. wa_fieldcat-seltext_s = p_seltext_s. ENDIF. IF NOT p_reptext_ddic IS INITIAL. wa_fieldcat-reptext_ddic = p_reptext_ddic. ENDIF. IF NOT p_ddictxt IS INITIAL. wa_fieldcat-ddictxt = p_ddictxt. ENDIF. * Set as editable or not. IF p_edit IS NOT INITIAL. wa_fieldcat-INPUT = 'X'. wa_fieldcat-EDIT = 'X'. ENDIF. APPEND wa_fieldcat TO t_fieldcat. ENDFORM. "set_fieldcat2 *=========================== Subroutines called by ALV ================* *&---------------------------------------------------------------------* *& Form top_of_page *&---------------------------------------------------------------------* * Called on top_of_page ALV event. * Prints the heading. *----------------------------------------------------------------------* FORM top_of_page. CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING * i_logo = 'XXXXX' it_list_commentary = t_heading. ENDFORM. " alv_top_of_page *&---------------------------------------------------------------------* *& Form user_command *&---------------------------------------------------------------------* * Called on user_command ALV event. * Executes custom commands. *----------------------------------------------------------------------* FORM user_command USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield. ** * Example Code * * Executes a command considering the sy-ucomm. * CASE r_ucomm. * WHEN '&IC1'. * * Set your "double click action" response here. * * Example code: Create and display a status message. * DATA: w_msg TYPE string, * w_row(4) TYPE n. * w_row = rs_selfield-tabindex. * CONCATENATE 'You have clicked row' w_row * 'field' rs_selfield-fieldname * 'with value' rs_selfield-value * INTO w_msg SEPARATED BY space. * MESSAGE w_msg TYPE 'S'. * * ENDCASE. * * End of example code. ** ENDFORM. "user_command