Displaying Multiple ALV Reports through program


ALV Report:

  • Displaying the header and item details in in two separate ALV reports. 

*&---------------------------------------------------------------------*
*& Report ZVB_ALV
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zvb_alv.
TABLESvbakvbap.
TYPE-POOLSslis.

*Data declarations
TYPESBEGIN OF ty_vbak,
         vbeln TYPE vbak-vbeln,
         erdat TYPE vbak-erdat,
         ernam TYPE vbak-ernam,
       END OF ty_vbak,
       BEGIN OF ty_vbap,
         vbeln TYPE vbap-vbeln,
         posnr TYPE vbap-posnr,
         matnr TYPE vbap-matnr,
         matwa TYPE vbap-matwa,
       END OF ty_vbap.

DATA:iw_vbak TYPE ty_vbak,
     it_vbak TYPE TABLE OF ty_vbak,
     iw_vbap TYPE ty_vbap,
     it_vbap TYPE TABLE OF ty_vbap.

DATA:iw_fcat1  TYPE slis_fieldcat_alv,
     it_fcat1  TYPE slis_t_fieldcat_alv,
     iw_fcat2  TYPE slis_fieldcat_alv,
     it_fcat2  TYPE slis_t_fieldcat_alv,
     iw_layout TYPE slis_layout_alv.

DATA:iw_header TYPE slis_listheader,
     it_header TYPE slis_t_listheader.

*Selection screen
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
  PARAMETERSp_vbak RADIOBUTTON GROUP g1 USER-COMMAND test DEFAULT 'X',
              p_vbap RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-002.
  SELECT-OPTIONSs_vbeln FOR vbak-vbeln MODIF ID a1.
SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE TEXT-003.
  SELECT-OPTIONSs_vbeln1 FOR vbap-vbeln MODIF ID a2,
                  s_posnr FOR vbap-posnr MODIF ID a2.
SELECTION-SCREEN END OF BLOCK b3.

*Displaying selection screen parameters based on Radio button selection
AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    IF p_vbak 'X' AND screen-group1 'A1'.
      screen-active 1.
      MODIFY SCREEN.
    ELSEIF p_vbap 'X' AND screen-group1 'A2'.
      screen-active 1.
      MODIFY SCREEN.
    ELSEIF p_vbak ' ' AND screen-group1 'A1'.
      screen-active 0.
      MODIFY SCREEN.
    ELSEIF p_vbap ' ' AND screen-group1 'A2'.
      screen-active 0.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.

*initialization
INITIALIZATION.
  CLEARiw_vbak,
         iw_vbap,
         iw_fcat1,
         iw_fcat2.
  REFRESHit_vbak,
           it_vbap,
           it_fcat1,
           it_fcat2.

*Displaying ALV Report Header
FORM top-of-page.
  CLEAR:iw_header.
  REFRESH:it_header.
  IF p_vbak 'X'.
    iw_header-typ 'H'.
    iw_header-infO 'Sales Document: Header Data'.
  ELSEIF p_vbap 'X'.
    iw_header-typ 'H'.
    iw_header-infO 'Sales Document: Item Data'.
  ENDIF.
  APPEND iw_header TO it_header.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary it_header
*     I_LOGO             =
*     I_END_OF_LIST_GRID =
*     I_ALV_FORM         =
    .
ENDFORM.

START-OF-SELECTION.

  iw_layout-zebra 'X'.

  IF p_vbak 'X'.    "Radio button for SO Header details
*Fetch data from VBAK
    SELECT vbeln
           erdat
           ernam
      FROM vbak
      INTO TABLE it_vbak
      WHERE vbeln IN s_vbeln.

*Fieldcatalog for ALV1 (VBAK)
    iw_fcat1-col_pos '1'.
    iw_fcat1-fieldname 'VBELN'.
    iw_fcat1-seltext_l 'Sale Order'.
    iw_fcat1-outputlen '10'.
    APPEND iw_fcat1 TO it_fcat1.

    iw_fcat1-col_pos '2'.
    iw_fcat1-fieldname 'ERDAT'.
    iw_fcat1-seltext_l 'Creation Date'.
    iw_fcat1-outputlen '15'.
    APPEND iw_fcat1 TO it_fcat1.

    iw_fcat1-col_pos '3'.
    iw_fcat1-fieldname 'ERNAM'.
    iw_fcat1-seltext_l 'Created By'.
    iw_fcat1-outputlen '10'.
    APPEND iw_fcat1 TO it_fcat1.

*call REUSE_ALV_GRID_DISPLAY2 for VBAP
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        i_callback_program     sy-repid
        i_callback_top_of_page 'TOP-OF-PAGE'
        is_layout              iw_layout
        it_fieldcat            it_fcat1
      TABLES
        t_outtab               it_vbak.

  ELSEIF p_vbap 'X'.   "Radio button for SO Item details

*Fetch data from VBAP
    SELECT vbeln
           posnr
           matnr
           matwa
      FROM vbap
      INTO TABLE it_vbap
      WHERE vbeln IN s_vbeln1 AND
            posnr IN s_posnr.

*Fieldcatalog for ALV2 (VBAP)
    iw_fcat2-col_pos '1'.
    iw_fcat2-fieldname 'VBELN'.
    iw_fcat2-seltext_l 'Sale Order'.
    iw_fcat2-outputlen '10'.
    APPEND iw_fcat2 TO it_fcat2.

    iw_fcat2-col_pos '2'.
    iw_fcat2-fieldname 'POSNR'.
    iw_fcat2-seltext_l 'Item Num'.
    iw_fcat2-outputlen '10'.
    APPEND iw_fcat2 TO it_fcat2.

    iw_fcat2-col_pos '3'.
    iw_fcat2-fieldname 'MATNR'.
    iw_fcat2-seltext_l 'Material Num'.
    iw_fcat2-outputlen '15'.
    APPEND iw_fcat2 TO it_fcat2.

    iw_fcat2-col_pos '4'.
    iw_fcat2-fieldname 'MATWA'.
    iw_fcat2-seltext_l 'Material Entered'.
    iw_fcat2-outputlen '20'.
    APPEND iw_fcat2 TO it_fcat2.

* call REUSE_ALV_GRID_DISPLAY2 for VBAP
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        i_callback_program     sy-repid
        i_callback_top_of_page 'TOP-OF-PAGE'
        is_layout              iw_layout
        it_fieldcat            it_fcat2
      TABLES
        t_outtab               it_vbap.
  ENDIF.

input:



Output:



Input:





Output:








Comments

Popular posts from this blog

Passing Dynamic Variables to SO10 TEXT

Implicit Enhancement with Example

TMG Events