![](/img/trans.png)
[英]REUSE_ALV_FIELDCATALOG_MERGE for generating ALV hierarchial list?
[英]Cannot create field catalog with REUSE_ALV_FIELDCATALOG_MERGE
我是 ABAP 新手,我正在尝试使用REUSE_ALV_FIELDCATALOG_MERGE
function 模块构建字段目录。 此 function 模块以sy-subrc
值为1
(“接口不一致”)退出,并出现一个消息对话框,指出无法构建字段目录。
我的代码与网上找到的示例相同。 也许我错过了什么。
我的程序由一个 TOP 包含、一个 FORMS 包含和主模块组成:
FORMS包括:
FORM DISPLAY_WITH_ALV_LIST.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = sy-repid
I_INTERNAL_TABNAME = 'it_report'
I_INCLNAME = sy-repid
CHANGING
CT_FIELDCAT = it_fldcat.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
IT_FIELDCAT = it_fldcat
TABLES
T_OUTTAB = it_report.
ENDFORM.
FORM ZSELECT.
SELECT VBELN ERDAT ERNAM
FROM VBAK
INTO CORRESPONDING FIELDS OF TABLE it_report
WHERE ERDAT IN S_ERDAT
AND ERNAM IN S_ERNAM.
ENDFORM.
顶级包括:
TYPE-POOLS: slis.
TABLES VBAK.
DATA: BEGIN OF it_report OCCURS 0,
VBELN LIKE VBAK-VBELN,
ERDAT LIKE VBAK-ERDAT,
ERNAM LIKE VBAK-ERNAM,
END OF it_report.
DATA it_fldcat TYPE slis_t_fieldcat_alv.
主要模块:
REPORT ZMLA_EXO1.
INCLUDE ZMLA_EXO1_TOP.
INCLUDE ZMLA_EXO1_SCREEN.
INCLUDE ZMLA_EXO1_FORM.
INITIALIZATION.
AT SELECTION-SCREEN.
START-OF-SELECTION.
PERFORM ZSELECT.
PERFORM DISPLAY_WITH_ALV_LIST.
END-OF-SELECTION.
我建议使用“SALV”class。 这很简单,在您的情况下,它看起来像这样:
DATA: go_salv_table TYPE REF TO cl_salv_table.
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = go_salv_table
CHANGING
t_table = it_report.
go_salv_table->display( ).
如果您仍然坚持使用 function 模块 (FM) REUSE_ALV_FIELDCATALOG_MERGE
,并从内部表生成字段目录,则必须遵守以下条件:
OCCURS
”一词声明包含要显示数据的内部表(不是必须使用添加“ WITH HEADER LINE
”)。LIKE
”声明内部表的字段。 如果您使用“ TYPE
”来声明字段,它将不起作用。cx_sy_read_src_line_too_long
的简短转储,因为 FM 必须扫描您的程序代码以查找内部表定义。简而言之,这是一个有很多问题的老FM。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.