我一直在学习这本书,并引用其中的内容:
DATA: BEGIN OF CUSTOMER_TAB OCCURS 5,
KUNNR TYPE KNA1-KUNNR,
NAME1 TYPE KNA1-NAME1,
END OF CUSTOMER_TAB.
This declaration creates an internal table and a structure using the same name: CUSTOMER_TAB.
Run Code Online (Sandbox Code Playgroud)
然后在以下页面中:
Declaring Both an Internal Table and a Structure by Referring to a Structured
Local/Global TYPE or Local/Global Structure
DATA <internal table name> {TYPE|LIKE} <structure name> OCCURS <number> WITH HEADER LINE.
WITH HEADER LINE is a reserved key phrase. The addition of this phrase creates a structure.
Run Code Online (Sandbox Code Playgroud)
此刻我很困惑。第一个示例仅声明一个内部表还是一个内部表以及具有相同名称的结构?
问题应该是“ ABAP中的HEADER LINE用于什么”。您应该只在旧版代码中看到它们。它们只允许在课堂外使用,并且已经过时了。
回答你的问题。两者都是。它声明一个内部表customer_tab[]和一个结构customer_tab。
然后,您可以进行诸如此类的“惊人”操作。
LOOP AT customer_tab. "loops at tab CUSTOMER_TAB and stores current record in header line structure CUSTOMER_TAB. :]
"do something with header line
END LOOP.
Run Code Online (Sandbox Code Playgroud)
要么
APPEND customer_tab.
Run Code Online (Sandbox Code Playgroud)
如您所见,它简短易用,非常吸引人。尽管它几乎不可读和令人困惑,所以标记为过时的。
哎呀,还有一点!您还应该了解
CLEAR customer_tab.
Run Code Online (Sandbox Code Playgroud)
和
REFRESH customer_tab.
Run Code Online (Sandbox Code Playgroud)