为什么要使用过时的语法?

2020-08-21 17:30发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)问候,专家! 我是SAP的初学者...

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

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


问候,专家! 我是SAP的初学者。

我现在正在学习ALV,而这个问题困扰了我几个小时:(

我正在使用下面的功能

数据LT_FIELDCAT类型KKBLO_T_FIELDCAT。

呼叫功能'K_KKB_FIELDCAT_MERGE'
导出
I_CALLBACK_PROGRAM = SY-REPID
I_TABNAME = 'GT_DISPLAY' = SY-REPID
I_BYPASSING_BUFFER = ABAP_TRUE
更改
CT_FIELDCAT = LT_FIELDCAT
例外情况
INCONSISTENT_INTERFACE = 1
其他= 2。

我的问题是

为什么我要用" OCCURS 0"声明" GT_DISPLAY"

我尝试了三种选择

1。 TYPE TABLE OF

的类型

2。 声明结构和类似表

3。 发生次数0

为什么只有3号才能使用该功能?

我知道'OCCURS 0'是一个过时的语法,但是为什么该函数只接受3号?

在这种情况下,是否还有其他功能或语法?

谢谢!

4条回答
粗暴的香蕉
2020-08-21 17:34

您好 Yeedo Jang

尽管这里并不是完全令人满意的答案,但是"因为SAP是通过K_KKB_FIELDCAT_MERGE来实现的。

基于内部表构建字段目录并不是最佳选择。它需要读取和分析函数 您的报告的ABAP代码以及当前所面临的一些限制。

一个更好的选择是在数据字典中定义一个结构,即SE11事务。 使用该结构声明具有"新"语法的内部表,并使用该结构构建字段目录。

HTH,BR

Dominik Tylczynski

一周热门 更多>