프로그램 내에서 local type을 선언하면 해당 local 프로그램 내에서만 type으로 사용이 가능하다 형태: TYPES dtype [TYPE type | LIKE dobj]
REPORT ZA02_09.
TYPES t_char10(10) TYPE c. " TYPES 구문으로 type 선언
DATA : gv_val1 TYPE t_char10, " type을 이용해 변수 선언
gv_val2 LIKE gv_val1. " 생성된 변수를 이용해 다른 변수 선언
gv_val1 = '1234567890'.
WRITE :/ gv_val1.
gv_val2 = '1234567890'.
WRITE :/ gv_val2.
[Structured Type]
Local type으로 여러개 필드로 구성된 구조체 타입을 선언할 수 있다.
REPORT ZA02_10.
* 구조체 type 선언
TYPES: BEGIN OF t_ren,
name TYPE c LENGTH 20,
country TYPE c LENGTH 15,
city TYPE c LENGTH 10,
END OF t_ren.
DATA gs_people TYPE t_ren.
gs_people-name = 'Kim Joohyung'.
gs_people-country = 'KOREA'.
gs_people-city = 'SEOUL'.
WRITE :/ gs_people-name,
/ gs_people-country,
/ gs_people-city.
INCLUDE TYPE 구문을 사용하면 중첩 구조체(Nested Structure) 타입을 선언할 수 있다.
REPORT ZA02_11.
TYPES: BEGIN OF t_ren,
name TYPE c LENGTH 20,
country TYPE c LENGTH 15,
city TYPE c LENGTH 10,
END OF t_ren.
TYPES: BEGIN OF t_info.
INCLUDE TYPE t_ren AS ren.
TYPES : phone TYPE c LENGTH 10,
END OF t_info.
DATA gs_people TYPE t_info.
gs_people-ren-name = 'Kim Joohyung'.
gs_people-ren-country = 'KOREA'.
gs_people-ren-city = 'SEOUL'.
gs_people-phone = '010-1234-5678'.
WRITE :/ gs_people-ren-name,
/ gs_people-ren-country,
/ gs_people-ren-city,
/ gs_people-phone.
[DATA BEGIN OF ~ END OF] 구문으로 구조체 변수 선언하기
REPORT ZA02_12.
DATA: BEGIN OF gs_people,
name TYPE c LENGTH 20,
country TYPE c LENGTH 15,
city TYPE c LENGTH 10,
END OF gs_people.
gs_people-name = 'Kim Joohyung'.
gs_people-country = 'KOREA'.
gs_people-city = 'SEOUL'.
WRITE :/ gs_people-name,
/ gs_people-country,
/ gs_people-city.
[INCLUDE STRUCTURE] 구문을 사용하여 DATA로 선언된 구조체에 중첩 구조체 포함하기
REPORT ZA02_13.
DATA: BEGIN OF gs_ren,
name TYPE c LENGTH 20,
country TYPE c LENGTH 15,
city TYPE c LENGTH 10,
END OF gs_ren.
DATA: BEGIN OF gs_people.
INCLUDE STRUCTURE gs_ren AS ren.
DATA: phone TYPE c LENGTH 10,
END OF gs_people.
gs_people-ren-name = 'Kim Joohyung'.
gs_people-ren-country = 'KOREA'.
gs_people-ren-city = 'SEOUL'.
gs_people-phone = '010-1234-5678'.
WRITE :/ gs_people-ren-name,
/ gs_people-ren-country,
/ gs_people-ren-city,
/ gs_people-phone.
[INCLUDE TYPE], [INCLUDE STRUCTURE] 구문에서 AS를 생략하여 중첩구조체에 쉽게 접근하기.
REPORT ZA02_14.
DATA: BEGIN OF gs_ren,
name TYPE c LENGTH 20,
country TYPE c LENGTH 15,
city TYPE c LENGTH 10,
END OF gs_ren.
DATA: BEGIN OF gs_people.
INCLUDE STRUCTURE gs_ren.
DATA : phone TYPE c LENGTH 10,
END OF gs_people.
gs_people-name = 'Kim Joohyung'.
gs_people-country = 'KOREA'.
gs_people-city = 'SEOUL'.
gs_people-phone = '010-1234-5678'.
WRITE :/ gs_people-name,
/ gs_people-country,
/ gs_people-city,
/ gs_people-phone.