abap alv block - list display with total & grand-total

Post on 25-Oct-2014

300 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ALV BLOCK - LIST DISPLAY WITH TOTAL & GRAND-TOTAL :

REPORT z_alv_list_block.TYPE-POOLS: slis. " ALV Global typesSELECTION-SCREEN :SKIP,BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max. "#EC NEEDEDPARAMETERS p_max(2) TYPE n DEFAULT '02' OBLIGATORY.SELECTION-SCREEN END OF LINE.DATA:* 1st TableBEGIN OF gt_kna1 OCCURS 0, " Data displayedkunnr LIKE kna1-kunnr, " Customer numberernam LIKE kna1-ernam, " Name of Person who Createderdat LIKE kna1-erdat, " Creation datename1 LIKE kna1-name1, " Name 1END OF gt_kna1,* 2nd TableBEGIN OF gt_mara OCCURS 0,ernam LIKE mara-ernam, " Name of Person who Createdmatnr LIKE mara-matnr, " Material numberersda LIKE mara-e rsda, " Creation datebrgew LIKE mara-brgew, " Gross weightEND OF gt_mara,* 3rd TableBEGIN OF gt_vbak OCCURS 0,vkorg LIKE vbak-vkorg, " Sales organizationkunnr LIKE vbak-kunnr, " Sold-to partyvbeln LIKE vbak-vbeln, " Sales documentnetwr LIKE vbak-netwr, " Net Value of the Sales Orderwaerk LIKE vbak-waerk, " SD document currencyEND OF gt_vbak.*---------------------------------------------------------------------*INITIALIZATION.v_1 = 'Maximum of records to read'.*---------------------------------------------------------------------*START-OF-SELECTION.* Read dataSELECT * FROM kna1UP TO p_max ROWSINTO CORRESPONDING FIELDS OF TABLE gt_kna1.SELECT * FROM maraUP TO p_max ROWSINTO CORRESPONDING FIELDS OF TABLE gt_mara.SELECT * FROM vbakUP TO p_max ROWSINTO CORRESPONDING FIELDS OF TABLE gt_vbak.CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'EXPORTINGi_callback_program = sy-cprogi_callback_user_command = 'USER_COMMAND'.PERFORM list_append TABLES gt_kna1USING '1''GT_KNA1'.PERFORM list_append TABLES gt_maraUSING '2'

'GT_MARA'.PERFORM list_append TABLES gt_vbakUSING '3''GT_VBAK'.PERFORM f_list_display.*---------------------------------------------------------------------** FORM USER_COMMAND **---------------------------------------------------------------------*FORM user_command USING i_ucomm LIKE sy-ucommis_selfield TYPE slis_selfield. "#EC CALLEDCASE i_ucomm.WHEN '&IC1'. " PickCASE is_selfield-tabname.WHEN 'GT_MARA'.WHEN 'GT_KNA1'.WHEN 'GT_VBAK'.READ TABLE gt_vbak INDEX is_selfield-tabindex.IF sy-subrc EQ 0.* Sales order numberSET PARAMETER ID 'AUN' FIELD gt_vbak-vbeln.* Display Sales OrderCALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.ENDIF.ENDCASE.ENDCASE.ENDFORM. " USER_COMMAND*---------------------------------------------------------------------*< /div> * Form list_append*---------------------------------------------------------------------*FORM list_append TABLES ut_tableUSING u_no TYPE char1u_tabname TYPE slis_tabname.* Macro definitionDEFINE m_fieldcat.ls_fieldcat-fieldname = &1.ls_fieldcat-ref_tabname = &2.append ls_fieldcat to lt_fieldcat.END-OF-DEFINITION.DEFINE m_sort.ls_sort-fieldname = &1.ls_sort-up = 'X'.append ls_sort to lt_sort.END-OF-DEFINITION.DATA :ls_fieldcat TYPE slis_fieldcat_alv,lt_fieldcat TYPE slis_t_fieldcat_alv, " Field catalogls_sort TYPE slis_sortinfo_alv,lt_sort TYPE slis_t_sortinfo_alv. " Sort tableDATA:lt_events TYPE slis_t_event,ls_event TYPE slis_alv_event,ls_layout TYPE slis_layout_alv.ls_layout-group_change_edit = 'X'.ls_layout-colwidth_optimize = 'X'.ls_layout-zebra = 'X'.ls_layout-detail_popup = 'X'.

