fm REUSE_ALV_FIELDCATALOG_MERGE

2020-08-19 02:11发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入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且不像字段一样

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入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且不像字段一样

付费偷看设置
发送
5条回答
暮风yp
1楼-- · 2020-08-19 02:58

您能显示出您实际上已经取得的成就以及为什么它确实不起作用(语法或运行时错误)。

但是在此之前,请尝试以下操作:

数据:开始 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很老了。

  • 在SE38中查找演示报告:
    BCALV *使用类CL_GUI_ALV_GRID(ALV列表查看器)
    SALV_DEMO *使用类CL_SALV_TABLE(简单) 简单表格的ALV)
My梦
2楼-- · 2020-08-19 02:48

尼克雷恩,请继续关注 您的公开问题。

  • 评论答案或您的问题是否还有未解决的问题。
  • 否则将答案标记为接受,如果它可以帮助您解决问题
  • 或发布您自己的答案并接受 如果您自己找到了另一个有用的解决方案
  • ,或者将您的问题重定向到另一个相关且对解决您的问题有用的问题
  • 最后,请关闭您的问题
Cikesha
3楼-- · 2020-08-19 03:00

你好尼克·雷恩

直,有点钝 答案是"您不要"。

请参阅该函数的文档。 它明确指出要使用内部结构创建字段目录,必须使用LIKE或INCLUDE STRUCTURE语句(而不是TYPE)来定义结构。 它还说,具有内部结构的变体在性能方面并不是最佳的,应仅用于快速原型制作。

因此,您有两个选择:使用LIKE或INCLUDE STRUCTURE语句重新定义内部表,或者 使用DDIC结构或表定义字段目录。

最好的问候

Dominik Tylczynski

bbpeas
4楼-- · 2020-08-19 02:59

这是一个很好的答案。

原始问题中的代码使用CHAR40数据元素,而不是内部类型。

宇峰Kouji
5楼-- · 2020-08-19 02:48

如果包含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。

一周热门 更多>