2012-06-13 103 views
3

我很新的ABAP,我想學習結構數據類型。我找到了兩個例子來創建第一個結構;創建結構的「數據」和「類型」有什麼區別?

TYPES : BEGIN OF employee_information, 
      name TYPE c LENGTH 20, 
      surname TYPE c LENGTH 20, 
      tel_no TYPE n LENGTH 12, 
      END OF employee_information. 

另一個是;

DATA : BEGIN OF employee_information, 
      name TYPE c LENGTH 20, 
      surname TYPE c LENGTH 20, 
      tel_no TYPE n LENGTH 12, 
      END OF employee_information. 

我讀此鏈接:http://help.sap.com/saphelp_nw70/helpdata/en/fc/eb2ff3358411d1829f0000e829fbfe/content.htm 理解類型和數據之間的差異,但它不夠好理解爲什麼我們使用了創建結構數據類型這些不同期限?

回答

5

首先,創建TYPE是更新和推薦的使用方法。

當你創建一個數據,讓我們說一個內部表;

DATA: BEGIN OF employee_information OCCURS 0,    "itab with header line 
      name TYPE c LENGTH 20, 
      surname TYPE c LENGTH 20, 
      tel_no TYPE n LENGTH 12, 
     END OF employee_information. 

你可以有標題行內部表。但這是舊方法。

當你使用TYPE來聲明一個內部表時,你可以同時使用它的標題和它的內容;

TYPES: BEGIN OF t_employee_information, 
      name TYPE c LENGTH 20, 
      surname TYPE c LENGTH 20, 
      tel_no TYPE n LENGTH 12, 
    END OF t_employee_information. 

    DATA: employee_information TYPE STANDARD TABLE OF t_employee_information INITIAL SIZE 0,  "itab 
     employee_information TYPE t_employee_information.     "work area (header line) 

例如:你可以以創造儘可能多的內部表使用這種類型的,只要你想,如:

DATA: employee_information_1 TYPE TABLE OF t_employee_information, "itab1 
     employee_information_1 TYPE t_employee_information.   "work area1 (header line) 
    DATA: employee_information_2 TYPE TABLE OF t_employee_information, "itab2 
     employee_information_2 TYPE t_employee_information.   "work area2 (header line) 
    DATA: employee_information_3 TYPE TABLE OF t_employee_information, "itab3 
     employee_information_3 TYPE t_employee_information.   "work area3 (header line) 
+6

這是正確答案,但應該指出的是,不僅隱式工作區是舊方法,它們在ABAP對象中是非法的,SAP特別建議不要在其他地方使用它們。 –

+0

布賴恩凱恩是對的。甚至當你創建DATA而不是TYPE並嘗試在循環中使用它時,ABAP擴展程序檢查(SLIN)會給你一個關於布萊恩在談論什麼的錯誤。謝謝布萊恩。 – Mtu

+0

感謝您的回答,它非常清晰和全面 – Merve

0

第一件事是您發佈的這段代碼肯定是錯誤的,您開始的類型爲employee_information,並以personel_bilgileri結束。

問題是第二個聲明定義了employee_information變量,它的結構爲name, surname and tel_no。在第二種情況下,您定義了一個類型employee_information。然後,您可以定義此結構化類型的變量,例如DATA: l_str_employee_information TYPE employee_information`。

2

TYPES語句創建這是用於創建數據對象的模板數據類型。
DATA語句創建一個數據對象,該數據對象是數據類型的一個實例,並佔用其類型指定的內存空間。

相關問題