2016-04-07 15 views
1

Hangisi tercih edilmeli/neden?SAP/ABAP'ta bu 2 tip İç Tablo bildirimi arasındaki fark nedir?

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

ve aşağıda görülen bu 2 demeç aynı şeyi yapacağını düşünüyorum:

Bu yüzden bir TİP yerel olarak tanımlı olan

DATA: 
    CUSTOMER_TAB TYPE CUSTOMER_STRU_TYPE OCCURS 5. 

DATA: 
    CUSTOMER_TAB TYPE STANDARD TABLE OF CUSTOMER_STRU_TYPE. 

görülen 2 ifadeleri arasında herhangi bir fark var mı yukarıda ve hangisi tercih edilmeli?

+0

Zaten bunu sormuştunuz. OCCURS ile ilk deyim, başlık satırı olan bir iç tabloyu, diğeri de başlık satırı olmayan bir iç tabloyu tanımlar. 'OCCURS 5', başlangıçta 5 satırlık bellek atayacağı anlamına gelir. – Jagger

+2

Mümkün olan yinelenen [ABAP'ta kullanılan HEADER LINE İLE NEDİR?] (Http://stackoverflow.com/questions/36282951/what-is-with-header-line-used-for-in-abap) – Jagger

+0

Merhaba @ Jagger. Bu 2 arasındaki fark: mevcut/eksikliği: "HEADER LINE İLE" STANDART TABLO ... Bu aslında farklı bir sorudur. –

cevap

3

İki deyim arasındaki temel fark, birincisinde 5 satırdaki customer_tab tablosunu saklamak için bellek alanı ayırıyor olmanızdır. Performans açısından en iyi ifade ikincisidir.

+0

İlk ifadede tablonun yanı sıra bir "başlık satırı" da bildirilir, böylece tabloya erişmeye çalıştığınızda, açıkça köşeli ayraçlar kullanarak tablonun istediğinizi belirtmeniz gerekir (örn. CUSTOMER_STRU_TYPE []). – Esti