*&---------------------------------------------------------------------*
*& Report ZGP_ALV_MERGE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zgp_alv_merge1.
TYPE-POOLS: slis.
TABLES: zfms_rrhdr.
*
DATA: progname LIKE sy-repid,
gt_fcat0 TYPE slis_t_fieldcat_alv,
gt_fcat1 TYPE slis_t_fieldcat_alv.
*
*DATA: IT_MARA0 TYPE TABLE OF MARA.
DATA: it TYPE TABLE OF zfms_rrhdr.
*
DATA: BEGIN OF it_mara1 OCCURS 0,
matnr LIKE mara-matnr,
matkl LIKE mara-matkl,
END OF it_mara1.
*
progname = sy-repid.
TYPES:
t_fieldcat TYPE slis_fieldcat_alv,
t_events TYPE slis_alv_event,
t_layout TYPE slis_layout_alv.
* Workareas
DATA:
w_fieldcat TYPE t_fieldcat,
w_events TYPE t_events,
w_layout TYPE t_layout.
* Internal Tables
DATA:
i_fieldcat TYPE STANDARD TABLE OF t_fieldcat,
i_fieldcat1 TYPE STANDARD TABLE OF t_fieldcat,
i_events TYPE STANDARD TABLE OF t_events.
* internal table definition with type of a structure
SELECT * FROM zfms_rrhdr INTO TABLE it.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = progname
i_internal_tabname = 'IT'
i_structure_name = 'zfms_RRHDR'
i_client_never_display = 'X'
CHANGING
ct_fieldcat = gt_fcat0[]
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
* own internal table definition
PERFORM display_data.
--------------------------------------
FORM display_data .
DATA :program LIKE sy-repid VALUE sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = program
is_layout = w_layout
it_fieldcat = gt_fcat0 "I_FIELDCAT
it_events = i_events
TABLES
t_outtab = it.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " DISPLAY_DATA