TYPES關鍵字用于建立自定義資料類型,就像JAVA裡面建立類一樣,用TYPES建立的資料類型可以被其它變量引用(類似于執行個體化對象),而本身不能直接引用或者指派。
DATA關鍵字用于定義結構體,可以自定義結構體或者參考某一個自定義類型建立對象,我把它稱為執行個體化對象。
[For Example]
TYPES:BEGIN OF ILINE, "創建一個類型,包含三個字段 TYPES:定義的是類型 DATA:則為對象
FIRST_NAME(30) TYPE C,
LAST_NAME(30) TYPE C,
AGE TYPE I,
END OF ILINE.
DATA WA TYPE ILINE. "定義一個結構
DATA ITAB TYPE ILINE OCCURS 0 WITH HEADER LINE. "參數某個結構創建的包含HEADER LINE的內表
DATA JTAB TYPE ILINE OCCURS 0. "參照某個結構創建的無表HEADER LINE的內表,如果單獨創建(不參照某個結構)則包含表頭,如下建立自定義結構.
DATA: BEGIN OF OTAB OCCURS 0, "以此種方式自定義的結構預設帶HEADER LINE
FIRST_NAME(30) TYPE C,
END OF OTAB.
ITAB-FIRST_NAME = 'VANCY'.
ITAB-LAST_NAME = 'WEI'.
ITAB-AGE = 10.
APPEND ITAB.
ITAB-FIRST_NAME = 'AOBAMA'.
ITAB-FIRST_NAME = 'LIKEM'.
LOOP AT ITAB.
WRITE:/ 'SY-TABIX=',SY-TABIX,
'FIRST_NAME=',ITAB-FIRST_NAME,
'LAST_NAME=',ITAB-LAST_NAME,
'AGE=',ITAB-AGE LEFT-JUSTIFIED.
ENDLOOP.
*無表頭的隻能通過WORK AREA來添加數據進入內表,而有表頭的兩種方式都可以用
WA-FIRST_NAME = 'SUNDAY'.
WA-LAST_NAME = 'WEI'.
WA-AGE = 10.
APPEND WA TO JTAB.
WA-FIRST_NAME = 'MONDAY'.
WA-FIRST_NAME = 'TUESDAY'.
LOOP AT JTAB INTO WA.
WRITE:/ 'SY-TABIX=',SY-TABIX,
'FIRST_NAME=',WA-FIRST_NAME,
'LAST_NAME=',WA-LAST_NAME,
'AGE=',WA-AGE LEFT-JUSTIFIED.
OTAB-FIRST_NAME = 'JANUARY'.
OTAB-LAST_NAME = 'WEI'.
OTAB-AGE = 1.
APPEND OTAB.
OTAB-FIRST_NAME = 'FEBRUARY'.
OTAB-AGE = 10.
OTAB-FIRST_NAME = 'MARCH'.
LOOP AT OTAB.
'FIRST_NAME=',OTAB-FIRST_NAME,
'LAST_NAME=',OTAB-LAST_NAME,
'AGE=',OTAB-AGE LEFT-JUSTIFIED.
程式運作界面如下: