*&---------------------------------------------------------------------*
*& Report ZGS_ALV_HIERSEQUENTIAL_REPORT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZGS_ALV_HIERSEQUENTIAL_REPORT.
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,
var1,
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: fldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
layout TYPE slis_layout_alv,
key TYPE slis_keyinfo_alv,
events TYPE slis_t_event.
PERFORM get_data.
PERFORM append_data.
layout-expand_fieldname = 'VAR1'.
layout-zebra = 'X'.
key-header01 = 'EBELN'.
key-item01 = 'EBELN'.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
i_callback_program = sy-cprog
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
is_layout = layout
it_fieldcat = fldcat[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
i_tabname_header = 'I_EKKO'
i_tabname_item = 'I_EKPO'
* I_STRUCTURE_NAME_HEADER =
* I_STRUCTURE_NAME_ITEM =
is_keyinfo = key
* IS_PRINT =
* IS_REPREP_ID =
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab_header = i_ekko
t_outtab_item = i_ekpo
* 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 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.
fldcat-col_pos = 1.
fldcat-fieldname = 'EBELN'.
fldcat-tabname = 'I_EKKO'.
fldcat-ref_fieldname = 'EBELN'.
fldcat-ref_tabname = 'EKKO'.
fldcat-key = 'X'.
APPEND fldcat.
CLEAR fldcat.
fldcat-col_pos = 2.
fldcat-fieldname = 'ERNAM'.
fldcat-tabname = 'I_EKKO'.
fldcat-ref_fieldname = 'ERNAM'.
fldcat-ref_tabname = 'EKKO'.
APPEND fldcat.
CLEAR fldcat.
fldcat-col_pos = 3.
fldcat-fieldname = 'BSART'.
fldcat-tabname = 'I_EKKO'.
fldcat-ref_fieldname = 'BSART'.
fldcat-ref_tabname = 'EKKO'.
APPEND fldcat.
CLEAR fldcat.
fldcat-col_pos = 4.
fldcat-fieldname = 'EBELP'.
fldcat-tabname = 'I_EKPO'.
fldcat-ref_fieldname = 'EBELP'.
fldcat-ref_tabname = 'EKPO'.
fldcat-key = 'X'.
APPEND fldcat.
CLEAR fldcat.