ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Data Type] Program's local type
    SAP/Abap 2022. 1. 11. 12:19

    [Type]

    프로그램 내에서 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.

Designed by Tistory.