ls_layout-get_selinfos = 'X'.ls_layout-max_linesize = '200'.CASE u_no.WHEN '1'.* Build field catalog and sort tablem_fieldcat 'KUNNR' 'KNA1'.m_fieldcat 'ERNAM' 'KNA1'.m_fieldcat 'ERDAT' 'KNA1'.m_fieldcat 'NAME1' 'KNA1'.m_sort 'KUNNR'.WHEN '2'.m_fieldcat 'MATNR' 'MARA'.m_fieldcat 'ERNAM' 'MARA'.m_fieldcat 'ERSDA' 'MARA'.m_fieldcat 'BRGEW' 'MARA'.m_sort 'MATNR'.WHEN '3'.m_fieldcat 'VBELN' 'VBAK'.m_fieldcat 'VKORG' 'VBAK'.m_fieldcat 'KUNNR' 'VBAK'.m_fieldcat 'NETWR' 'VBAK'.m_fieldcat 'WAERK' 'VBAK'.m_sort 'VBELN'.ENDCASE.IF u_no CA '13'.MOVE 'TOP_OF_PAGE' TO ls_event-name.CONCATENATE 'TOP_OF_PAGE' u_no INTO ls_event-form.APPEND ls_event TO lt_events.ELSE.MOVE 'TOP_OF_LIST' TO ls_event-name.CONCATENATE 'TOP_OF_LIST' u_no INTO ls_event-form.APPEND ls_event TO lt_events.ENDIF.CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'EXPORTINGit_fieldcat = lt_fieldcatis_layout = ls_layouti_tabname = u_tabnameit_events = lt_eventsit_sort = lt_sort* i_text =TABLESt_outtab = ut_tableEXCEPTIONSprogram_error = 1maximum_of_appends_reached = 2OTHERS = 3.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.ENDFORM. " LIST_APPEND*---------------------------------------------------------------------** Form f_list_display*---------------------------------------------------------------------*FORM f_list_display.DATA ls_print TYPE slis_print_alv.

ls_print-no_print_selinfos = 'X'. " Display no selection infosls_print-no_print_listinfos = 'X'. " Display no listinfosls_print-reserve_lines = 2. " Lines reserved for end of pageCALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'EXPORTINGi_interface_check = ' 'is_print = ls_printEXCEPTIONS program_error = 1OTHERS = 2.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.ENDFORM. " F_LIST_DISPLAY*---------------------------------------------------------------------** FORM top_of_page1 **---------------------------------------------------------------------*FORM top_of_page1. "#EC CALLEDPERFORM top_of_page.ENDFORM.*---------------------------------------------------------------------** FORM top_of_page3 **---------------------------------------------------------------------*FORM top_of_page3. "#EC CALLEDPERFORM top_of_page.ENDFORM.*---------------------------------------------------------------------** FORM top_of_page **---------------------------------------------------------------------*FORM top_of_page.ULINE.WRITE : sy-uname, sy-title(56) CENTERED, sy-datum.ULINE.ENDFORM.*---------------------------------------------------------------------** FORM top_of_list2 **---------------------------------------------------------------------*FORM top_of_list2. "#EC CALLEDWRITE 'TOP OF LIST2'.ENDFORM.************** END OF PROGRAM Z_ALV_LIST_BLOCK ***********************

Following is a demo program on ALV Blocked list using the following function modules (The screenshots of the output are shown at the end):

REUSE_ALV_BLOCK_LIST_INIT REUSE_ALV_BLOCK_LIST_APPEND

REUSE_ALV_BLOCK_LIST_DISPLAY

