FIELD-SYMBOLS:<ITAB_LIST> TYPE STANDARD TABLE.
DATA REF_ITAB_LIST TYPE REF TO DATA.
DATA GT_FIELDCAT TYPE LVC_T_FCAT.
PERFORM PREPARE_FIELD_CATALOG CHANGING GT_FIELDCAT.
PERFORM CREATE_DYNAMIC_TABLE CHANGING GT_FIELDCAT REF_ITAB_LIST.
ASSIGN REF_ITAB_LIST->* TO <ITAB_LIST>.
FORM PREPARE_FIELD_CATALOG
CHANGING PT_FIELDCAT TYPE LVC_T_FCAT.
DATA LS_FCAT TYPE LVC_S_FCAT.
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'KSTAR'.
LS_FCAT-OUTPUTLEN = '20'.
LS_FCAT-COLTEXT = '成本要素代码'.
LS_FCAT-SELTEXT = '成本要素代码'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-INTLEN = 20.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT .
LS_FCAT-FIELDNAME = 'KTEXT'.
LS_FCAT-OUTPUTLEN = '40'.
LS_FCAT-COLTEXT = '成本要素名称'.
LS_FCAT-SELTEXT = '成本要素名称'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-INTLEN = 40.
APPEND LS_FCAT TO PT_FIELDCAT .
***********
***********
***********
ENDFORM.
FORM CREATE_DYNAMIC_TABLE
CHANGING
IFC TYPE LVC_T_FCAT
LV_DY_TABLE TYPE REF TO DATA.
"创建动态内表
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = IFC
IMPORTING
EP_TABLE = LV_DY_TABLE
EXCEPTIONS
GENERATE_SUBPOOL_DIR_FULL = 1.
IF SY-SUBRC = 1.
MESSAGE '动态内表生成次数达到上限36次,请返回选择屏幕重新查询' TYPE 'I'.
PERFORM EXIT_PROGRAM.
ENDIF.
ENDFORM.