将内部表传递到REUSE_ALV_FIELDCATALOG_MERGE



作为函数模块的结果,我得到了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

相关内容

  • 没有找到相关文章

最新更新