*&---------------------------------------------------------------------**& Report ZALV_BLOCKEDALV **& **&---------------------------------------------------------------------*REPORT ZALV_BLOCKEDALV .*provide tablesTABLES: MARA, MAKT, MARD.*provide type-poolsTYPE-POOLS: SLIS.*provide select-optionsSELECT-OPTIONS: S_MATNR FOR MARA-MATNR.*provide data objectsDATA: V_REPID TYPE SY-REPID, WA_MARA_FIELD TYPE SLIS_FIELDCAT_ALV, "it is for field catalog WA_MAKT_FIELD TYPE SLIS_FIELDCAT_ALV, WA_MARD_FIELD TYPE SLIS_FIELDCAT_ALV, WA_MARA TYPE MARA, WA_MAKT TYPE MAKT, WA_MARD TYPE MARD, IT_MARA_FIELD TYPE SLIS_T_FIELDCAT_ALV, IT_MAKT_FIELD TYPE SLIS_T_FIELDCAT_ALV, IT_MARD_FIELD TYPE SLIS_T_FIELDCAT_ALV, IT_MARA TYPE TABLE OF MARA, IT_MAKT TYPE TABLE OF MAKT, IT_MARD TYPE TABLE OF MARD, V_LAYOUT TYPE SLIS_LAYOUT_ALV, IT_EVENTS TYPE SLIS_T_EVENT, "it is for events WA_EVENTS TYPE SLIS_ALV_EVENT.V_REPID = SY-REPID.*provide field catalog performPERFORM FIELD_CAT.*call the initial function moduleCALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT' EXPORTING I_CALLBACK_PROGRAM = V_REPID* I_CALLBACK_PF_STATUS_SET = ' '* I_CALLBACK_USER_COMMAND = ' '* IT_EXCLUDING = .*provide perform for select the dataPERFORM SELECT_DATA.*call mara append listCALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND' EXPORTING IS_LAYOUT = V_LAYOUT IT_FIELDCAT = IT_MARA_FIELD[] I_TABNAME = 'MARA'

IT_EVENTS = IT_EVENTS[]* IT_SORT =* I_TEXT = ' ' TABLES T_OUTTAB = IT_MARA EXCEPTIONS PROGRAM_ERROR = 1 MAXIMUM_OF_APPENDS_REACHED = 2 OTHERS = 3.*call makt append listCALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND' EXPORTING IS_LAYOUT = V_LAYOUT IT_FIELDCAT = IT_MAKT_FIELD I_TABNAME = 'MAKT' IT_EVENTS = IT_EVENTS* IT_SORT =* I_TEXT = ' ' TABLES T_OUTTAB = IT_MAKT EXCEPTIONS PROGRAM_ERROR = 1 MAXIMUM_OF_APPENDS_REACHED = 2 OTHERS = 3.*call mard append listCALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND' EXPORTING IS_LAYOUT = V_LAYOUT IT_FIELDCAT = IT_MARD_FIELD I_TABNAME = 'MARD' IT_EVENTS = IT_EVENTS* IT_SORT =* I_TEXT = ' ' TABLES T_OUTTAB = IT_MARD EXCEPTIONS PROGRAM_ERROR = 1 MAXIMUM_OF_APPENDS_REACHED = 2 OTHERS = 3.*display the dataCALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'* EXPORTING* I_INTERFACE_CHECK = ' '* IS_PRINT =* 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 =* EXCEPTIONS* PROGRAM_ERROR = 1* OTHERS = 2..*&--------------------------------------------------------------------**& Form TOP_PAGE

