2020-08-19 02:11发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
fm REUSE_ALV_FIELDCATALOG_MERGE
如何在内部报告结构中使用此FM?
数据:gt_tmp OCCURS 0开始,
xblnr TYPE char40, budat TYPE char40,
......
gt_tmp的数据结尾。
但使用"类型",因为所有字段都必须为char40且不像字段一样
您能显示出您实际上已经取得的成就以及为什么它确实不起作用(语法或运行时错误)。
但是在此之前,请尝试以下操作:
数据:开始 gt_tmp OCCURS 0, xblnr像TOAMS-PARA_NAME,"不好,但它引用的是CHAR40 像TOAMS-PARA_NAME这样的好友, " ... gt_tmp的结尾。 " ... 调用函数" REUSE_ALV_FIELDCATALOG_MERGE" 出口 i_program_name = sy-repid i_internal_tabname ='GT_TMP' i_inclname = sy-repid 改变 ct_fieldcat = ct_fieldcatalog 例外情况 接口不一致= 1 程序错误= 2 others =3。
此外,在发布问题之前,尝试先在社区中搜索答案:
还有另一件事,用于ALV的FM很老了。
尼克雷恩,请继续关注 您的公开问题。
你好尼克·雷恩
直,有点钝 答案是"您不要"。
请参阅该函数的文档。 它明确指出要使用内部结构创建字段目录,必须使用LIKE或INCLUDE STRUCTURE语句(而不是TYPE)来定义结构。 它还说,具有内部结构的变体在性能方面并不是最佳的,应仅用于快速原型制作。
因此,您有两个选择:使用LIKE或INCLUDE STRUCTURE语句重新定义内部表,或者 使用DDIC结构或表定义字段目录。
最好的问候
Dominik Tylczynski
这是一个很好的答案。
原始问题中的代码使用CHAR40数据元素,而不是内部类型。
如果包含ALV列的变量名被命名为XXXX,并且在程序ZPROGRAM中定义,则在include ZINCL中:
呼叫功能'REUSE_ALV_FIELDCATALOG_MERGE' 出口 I_PROGRAM_NAME ='ZPROGRAM' I_INTERNAL_TABNAME ='XXXX' I_INCL_NAME ='ZINCL' ...
XXXX应该声明为全局变量,并具有以下语法(仅允许使用少量语法;请注意,仅DATA允许使用独立类型):
1。 定义自由组件(如DDIC表或结构的引用,内部类型的TYPE-有或没有OCCURS 0):
DATA:xxxx OCCURS 0开始, 就像疤痕似的, test2 TYPE i。 包括结构变化。 数据:curr(3)TYPE C, 结束于xxxx。
2。 或基于现有的DDIC表或结构(有或没有OCCURS 0-注意:这种情况并不有趣,因为可以使用参数I_STRUCTURE_NAME ='BSEG'代替I_INTERNAL_TABNAME):
DATA xxxx TYPE Scarr OCCURS 0。
NB:
1)ABAP包含的源代码不能超过72个字符,否则转储会很短。
2) 在开发过程中,REUSE_ALV_FIELDCATALOG_MERGE可能会忽略对变量结构的最新更改,因为第一次调用的结果已被缓冲。 可以通过在调用之前执行以下行来忽略缓冲区:
SET PARAMETER ID'ALVBUFFER'ID sy-datum。
最多设置5个标签!
您能显示出您实际上已经取得的成就以及为什么它确实不起作用(语法或运行时错误)。
但是在此之前,请尝试以下操作:
此外,在发布问题之前,尝试先在社区中搜索答案:
还有另一件事,用于ALV的FM很老了。
BCALV *使用类CL_GUI_ALV_GRID(ALV列表查看器)
SALV_DEMO *使用类CL_SALV_TABLE(简单) 简单表格的ALV)
尼克雷恩,请继续关注 您的公开问题。
你好尼克·雷恩
直,有点钝 答案是"您不要"。
请参阅该函数的文档。 它明确指出要使用内部结构创建字段目录,必须使用LIKE或INCLUDE STRUCTURE语句(而不是TYPE)来定义结构。 它还说,具有内部结构的变体在性能方面并不是最佳的,应仅用于快速原型制作。
因此,您有两个选择:使用LIKE或INCLUDE STRUCTURE语句重新定义内部表,或者 使用DDIC结构或表定义字段目录。
最好的问候
Dominik Tylczynski
这是一个很好的答案。
原始问题中的代码使用CHAR40数据元素,而不是内部类型。
如果包含ALV列的变量名被命名为XXXX,并且在程序ZPROGRAM中定义,则在include ZINCL中:
XXXX应该声明为全局变量,并具有以下语法(仅允许使用少量语法;请注意,仅DATA允许使用独立类型):
1。 定义自由组件(如DDIC表或结构的引用,内部类型的TYPE-有或没有OCCURS 0):
2。 或基于现有的DDIC表或结构(有或没有OCCURS 0-注意:这种情况并不有趣,因为可以使用参数I_STRUCTURE_NAME ='BSEG'代替I_INTERNAL_TABNAME):
NB:
1)ABAP包含的源代码不能超过72个字符,否则转储会很短。
2) 在开发过程中,REUSE_ALV_FIELDCATALOG_MERGE可能会忽略对变量结构的最新更改,因为第一次调用的结果已被缓冲。 可以通过在调用之前执行以下行来忽略缓冲区:
一周热门 更多>