*&---------------------------------------------------------------------*
*& Report ZGS_ALV_BLOCK
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZGS_ALV_BLOCK.
TYPE-POOLS: slis.
TABLES: ekko.
SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.
DATA: BEGIN OF i_ekko OCCURS 0,
ebeln LIKE ekko-ebeln,
ernam LIKE ekko-ernam,
bsart LIKE ekko-bsart,
END OF i_ekko.
DATA: BEGIN OF i_ekpo OCCURS 0,
ebeln LIKE ekpo-ebeln,
ebelp LIKE ekpo-ebelp,
matnr LIKE ekpo-matnr,
aedat LIKE ekpo-aedat,
END OF i_ekpo.
DATA: fieldcat1 TYPE slis_t_fieldcat_alv,
fieldcat2 TYPE slis_t_fieldcat_alv,
cat TYPE slis_fieldcat_alv.
DATA: layout TYPE slis_layout_alv,
events1 TYPE slis_t_event WITH HEADER LINE,
events2 TYPE slis_t_event WITH HEADER LINE.
START-OF-SELECTION.
PERFORM get_data.
PERFORM append_data.
layout-zebra = 'X'.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = sy-cprog.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = layout
it_fieldcat = fieldcat1
i_tabname = 'I_EKKO'
it_events = events1[]
TABLES
t_outtab = i_ekko.
IF sy-subrc <> 0.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = layout
it_fieldcat = fieldcat2
i_tabname = 'I_EKPO'
it_events = events2[]
TABLES
t_outtab = i_ekpo.
IF sy-subrc <> 0.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'.
IF sy-subrc <> 0.
ENDIF.
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
* Getting Data into Internal Tables
*----------------------------------------------------------------------*
FORM get_data .
SELECT ebeln
ernam
bsart
FROM ekko
INTO TABLE i_ekko
WHERE ebeln IN s_ebeln.
SELECT ebeln
ebelp
matnr
aedat
INTO TABLE i_ekpo
FROM ekpo
FOR ALL ENTRIES IN i_ekko
WHERE ebeln EQ i_ekko-ebeln.
ENDFORM. " get_data
*&---------------------------------------------------------------------*
*& Form append_data
*&---------------------------------------------------------------------*
* Getting Data into Field Catalog
*----------------------------------------------------------------------*
FORM append_data .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-cprog
i_internal_tabname = 'I_EKKO'
i_inclname = sy-cprog
CHANGING
ct_fieldcat = fieldcat1[].
IF sy-subrc <> 0.
ENDIF.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-cprog
i_internal_tabname = 'I_EKPO'
i_inclname = sy-cprog
CHANGING
ct_fieldcat = fieldcat2[].
IF sy-subrc <> 0.
ENDIF.
ENDFORM. " append_data
Selection Screen
Output