SAP/ABAP中这两种类型的内部表声明有什么区别?

SAP/ABAP中这两种类型的内部表声明有什么区别?

问题描述:

哪一个应该是首选/为什么?SAP/ABAP中这两种类型的内部表声明有什么区别?

所以我有一个TYPE本地定义:

TYPES: 
    BEGIN OF CUSTOMER_STRU_TYPE, 
     KUNNR TYPE KNA1-KUNNR, 
     NAME1 TYPE KNA1-NAME1, 
    END OF CUSTOMER_STRU_TYPE. 

,我认为下面看到这两个声明都将做同样的事情:

DATA: 
    CUSTOMER_TAB TYPE CUSTOMER_STRU_TYPE OCCURS 5. 

DATA: 
    CUSTOMER_TAB TYPE STANDARD TABLE OF CUSTOMER_STRU_TYPE. 

是否有看过2个报表之间的差异以上,哪一个应该是首选?

+0

您已经询问过它。 'OCCURS'的第一个语句定义了一个带有标题行的内部表格,另一个定义了一个没有标题行的内部表格。 'OCCURS 5'意思是最初会为5行分配内存。 – Jagger

+2

[在ABAP中使用WITH HEADER LINE是什么?]的可能的副本(http://*.com/questions/36282951/what-is-with-header-line-used-for-in-abap) – Jagger

+0

Hi @贾格尔。这两者之间的区别是:现有/缺乏:不是“带有标题行”的标准表。实际上,这是一个不同的问题。 –

这两个语句之间的主要区别在于,第一个语句是保留用于存储5行customer_tab表的内存空间。 在性能方面,最好的说法是第二个。

+0

第一条语句还声明了除表格之外的“标题行”,因此当您尝试访问表格时,必须明确声明您希望使用方括号(例如CUSTOMER_STRU_TYPE [])的表格。 – Esti