*&--------------------------------------------------------------------** text*---------------------------------------------------------------------*FORM TOP_PAGE. WRITE:/ 'THIS IS BLOCKED ALV REPORT PROGRAM BASED ON 3 BLOCKS' COLOR 5.ENDFORM. "TOP_PAGE*&---------------------------------------------------------------------**& Form FIELD_CAT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM FIELD_CAT .WA_MARA_FIELD-COL_POS = 1.WA_MARA_FIELD-FIELDNAME = 'MATNR'.WA_MARA_FIELD-REF_TABNAME = 'MARA'.APPEND WA_MARA_FIELD TO IT_MARA_FIELD.CLEAR WA_MARA_FIELD.WA_MARA_FIELD-COL_POS = 2.WA_MARA_FIELD-FIELDNAME = 'ERSDA'.WA_MARA_FIELD-REF_TABNAME = 'MARA'.APPEND WA_MARA_FIELD TO IT_MARA_FIELD.CLEAR WA_MARA_FIELD.WA_MARA_FIELD-COL_POS = 3.WA_MARA_FIELD-FIELDNAME = 'ERNAM'.WA_MARA_FIELD-REF_TABNAME = 'MARA'.APPEND WA_MARA_FIELD TO IT_MARA_FIELD.CLEAR WA_MARA_FIELD.WA_MARA_FIELD-COL_POS = 4.WA_MARA_FIELD-FIELDNAME = 'LAEDA'.WA_MARA_FIELD-REF_TABNAME = 'MARA'.APPEND WA_MARA_FIELD TO IT_MARA_FIELD.CLEAR WA_MARA_FIELD.WA_MAKT_FIELD-COL_POS = '1'.WA_MAKT_FIELD-FIELDNAME = 'MATNR'.WA_MAKT_FIELD-REF_TABNAME = 'MAKT'.APPEND WA_MAKT_FIELD TO IT_MAKT_FIELD.CLEAR WA_MAKT_FIELD.WA_MAKT_FIELD-COL_POS = 2.WA_MAKT_FIELD-FIELDNAME = 'MAKTX'.WA_MAKT_FIELD-REF_TABNAME = 'MAKT'.APPEND WA_MAKT_FIELD TO IT_MAKT_FIELD.CLEAR WA_MAKT_FIELD.WA_MAKT_FIELD-COL_POS = 3.WA_MAKT_FIELD-FIELDNAME = 'MAKTG'.WA_MAKT_FIELD-REF_TABNAME = 'MAKT'.APPEND WA_MAKT_FIELD TO IT_MAKT_FIELD.CLEAR WA_MAKT_FIELD.WA_MARD_FIELD-COL_POS = 1.WA_MARD_FIELD-FIELDNAME = 'MATNR'.WA_MARD_FIELD-REF_TABNAME = 'MARD'.APPEND WA_MARD_FIELD TO IT_MARD_FIELD.CLEAR WA_MARD_FIELD.WA_MARD_FIELD-COL_POS = 2.WA_MARD_FIELD-FIELDNAME = 'WERKS'.

WA_MARD_FIELD-REF_TABNAME = 'MARD'.APPEND WA_MARD_FIELD TO IT_MARD_FIELD.CLEAR WA_MARD_FIELD.WA_MARD_FIELD-COL_POS = 3.WA_MARD_FIELD-FIELDNAME = 'LGORT'.WA_MARD_FIELD-REF_TABNAME = 'MARD'.APPEND WA_MARD_FIELD TO IT_MARD_FIELD.CLEAR WA_MARD_FIELD.WA_EVENTS-FORM = 'TOP_PAGE'.WA_EVENTS-NAME = 'TOP_OF_PAGE'.APPEND WA_EVENTS TO IT_EVENTS.ENDFORM. " FIELD_CAT*&---------------------------------------------------------------------**& Form SELECT_DATA*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM SELECT_DATA .SELECT *FROM MARAINTO TABLE IT_MARAWHERE MATNR IN S_MATNR.SELECT *FROM MAKTINTO TABLE IT_MAKTWHERE MATNR IN S_MATNR.SELECT *FROM MARDINTO TABLE IT_MARDWHERE MATNR IN S_MATNR.ENDFORM. " SELECT_DATASave, check, activate it.

Then press execute button then we can see the output like this.

Press execute button.

Press F8.

Then output is like this.

Scroll the list.

Scroll the list.

 

REPORT Z_50657_ALV_EX3        NO STANDARD PAGE HEADING        LINE-COUNT 65(3)        LINE-SIZE 220        MESSAGE-ID ZZ.

*************************************************************************                             Type Pools                               *************************************************************************

TYPE-POOLS: SLIS, ICON.

*************************************************************************                              Tables                                  *************************************************************************

TABLES: MARA, "General Material Data        MAKT. "Material Descriptions

*************************************************************************                         Internal Tables                              *************************************************************************

