VALUE #( BASE ~ )  이용해서 다른 Structure 에 값을 옮기면 첫번째 필드 부터 값이 채워진다.

field 의 순서가 다르지만 같은 field 에 값을 넣고 싶을 때는 어떻게 해야 하는가?

VALUE #( BASE CORRESPOIND #( ~ ) X1 = A1 ) 을 이용하면 Field 명이 동일한 곳에 값이 들어가고, 그 뒤로 Field 끼리 Mapping 시킨 값이 들어가게 된다.

아래 예제의 결과는
struct1 = [ 1,3,5,4,0 ]
struct2 = [ 1,2,3,4,5 ]

REPORT ytest02

DATA : BEGIN OF struct1.
                  col1 TYPE i,
                  col2 TYPE i,
                  col3 TYPE i,
                  col4 TYPE i,
                  co15 TYPE i,
             END OF struct1.

             struct2 LIKE struct1,

             BEGIN OF struct3,
                 col1 TYPE i VALUE '1',
                 col3 TYPE i VALUE '3',
                 col5 TYPE i VALUE' 5',
             END OF struct3.

struct1 = VALUE #( BASE struct3 col2 = 2 col4 = 4 ). " 1, 3, 5, 4, 0

struct2 = VALUE #( BASE CORRESPONDING #( struct3 ) co12 = 2 co14 = 4 ). " 1, 2, 3, 4, 5

    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기