用于创建本地结构类型和表类型的语法

2020-09-28 11:58发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨 我正在尝试学习ABAP,在...

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

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


我正在尝试学习ABAP,在发布此问题之前,我花了很多时间在网上搜索我的说明,并且除了从SAP和其他出版物中购买的学习指南之外,还浏览了SAP文档和博客, 但我仍然对此表示怀疑。

首先,在创建内部表时,我遇到了各种可以用来创建它们的方法以及相关的语法。 现在它们有时在关键字或其他方面有所不同。

所以我在这里发表我的疑问,希望这里的一些朋友可以指导我-

1)首先,TYPES语句和TYPE语句之间存在混淆。

以下语法声明了什么-

(a)语法1:

TYPES:ZABC的开头,

F1 Type C,

F2 I型

......

.......等。

ZABC结束。

(b)语法2:

TYPES TYPE/LIKE OF [WITH ]

现在我的第一个问题是上述两种语法之间的区别是什么?它们分别创建什么? 他们创建表类型还是本地结构类型?两者之间有什么区别,即"表类型"和"本地结构类型"?

2)我的第二个问题是-有时我们使用以下语法创建内部表:-

DATA:

的类型表

何时使用以上语法? 这些语法与早期语法有什么区别?

3)我的第三个疑问是我可以在ABAP编辑器中还是在DDIC中创建"表类型"吗?

"内部表对象"和"内部表类型"之间有什么区别

最后,如何在ABAP课本中找到的以下语法中,将预定义的系统定义的数据类型" I"用作行或行类型? -

类型I的VectorTab类型I(具有唯一键表行)。

这本书说VectorTab是一种表格类型,但是如何将'I'作为行/行类型呢? 另外,据我所知,可以在DDIC中创建"表类型",那么在DDIC中创建的"表类型"与在SE38(ABAP编辑器)中创建的"表类型"之间有什么区别?

希望这个社区的某人一定可以帮助我。

感谢与问候

7条回答
2020-09-28 12:42

你好,

在apap中,可以在多个语句之后加上":",以使您只能编写一次该语句,然后再编写几行(以澄清代码,因为您可以在同一行中全部编写)。 所以:

 TYPES:MyType的开头,
 field1,
 MyType的末尾。
 * 要么
 TYPES:MyType的开头,field1,MyType的结尾。
 *等同于:
 TYPES以MyType开头。
 类型字段1。
 TYPES结束于MyType。

也就是说,TYPES语句是创建本地类型(数据元素/结构/表/...)。 TYPE语句不是..语句,只是您必须详细说明参数类型时使用的关键字。 我们在很多不同的语句中到处都使用TYPE关键字([...]参数TYPE类型[...])。

如果DDIC中不存在类型(请参见事务SE11),则可以使用TYPES语句在代码中本地创建它。 通常,当您只需要标准表中的几个字段时:您不需要全部,因此可以优化代码来创建包含该字段的本地类型(使用TYPES)(并使用类型创建DATA)。

开始时,请考虑来自DDIC的TYPES或本地定义的TYPES之间没有区别。 只是DDIC集中了定义,因此,如果您的类型必须由多个程序,FM,类等使用,则必须在DDIC中创建它(使用SE11)。 这样,如果您必须更改它(数据元素/结构/表/...),则使用它的每个程序都会更新。 请记住,应该仅通过SE11创建有用的类型(数据元素/域/结构/表)(如果出于相同的目的,则绝不能重复使用)。 否则您将很快无法确定要选择哪一个。

您可以在本地创建结构化数据(单行或表),而无需使用TYPES。 您不应该自己做,因为它已经过时了。 但是您可以在某些程序中找到它。 语法是一样的:

 DATA:MyDataTypedLine的开头,
 field1,
 MyDataTypedLine的末尾。

 DATA:MyDataTypedTable的开头出现0,
 field1,
 MyDataTypedTable的末尾。

请注意,使用DATA + OCCURS创建带有标题行的表。 这是坏的和过时的。 不要这样做。

从来没有听说过"向量表",但是我想它是指仅包含1个字段的表。 在这种情况下,您不必命名字段,每行都被键入为初始字段,但没有名称。 这也太过时了,您不应该再使用它。

看来您的书现在太旧了,您应该购买一本比较新的书。 不要对旧的东西尽全力;)

最好的问候

贝特朗

一周热门 更多>