** Internal table to hold data from MARADATA: BEGIN OF IT_MARA OCCURS 0,      MATNR LIKE MARA-MATNR,      MTART LIKE MARA-MTART,      MATKL LIKE MARA-MATKL,      MEINS LIKE MARA-MEINS,      NTGEW LIKE MARA-NTGEW,      CHECK(1) TYPE C,      END OF IT_MARA.

** Internal table to hold material description from MAKTDATA: BEGIN OF IT_MAKT OCCURS 0,      MATNR LIKE MAKT-MATNR,      MAKTX LIKE MAKT-MAKTX,      END OF IT_MAKT.

** Internal table to hold data from MARC

DATA: BEGIN OF IT_MARC OCCURS 0,      MATNR LIKE MARC-MATNR,      WERKS LIKE MARC-WERKS,      LADGR LIKE MARC-LADGR,      MTVFP LIKE MARC-MTVFP,      DISPR LIKE MARC-DISPR,      DISMM LIKE MARC-DISMM,      DISPO LIKE MARC-DISPO,      END OF IT_MARC.

*************************************************************************                       Work Area                               *************************************************************************

DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV,      IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA: X_FIELDCAT_MAKT TYPE SLIS_FIELDCAT_ALV,

      IT_FIELDCAT_MAKT TYPE SLIS_T_FIELDCAT_ALV.

DATA: X_FIELDCAT_MARC TYPE SLIS_FIELDCAT_ALV,      IT_FIELDCAT_MARC TYPE SLIS_T_FIELDCAT_ALV.

DATA: WA_SORT TYPE SLIS_SORTINFO_ALV,      IT_SORT TYPE SLIS_T_SORTINFO_ALV.

DATA: L_LAYOUT_MARA TYPE SLIS_LAYOUT_ALV,      L_LAYOUT_MAKT TYPE SLIS_LAYOUT_ALV,      L_LAYOUT_MARC TYPE SLIS_LAYOUT_ALV.

DATA: GT_XEVENTS TYPE SLIS_T_EVENT,      GT_YEVENTS TYPE SLIS_T_EVENT,      GT_ZEVENTS TYPE SLIS_T_EVENT,      IT_HS_EVENTS TYPE SLIS_T_EVENT.

DATA : GT_PRINT TYPE SLIS_PRINT_ALV.           " print table

DATA : IT_HEADER TYPE SLIS_TABNAME,       IT_ITEM TYPE SLIS_TABNAME.

DATA: IT_KEYINFO TYPE SLIS_KEYINFO_ALV.

*************************************************************************                       Selection-Screen                               *************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS: S_MATNR FOR MARA-MATNR,                S_MTART FOR MARA-MTART.

SELECTION-SCREEN END OF BLOCK B1.

*************************************************************************                     At  Selection-Screen                             **************************************************************************VALIDATION

*************************************************************************                       Start of Selection                             *************************************************************************

START-OF-SELECTION.

*POPULATION OF DATA INTO INTERNAL TABLE ITAB  PERFORM GET_DATA.

  PERFORM DEFINE_FIELDCAT.

*CHANGE LAYOUT ACCORDING TO THE REQUIREMENTS  PERFORM DEFINE_LAYOUT.

*MERGE FIELDCATALOGUES  PERFORM FIELDCATALOG_MERGE.

*USE SORT FUNCTION SO AS TO GET SUBTOTALS AND GRAND TOTAL  PERFORM SORT_FUNC.

*************************************************************************                       End of Selection                             *************************************************************************

END-OF-SELECTION.

  PERFORM FINAL_DISPLAY.

*&--------------------------------------------------------------------**&      Form  GET_DATA*&--------------------------------------------------------------------**       text*---------------------------------------------------------------------*FORM GET_DATA.

  SELECT MATNR         MTART         MATKL         MEINS         NTGEW         FROM MARA INTO TABLE IT_MARA         WHERE MATNR IN S_MATNR AND MTART IN S_MTART .

  SELECT MATNR         MAKTX         FROM MAKT INTO TABLE IT_MAKT         FOR ALL ENTRIES IN IT_MARA         WHERE MATNR = IT_MARA-MATNR.

  SELECT MATNR         WERKS         LADGR         MTVFP         DISPR         DISMM         DISPO FROM MARC INTO TABLE IT_MARC         FOR ALL ENTRIES IN IT_MARA         WHERE MATNR = IT_MARA-MATNR.

