아래 itab 정의할때 Type을 써주면 문제없이 돌아가는데 Like를 써주면 f_line_col1에서 오류가 나옵니다. 오류내용은 Data Object "F_LINE" does not a have component called "COL1".입니다.
TYPES: BEGIN OF line,
col1(3) TYPE c,
col2 TYPE i,
END OF line.
DATA itab type(like) STANDARD TABLE OF line .
DATA l_idx TYPE i.
PERFORM fill CHANGING itab.
PERFORM out USING itab.
FORM fill CHANGING f_itab LIKE itab.
DATA f_line LIKE LINE OF f_itab.
DO 5 TIMES.
l_idx = sy-index MOD 2.
IF l_idx = 0.
f_line-col1 = 'KIM'.
f_line-col2 = sy-index.
APPEND f_line to f_itab.
ELSE.
f_line-col1 = 'LEE'.
f_line-col2 = sy-index.
APPEND f_line to f_itab.
ENDIF.
ENDDO.
ENDFORM.
FORM out USING value(f_itab) LIKE itab.
DATA f_line LIKE LINE OF f_itab.
LOOP AT f_itab INTO f_line.
WRITE: / f_line-col1, f_line-col2.
ENDLOOP.
ENDFORM.
line을 참조해서 테이블을 생성하려고 하는 데 이 line는 Types로 선언했기 때문에 테이블을 생성할때는 Type을 쓰셔야 합니다. 참고로 data로 line을 선언할 경우에는 like로 테이블을 만드셔야 하구요
즉...Types : begin of ~~end of~~ 이면 이 구조를 참조해서 테이블을 만드시려면 data : xxx type table of xxx
data : begin of ~~ end of ~~ 이면 이 구조를 참조해서 테이블을 만드시려면 data : xxx like table of xxx