PERFORM build_fieldcat USING '1' CHANGING gt_fieldcat1 .
FORM build_fieldcat USING mode
CHANGING pt_fieldcat TYPE lvc_t_fcat.
CLEAR : pt_fieldcat , pt_fieldcat[] .
PERFORM alv_fieldcat_merge USING 'ALV_FIELDCAT[]' 'GT_OUT' .
PERFORM modify_alv_fieldcat.
CALL FUNCTION 'LVC_TRANSFER_FROM_SLIS'
EXPORTING
it_fieldcat_alv = alv_fieldcat[]
* IT_SORT_ALV =
* IT_FILTER_ALV =
* IS_LAYOUT_ALV =
IMPORTING
ET_FIELDCAT_LVC = pt_fieldcat
* ET_SORT_LVC =
* ET_FILTER_LVC =
* ES_LAYOUT_LVC =
TABLES
it_data = gt_out
EXCEPTIONS
it_data_missing = 1
OTHERS = 2
.
ENDFORM . "build_fieldcat
FORM ALV_FIELDCAT_MERGE USING FCATNAME TABNAME .
ALV_TABNAME = TABNAME .
ASSIGN (FCATNAME) TO <FCAT> .
REFRESH <FCAT> .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = ALV_REPID
I_INTERNAL_TABNAME = ALV_TABNAME
I_INCLNAME = ALV_REPID
I_CLIENT_NEVER_DISPLAY = 'X'
I_BYPASSING_BUFFER = 'X'
CHANGING
CT_FIELDCAT = <FCAT>
EXCEPTIONS
OTHERS = 3.
ENDFORM. " alv_fieldcat_merge