ENDFORM.                    "GET_DATA

*&--------------------------------------------------------------------**&      Form  DEFINE_FIELDCAT*&--------------------------------------------------------------------**       text*---------------------------------------------------------------------*FORM DEFINE_FIELDCAT.

  X_FIELDCAT-FIELDNAME = 'MTART'.

  X_FIELDCAT-TABNAME = 'IT_MARA'.  X_FIELDCAT-SELTEXT_L = ''.  X_FIELDCAT-OUTPUTLEN = 15.  APPEND X_FIELDCAT TO IT_FIELDCAT.  CLEAR X_FIELDCAT.

  X_FIELDCAT-FIELDNAME = 'CHECK'.  X_FIELDCAT-TABNAME = 'IT_MARA'.  X_FIELDCAT-CHECKBOX =  'X'.  X_FIELDCAT-COL_POS = 1.  APPEND X_FIELDCAT TO IT_FIELDCAT.  CLEAR X_FIELDCAT.

  X_FIELDCAT-FIELDNAME = 'MATKL'.  X_FIELDCAT-TABNAME = 'IT_MARA'.  X_FIELDCAT-OUTPUTLEN = 15.  APPEND X_FIELDCAT TO IT_FIELDCAT.  CLEAR X_FIELDCAT.

  X_FIELDCAT-FIELDNAME = 'NTGEW'.  X_FIELDCAT-TABNAME = 'IT_MARA'.  X_FIELDCAT-DO_SUM = 'X'.  X_FIELDCAT-OUTPUTLEN = 15.  APPEND X_FIELDCAT TO IT_FIELDCAT.  CLEAR X_FIELDCAT.

ENDFORM.                    "DEFINE_FIELDCAT

*&--------------------------------------------------------------------**&      Form  DEFINE_LAYOUT*&--------------------------------------------------------------------**       text*---------------------------------------------------------------------*FORM DEFINE_LAYOUT.

  L_LAYOUT_MARA-ZEBRA = 'X'.  L_LAYOUT_MARA-SUBTOTALS_TEXT = 'GEN SUBTOT'.  L_LAYOUT_MARA-WINDOW_TITLEBAR = 'DETAILS'.  L_LAYOUT_MARA-TOTALS_TEXT = 'TOTAL VALUE'.

  L_LAYOUT_MARC-ZEBRA = 'X'.  L_LAYOUT_MAKT-ZEBRA = 'X'.

ENDFORM.                    "DEFINE_LAYOUT

*&--------------------------------------------------------------------**&      Form  FIELDCATALOG_MERGE*&--------------------------------------------------------------------**       text*---------------------------------------------------------------------*FORM FIELDCATALOG_MERGE.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'    EXPORTING      I_PROGRAM_NAME         = SY-REPID      I_INTERNAL_TABNAME     = 'IT_MARA'

      I_INCLNAME             = SY-REPID    CHANGING      CT_FIELDCAT            = IT_FIELDCAT    EXCEPTIONS      INCONSISTENT_INTERFACE = 1      PROGRAM_ERROR          = 2      OTHERS                 = 3.  IF SY-SUBRC <> 0.    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.  ENDIF.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'    EXPORTING      I_PROGRAM_NAME         = SY-REPID      I_INTERNAL_TABNAME     = 'IT_MAKT'      I_INCLNAME             = SY-REPID    CHANGING      CT_FIELDCAT            = IT_FIELDCAT_MAKT    EXCEPTIONS      INCONSISTENT_INTERFACE = 1      PROGRAM_ERROR          = 2      OTHERS                 = 3.  IF SY-SUBRC <> 0.    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.  ENDIF.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'    EXPORTING      I_PROGRAM_NAME         = SY-REPID      I_INTERNAL_TABNAME     = 'IT_MARC'      I_INCLNAME             = SY-REPID    CHANGING      CT_FIELDCAT            = IT_FIELDCAT_MARC    EXCEPTIONS      INCONSISTENT_INTERFACE = 1      PROGRAM_ERROR          = 2      OTHERS                 = 3.  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.                    "FIELDCATALOG_MERGE

