由于ABAP报表开发,使用ALV 经常从内表→展示列 或者 列→内表,
现做一下总结:
FIELDCAT 动态生成内表
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = IT_FIELDCAT
IMPORTING
EP_TABLE = IT_OUTPUT
EXCEPTIONS
GENERATE_SUBPOOL_DIR_FULL = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
ENDIF.
ASSIGN IT_OUTPUT->* TO <IT_OUTPUT>.
CREATE DATA WA_OUTPUT LIKE LINE OF <IT_OUTPUT>.
ASSIGN WA_OUTPUT->* TO <WA_OUTPUT>.
依据内表结构生成FILEDCAT
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
* I_BUFFER_ACTIVE =
I_STRUCTURE_NAME = 'ZPP_MA' 结构名称
* I_CLIENT_NEVER_DISPLAY = 'X'
* I_BYPASSING_BUFFER =
* I_INTERNAL_TABNAME =
CHANGING
CT_FIELDCAT = L_IT_FIELDCATALOG[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3.