作为函数模块的结果,我得到了lt_result
表,只是一个通常的内部表,有 50+ 列。
所以,我必须将其发送到ALV显示器,如何正确使用该表作为REUSE_ALV_FIELDCATALOG_MERGE
的来源?
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = sy-repid
I_INTERNAL_TABNAME = 'LT_RESULT'
这样它就可以编译,但不会从该表中获取任何字段名称。当我尝试使用结构时也是如此。
如何以尽可能短的方式将字段名称从给定表获取到lt_fieldcat[]
?
最短的方法是使用 SALV 类:
data: gr_table type ref to cl_salv_table.
call method cl_salv_table=>factory
IMPORTING
R_SALV_TABLE = gr_table
CHANGING
t_table = lt_result.
gr_table->display( ).
这样你根本不需要字段目录。
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
i_program_name = sy-repid
i_internal_tabname = 'LT_RESULT'
i_inclname = sy-repid "< if you use top-include
changing
ct_fieldcat = lt_fldcat[]
使用 TYPE 声明lt_result而不使用 LIKE 时