*&--------------------------------------------------------------------**&      Form  SORT_FUNC*&--------------------------------------------------------------------**       text*---------------------------------------------------------------------*FORM SORT_FUNC.

  WA_SORT-SPOS = '1'.

  WA_SORT-FIELDNAME = 'MTART'.  WA_SORT-TABNAME = 'IT_MARA'.  WA_SORT-UP = 'X'.  APPEND WA_SORT TO IT_SORT.  CLEAR WA_SORT.

  WA_SORT-SPOS = '2'.  WA_SORT-FIELDNAME = 'MATKL'.  WA_SORT-TABNAME = 'IT_MARA'.  WA_SORT-UP = 'X'.  APPEND WA_SORT TO IT_SORT.  CLEAR WA_SORT.

  WA_SORT-SPOS = '3'.  WA_SORT-FIELDNAME = 'MATKL'.  WA_SORT-TABNAME = 'IT_MARA'.  WA_SORT-UP = 'X'.  APPEND WA_SORT TO IT_SORT.  CLEAR WA_SORT.

  WA_SORT-SPOS = '4'.  WA_SORT-FIELDNAME = 'NTGEW'.  WA_SORT-TABNAME = 'IT_MARA'.  WA_SORT-UP = 'X'.  WA_SORT-SUBTOT = 'X'.  APPEND WA_SORT TO IT_SORT.  CLEAR WA_SORT.

  WA_SORT-SPOS = '5'.  WA_SORT-FIELDNAME = 'MATNR'.  WA_SORT-TABNAME = 'IT_MARA'.  WA_SORT-UP = 'X'.  APPEND WA_SORT TO IT_SORT.  CLEAR WA_SORT.

ENDFORM.                    "SORT_FUNC

*&--------------------------------------------------------------------**&      Form  FINAL_DISPLAY*&--------------------------------------------------------------------**       text*---------------------------------------------------------------------*FORM FINAL_DISPLAY.

  CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'    EXPORTING      I_CALLBACK_PROGRAM = SY-REPID.

  CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'    EXPORTING      IS_LAYOUT                  = L_LAYOUT_MARA      IT_FIELDCAT                = IT_FIELDCAT      I_TABNAME                  = 'IT_MARA'      IT_EVENTS                  = GT_XEVENTS      IT_SORT                    = IT_SORT    TABLES

      T_OUTTAB                   = IT_MARA    EXCEPTIONS      PROGRAM_ERROR              = 1      MAXIMUM_OF_APPENDS_REACHED = 2      OTHERS                     = 3.  IF SY-SUBRC <> 0.    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.  ENDIF.

  CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'    EXPORTING      IS_LAYOUT                  = L_LAYOUT_MAKT      IT_FIELDCAT                = IT_FIELDCAT_MAKT      I_TABNAME                  = 'IT_MAKT'      IT_EVENTS                  = GT_YEVENTS    TABLES      T_OUTTAB                   = IT_MAKT    EXCEPTIONS      PROGRAM_ERROR              = 1      MAXIMUM_OF_APPENDS_REACHED = 2      OTHERS                     = 3.  IF SY-SUBRC <> 0.    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.  ENDIF.

    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'    EXPORTING      IS_LAYOUT                  = L_LAYOUT_MARC      IT_FIELDCAT                = IT_FIELDCAT_MARC      I_TABNAME                  = 'IT_MARC'      IT_EVENTS                  = GT_YEVENTS    TABLES      T_OUTTAB                   = IT_MARC    EXCEPTIONS      PROGRAM_ERROR              = 1      MAXIMUM_OF_APPENDS_REACHED = 2      OTHERS                     = 3.  IF SY-SUBRC <> 0.    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.  ENDIF.

  CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'    EXPORTING      IS_PRINT = GT_PRINT.

  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.                    "FINAL_DISPLAY

top related