2016-04-07 97 views
1

哪一個應該是首選/爲什麼?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://stackoverflow.com/questions/36282951/what-is-with-header-line-used-for-in-abap) – Jagger

+0

Hi @賈格爾。這兩者之間的區別是:現有/缺乏:不是「帶有標題行」的標準表。實際上,這是一個不同的問題。 –

回答

3

這兩個語句之間的主要區別在於,第一個語句是保留用於存儲5行customer_tab表的內存空間。 在性能方面,最好的說法是第二個。

+0

第一條語句還聲明瞭除表格之外的「標題行」,因此當您嘗試訪問表格時,必須明確聲明您希望使用方括號(例如CUSTOMER_STRU_TYPE [])的表格。 – Esti