To display Heirarchical using alv { ekko, ekpo tables}
REPORT zvb_hiera_alv.
TABLES:ekko,ekpo.
TYPE-POOLS: slis.
TYPES: BEGIN OF ty_ekko,
ebeln TYPE ekko-ebeln,
bukrs TYPE ekko-bukrs,
aedat TYPE ekko-aedat,
ernam TYPE ekko-ernam,
expand,
END OF ty_ekko,
BEGIN OF ty_ekpo,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
matkl TYPE ekpo-matkl,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins,
END OF ty_ekpo.
DATA: it_ekko TYPE TABLE OF ty_ekko,
it_ekpo TYPE TABLE OF ty_ekpo.
DATA: wa_fcat TYPE slis_fieldcat_alv,
it_fact TYPE slis_t_fieldcat_alv,
wa_layout TYPE slis_layout_alv,
wa_key TYPE slis_keyinfo_alv.
SELECTION-SCREEN BEGIN OF BLOCK b1.
SELECT-OPTIONS s_ebeln FOR ekko-ebeln.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
SELECT ebeln
bukrs
aedat
ernam
FROM ekko
INTO TABLE it_ekko
WHERE ebeln IN s_ebeln.
IF it_ekko IS NOT INITIAL.
SELECT ebeln
ebelp
matkl
menge
meins
FROM ekpo
INTO TABLE it_ekpo
FOR ALL ENTRIES IN it_ekko
WHERE ebeln = it_ekko-ebeln.
ENDIF.
wa_layout-zebra = 'X'.
wa_layout-colwidth_optimize = 'X'.
wa_layout-expand_fieldname = 'EXPAND'.
wa_layout-expand_all = 'X'.
wa_layout-window_titlebar = 'Hierarchical PO header & item display'.
if it_ekko is not initial.
CLEAR:wa_fcat.
wa_fcat-col_pos = '1'.
wa_fcat-fieldname = 'EBELN'.
wa_fcat-tabname = 'IT_EKKO'.
wa_fcat-outputlen = '15'.
wa_fcat-seltext_l = 'PO Number'.
APPEND wa_fcat TO it_fact.
CLEAR:wa_fcat.
wa_fcat-col_pos = '2'.
wa_fcat-fieldname = 'BUKRS'.
wa_fcat-tabname = 'IT_EKKO'.
wa_fcat-outputlen = '30'.
wa_fcat-seltext_l = 'Company code'.
APPEND wa_fcat TO it_fact.
CLEAR:wa_fcat.
wa_fcat-col_pos = '3'.
wa_fcat-fieldname = 'AEDAT'.
wa_fcat-tabname = 'IT_EKKO'.
wa_fcat-outputlen = '45'.
wa_fcat-seltext_l = 'creation date'.
APPEND wa_fcat TO it_fact.
CLEAR:wa_fcat.
wa_fcat-col_pos = '4'.
wa_fcat-fieldname = 'ERNAM'.
wa_fcat-tabname = 'IT_EKKO'.
wa_fcat-outputlen = '55'.
wa_fcat-seltext_l = 'User Name'.
APPEND wa_fcat TO it_fact.
ENDIF.
if it_ekpo is not INITIAL.
CLEAR:wa_fcat.
wa_fcat-col_pos = '5'.
wa_fcat-fieldname = 'EBELP'.
wa_fcat-tabname = 'IT_EKPO'.
wa_fcat-outputlen = '15'.
wa_fcat-seltext_l = 'PO Item'.
APPEND wa_fcat TO it_fact.
CLEAR:wa_fcat.
wa_fcat-col_pos = '6'.
wa_fcat-fieldname = 'MATKL'.
wa_fcat-tabname = 'IT_EKPO'.
wa_fcat-outputlen = '40'.
wa_fcat-seltext_l = 'Materail Type'.
APPEND wa_fcat TO it_fact.
CLEAR:wa_fcat.
wa_fcat-col_pos = '7'.
wa_fcat-fieldname = 'MENGE'.
wa_fcat-tabname = 'IT_EKPO'.
wa_fcat-outputlen = '50'.
wa_fcat-seltext_l = 'Quantity'.
APPEND wa_fcat TO it_fact.
CLEAR:wa_fcat.
wa_fcat-col_pos = '8'.
wa_fcat-fieldname = 'MEINS'.
wa_fcat-tabname = 'IT_EKPO'.
wa_fcat-outputlen = '60'.
wa_fcat-seltext_l = 'Units'.
APPEND wa_fcat TO it_fact.
ENDIF.
wa_key-header01 = 'EBELN'.
wa_key-item01 = 'EBELN'.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = sy-repid
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
IS_LAYOUT = wa_layout
it_fieldcat = it_fact
* 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 = 'IT_EKKO'
i_tabname_item = 'IT_EKPO'
* I_STRUCTURE_NAME_HEADER =
* I_STRUCTURE_NAME_ITEM =
is_keyinfo = wa_key
* IS_PRINT =
* IS_REPREP_ID =
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
* IR_SALV_HIERSEQ_ADAPTER =
* IT_EXCEPT_QINFO =
* I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
* I_LIST_DISPLAY_ONLY = ABAP_FALSE
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab_header = it_ekko
t_outtab_item = it_ekpo
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
Output
Comments
Post a Comment