Mentor SAP
2017-03-05 Submitted by:- Admin
*&---------------------------------------------------------------------* *& Report ZGS_ALV_VARIANTS *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT ZGS_ALV_VARIANTS. TYPE-POOLS slis. TABLES: vbap. SELECT-OPTIONS s_vbeln FOR vbap-vbeln DEFAULT '4957' TO '5002'. DATA: i_var LIKE disvariant, o_var LIKE disvariant. DATA fcat TYPE slis_t_fieldcat_alv WITH HEADER LINE. DATA abc TYPE slis_layout_alv. DATA: BEGIN OF itab OCCURS 0, vbeln LIKE vbap-vbeln, posnr LIKE vbap-posnr, ernam LIKE vbap-ernam, netwr LIKE vbap-netwr, END OF itab. PARAMETERS: p_var LIKE disvariant-variant. INITIALIZATION. i_var-report = sy-repid. * PERFORM variant_default. AT SELECTION-SCREEN ON p_var. * PERFORM variant_existance. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_var. * PERFORM variant_f4. START-OF-SELECTION. o_var-report = sy-repid. o_var-variant = p_var. SELECT vbeln posnr ernam netwr INTO TABLE itab FROM vbap WHERE vbeln IN s_vbeln. CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_program_name = sy-cprog i_internal_tabname = 'ITAB' * I_STRUCTURE_NAME = * I_CLIENT_NEVER_DISPLAY = 'X' i_inclname = sy-cprog * I_BYPASSING_BUFFER = * I_BUFFER_ACTIVE = CHANGING ct_fieldcat = fcat[] * EXCEPTIONS * INCONSISTENT_INTERFACE = 1 * PROGRAM_ERROR = 2 * OTHERS = 3 . IF sy-subrc <> 0. MESSAGE 'Problem Filling Field Catalog' TYPE 'I'. ENDIF. abc-zebra = 'X'. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING * I_INTERFACE_CHECK = ' ' * I_BYPASSING_BUFFER = * I_BUFFER_ACTIVE = ' ' i_callback_program = sy-cprog * I_CALLBACK_PF_STATUS_SET = ' ' * I_CALLBACK_USER_COMMAND = ' ' * I_STRUCTURE_NAME = is_layout = abc it_fieldcat = fcat[] * IT_EXCLUDING = * IT_SPECIAL_GROUPS = * IT_SORT = * IT_FILTER = * IS_SEL_HIDE = i_default = 'X' i_save = 'A' is_variant = o_var * IT_EVENTS = * IT_EVENT_EXIT = * IS_PRINT = * IS_REPREP_ID = * I_SCREEN_START_COLUMN = 0 * I_SCREEN_START_LINE = 0 * I_SCREEN_END_COLUMN = 0 * I_SCREEN_END_LINE = 0 * IMPORTING * E_EXIT_CAUSED_BY_CALLER = * ES_EXIT_CAUSED_BY_USER = TABLES t_outtab = itab * 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. *&---------------------------------------------------------------------* *& Form Variant_default *&---------------------------------------------------------------------* * Variant_Default_get *----------------------------------------------------------------------* *FORM variant_default . * * i_var-report = sy-repid. * * CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET' * EXPORTING * i_save = 'A' * CHANGING * cs_variant = i_var * EXCEPTIONS * wrong_input = 1 * not_found = 2 * program_error = 3 * OTHERS = 4. * IF sy-subrc = 0. * p_var = i_var-variant. * ELSE. * p_var = 'LAYOUT1'. * ENDIF. * *ENDFORM. " Variant_default **&--------------------------------------------------------------------- ** **& Form variant_existance **&--------------------------------------------------------------------- ** ** Checking the existance of entered variant. **---------------------------------------------------------------------- ** *FORM variant_existance . * * i_var-report = sy-repid. * i_var-variant = p_var. * * IF NOT p_var IS INITIAL. * CLEAR i_var-variant. * i_var-report = sy-repid. * i_var-variant = p_var. * * CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE' * EXPORTING * i_save = 'A' * CHANGING * cs_variant = i_var * EXCEPTIONS * wrong_input = 1 * not_found = 2 * program_error = 3 * OTHERS = 4. * IF sy-subrc = 2. * MESSAGE 'No Such Variant Found' TYPE 'E'. * ** ELSE. ** CLEAR i_var-variant. ** o_var-report = sy-repid. ** o_var-variant = p_var. * ENDIF. * ELSE. * CLEAR i_var. * ENDIF. * *ENDFORM. " variant_existance * **&--------------------------------------------------------------------- ** **& Form variant_f4 **&--------------------------------------------------------------------- ** ** Selecting Variants from existing Variants using F4 Option **---------------------------------------------------------------------- ** *FORM variant_f4 . * * i_var-report = sy-repid. * * CALL FUNCTION 'REUSE_ALV_VARIANT_F4' * EXPORTING * is_variant = i_var ** I_TABNAME_HEADER = ** I_TABNAME_ITEM = ** IT_DEFAULT_FIELDCAT = * i_save = 'A' ** I_DISPLAY_VIA_GRID = ' ' * IMPORTING ** E_EXIT = * es_variant = o_var ** EXCEPTIONS ** NOT_FOUND = 1 ** PROGRAM_ERROR = 2 ** OTHERS = 3 * . * IF sy-subrc <> 0. * MESSAGE 'No Variants Found' TYPE 'I'. * ELSE. * p_var = o_var-variant. * ENDIF. * *ENDFORM. " variant_f4