Blocked ALV Report

 Blocked ALV Report:

  • It is used to display the multiple tables data in Block format.

*&---------------------------------------------------------------------*
*& Report ZVB_ALV_BLOCK
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zvb_alv_block.
TYPE-POOLS:slis.
TABLES:ekko,ekpo.
TYPESBEGIN OF ty_ekko,
         ebeln TYPE ekko-ebeln,
         aedat TYPE ekko-aedat,
         lifnr TYPE ekko-lifnr,
       END OF ty_ekko,
       BEGIN OF ty_ekpo,
         ebeln TYPE ekpo-ebeln,
         ebelp TYPE ekpo-ebelp,
         menge TYPE ekpo-menge,
         meins TYPE ekpo-meins,
       END OF ty_ekpo.

*Data Declarations
DATA:iw_ekko TYPE ty_ekko,
     iw_ekpo TYPE ty_ekpo,
     it_ekko TYPE TABLE OF ty_ekko,
     it_ekpo TYPE TABLE OF ty_ekpo.
DATA:iw_fcat1   TYPE slis_fieldcat_alv,
     it_fCAt1   TYPE slis_t_fieldcat_alv,
     iw_layout TYPE slis_layout_alv,
     IT_EVENTS TYPE SLIS_T_EVENT,
     iw_fcat2   TYPE slis_fieldcat_alv,
     it_fCAt2   TYPE slis_t_fieldcat_alv.

*selection screen
SELECT-OPTIONS s_ebeln FOR ekko-ebeln.

SELECT ebeln
    aedat
  lifnr
  FROM ekko
  INTO TABLE it_ekko
  WHERE ebeln IN s_ebeln.
IF it_ekko IS NOT INITIAL.
  SELECT ebeln
    ebelp
    menge
    meins
  FROM ekpo
  INTO TABLE it_ekpo
    FOR ALL ENTRIES IN it_ekko
      WHERE ebeln it_ekko-ebeln.
ENDIF.

SORT IT_EKKO BY EBELN.
SORT IT_EKPO BY EBELN.

iw_layout-zebra 'X'.

*Fieldcatalog for IT_EKKO
iw_fcat1-col_pos '1'.
iw_fcat1-fieldname 'EBELN'.
iw_fcat1-seltext_l 'Purchase Order'.
APPEND iw_fcat1 TO it_fcat1.
CLEAR:iw_fcat1.

iw_fcat1-col_pos '2'.
iw_fcat1-fieldname 'AEDAT'.
iw_fcat1-seltEXt_l 'PO creation date'.
APPEND iw_fcat1 TO it_fcat1.
CLEAR:iw_fcat1.

iw_fcat1-col_pos '3'.
iw_fcat1-fieldname 'LIFNR'.
iw_fcat1-seltEXt_l 'vendor no'.
APPEND iw_fcat1 TO it_fcat1.
CLEAR:iw_fcat1.

*Fieldcatalog for IT_EKPO
iw_fcat2-col_pos '1'.
iw_fcat2-fieldname 'EBELN'.
iw_fcat2-seltext_l 'Purchase Order'.
APPEND iw_fcat2 TO it_fcat2.
CLEAR:iw_fcat2.


iw_fcat2-col_pos '2'.
iw_fcat2-fieldname 'EBELP'.
iw_fcat2-seltEXt_l 'PO Item'.
APPEND iw_fcat2 TO it_fcat2.
CLEAR:iw_fcat2.

iw_fcat2-col_pos '3'.
iw_fcat2-fieldname 'MENGE'.
iw_fcat2-seltEXt_l 'Qunatity'.
APPEND iw_fcat2 TO it_fcat2.
CLEAR:iw_fcat2.

iw_fcat2-col_pos '4'.
iw_fcat2-fieldname 'MEINS'.
iw_fcat2-seltEXt_l 'Units'.
APPEND iw_fcat2 TO it_fcat2.
CLEAR:iw_fcat2.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
  EXPORTING
    i_callback_program             SY-REPID
*   I_CALLBACK_PF_STATUS_SET       = ' '
*   I_CALLBACK_USER_COMMAND        = ' '
*   IT_EXCLUDING                   =
          .

*Append IT_EKKO 
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
  EXPORTING
    is_layout                        IW_LAYOUT
    it_fieldcat                      IT_FCAT1
    i_tabname                        'IT_EKKO'
    it_events                        IT_EVENTS
*   IT_SORT                          =
*   I_TEXT                           = ' '
  TABLES
    t_outtab                         IT_EKKO
* EXCEPTIONS
*   PROGRAM_ERROR                    = 1
*   MAXIMUM_OF_APPENDS_REACHED       = 2
*   OTHERS                           = 3
          .
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

*APPEND IT_EKPO
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
  EXPORTING
    is_layout                        IW_LAYOUT
    it_fieldcat                      IT_FCAT2
    i_tabname                        'IT_EKPO'
    it_events                        IT_EVENTS
*   IT_SORT                          =
*   I_TEXT                           = ' '
  TABLES
    t_outtab                         IT_EKPO
* EXCEPTIONS
*   PROGRAM_ERROR                    = 1
*   MAXIMUM_OF_APPENDS_REACHED       = 2
*   OTHERS                           = 3
          .
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

*Displaying Blocked ALV
CALL 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
          .
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
 
Output:

Comments

Popular posts from this blog

CDS Views: Table Functions with Example

Passing Dynamic Variables to SO10 TEXT

Adobe Form/PDF Form Introduction