ABAP中的内部表声明

时间:2014-10-02 12:23:48

标签: abap

我刚刚开始学习ABAP,并且我发布了一些声明内部表的不同方法,但我不明白这些方法之间的区别。哪一个是最好的方式?

示例1

types: begin of ty_tab,
  field1,
  field 2,  
end of ty_tab.

data x_tab type ty_tab.
data itab like standard table of x_Tab.

示例2

types: begin of ty_tab,
  field1,
  field2,
end of ty_tab.

types x_tab type standard table of ty_tab.
data itab type x_tab.

示例3

data t_sflight type sflight.

1 个答案:

答案 0 :(得分:3)

示例1首先声明带有一些字段的类型ty_tab。 ty_tab不是表类型,它是本地定义的平面结构类型。类型定义后面的数据声明定义了一个名为x_Tab且类型为ty_tab的局部变量。然后,第三个数据声明使用“like”关键字创建一个表格,其中的行与“x_Tab”结构“相似”。

样本2再次以类型的定义开始。但是,数据定义不是首先声明结构,而是定义类型为ty_tab的标准表。

样本3,正如他的评论中提到的hennes,实际上并没有定义一个表。它基于SAP数据字典中定义的结构或表定义本地结构,在本例中为透明表“sflight”。如果要基于DDIC表sflight创建内部标准表,则必须将语句更改为:

data t_sflight type standard table of sflight.

所有三种变体都有效。变体1和2使用不同的方法创建相同的(在“相同字段,相同属性”中相同)内部表。没有最好的方法,每种变体都可以在适合的地方使用。如果您需要一个看起来像DDIC中已存在的表,请使用#3。 #1和#2看起来多余,但有时您可能会收到一个结构作为参数,现在想要一个具有该结构的内部表,因此您可以在#1中使用“like”关键字。

有关详细信息,请查看SAP Help pages