To display Heirarchical using alv { vbak, vbap tables}
Take two table vbak and vbap
REPORT ZAJAY_ALV3.TABLES:vbak,vbap.
TYPE-POOLS: slis.
Types: BEGIN OF ty_vbap,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
matnr TYPE vbap-matnr,
END OF ty_vbap.
types: BEGIN OF ty_vbak,
vbeln TYPE vbak-vbeln,
erdat TYPE vbak-erdat,
erzet TYPE vbak-erzet,
expand,
END OF ty_vbak.
data: it_vbak type TABLE OF ty_vbak,
it_vbap type TABLE of ty_vbap,
* wa_vbak type ty_vbak,
* wa_vbap type ty_vbap,
wa_fieldcat TYPE slis_fieldcat_alv,
it_fieldcat TYPE slis_t_fieldcat_alv,
wa_layout TYPE slis_layout_alv,
wa_key TYPE slis_keyinfo_alv.
SELECTION-SCREEN begin of block b1 with frame TITLE text-001.
SELECT-OPTIONS : s_vbeln for vbak-vbeln.
SELECTION-SCREEN end of block b1.
START-OF-SELECTION.
select vbeln
erdat
erzet
from vbak
into TABLE it_vbak
where vbeln in s_vbeln.
If it_vbak is not INITIAL.
select vbeln
posnr
matnr
from vbap
into table it_vbap
FOR ALL ENTRIES IN it_vbak
WHERE vbeln = it_vbak-vbeln.
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_vbak is not INITIAL.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = '1'.
wa_fieldcat-fieldname = 'vbeln'.
wa_fieldcat-seltext_m = 'Sale Doc'.
wa_fieldcat-tabname = 'it_vbak'.
wa_fieldcat-outputlen = '10'.
APPEND wa_fieldcat TO it_fieldcat.
clear: wa_fieldcat.
wa_fieldcat-col_pos = '2'.
wa_fieldcat-fieldname = 'erdat'.
wa_fieldcat-seltext_m = 'Record created on'.
wa_fieldcat-tabname = 'it_vbak'.
wa_fieldcat-outputlen = '20'.
APPEND wa_fieldcat TO it_fieldcat.
clear: wa_fieldcat.
wa_fieldcat-col_pos = '3'.
wa_fieldcat-fieldname = 'erzet'.
wa_fieldcat-seltext_m = 'Entry time'.
wa_fieldcat-tabname = 'it_vbak'.
wa_fieldcat-outputlen = '30'.
APPEND wa_fieldcat TO it_fieldcat.
clear: wa_fieldcat.
ENDIF.
IF it_vbap is not INITIAL.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = '4'.
wa_fieldcat-fieldname = 'vbeln'.
wa_fieldcat-seltext_m = 'Sale Doc'.
wa_fieldcat-tabname = 'it_vbap'.
wa_fieldcat-outputlen = '10'.
APPEND wa_fieldcat TO it_fieldcat.
clear: wa_fieldcat.
wa_fieldcat-col_pos = '5'.
wa_fieldcat-fieldname = 'posnr'.
wa_fieldcat-seltext_m = 'Sale doc item'.
wa_fieldcat-tabname = 'it_vbap'.
wa_fieldcat-outputlen = '20'.
APPEND wa_fieldcat TO it_fieldcat.
clear: wa_fieldcat.
wa_fieldcat-col_pos = '6'.
wa_fieldcat-fieldname = 'matnr'.
wa_fieldcat-seltext_m = 'Material Num'.
wa_fieldcat-tabname = 'it_vbap'.
wa_fieldcat-outputlen = '30'.
APPEND wa_fieldcat TO it_fieldcat.
clear: wa_fieldcat.
ENDIF.
wa_key-header01 = 'VBELN'.
wa_key-item01 = 'VBELN'.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_CALLBACK_PROGRAM =
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
IS_LAYOUT = wa_layout
IT_FIELDCAT = it_fieldcat
* 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_vbak'
i_tabname_item = 'it_vbap'
* 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_vbak
t_outtab_item = it_vbap
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
Output
Comments
Post a Comment