아밥시작한지 얼마안됬습니다.
예제를 연습하다가 perform문 실행순서가 궁금해서요. 질문드립니다.
*&---------------------------------------------------------------------*
*& Report Z05_009
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT z05_009.
DATA: BEGIN OF line,
col1(3) VALUE 'KIM',
col2(3) VALUE 'LEE',
col3(3) VALUE 'CHO',
END OF line.
PERFORM demo USING line.
DATA fn1(4) VALUE 'COL1'.
DATA fn2(4) VALUE 'COL2'.
DATA fn3(4) VALUE 'COL3'.
*&---------------------------------------------------------------------*
*& Form DEMO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LINE text
*----------------------------------------------------------------------*
FORM demo USING p TYPE any.
FIELD-SYMBOLS
ASSIGN COMPONENT fn1 OF STRUCTURE p TO
WRITE:/
ASSIGN COMPONENT fn2 OF STRUCTURE p TO
WRITE:/
ASSIGN COMPONENT fn3 OF STRUCTURE p TO
WRITE:/
ENDFORM. " DEMO
위의 코드에서 PERFORM demo USING line.의 위치가
DATA fn1(4) VALUE 'COL1'.
DATA fn2(4) VALUE 'COL2'.
DATA fn3(4) VALUE 'COL3'.
의 data선언문 위에 위 있거나 아래있거나 결과값은 같게 출력되는데.
PERFORM문이 data선언문 위에 있으면 data선언이 안됀상태에서 form문이 실행되는데
왜 같은 결과값이 나오나요?
데이터 선언문은 이부분에서 구조체의 3개 필드에 값을 설정하게 되어 있습니다.
DATA: BEGIN OF line,
col1(3) VALUE 'KIM',
col2(3) VALUE 'LEE',
col3(3) VALUE 'CHO',
END OF line.
그리고, 다음 구문은 위 구조체 line의 개별필드인거구요.
DATA fn1(4) VALUE 'COL1'.
DATA fn2(4) VALUE 'COL2'.
DATA fn3(4) VALUE 'COL3'.
assign 구문으로 구조체 line -> p의 개별 필드를 필드심볼에 할당해서
값을 출력하게 됩니다.
REPORT z05_009.
DATA: BEGIN OF line,
col1(3) VALUE 'KIM',
col2(3) VALUE 'LEE',
col3(3) VALUE 'CHO',
END OF line.
PERFORM demo USING line.
DATA fn1(4) VALUE 'COL1'.
DATA fn2(4) VALUE 'COL2'.
DATA fn3(4) VALUE 'COL3'.
*&---------------------------------------------------------------------*
*& Form DEMO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LINE text
*----------------------------------------------------------------------*
FORM demo USING p TYPE any.
FIELD-SYMBOLS <fn>.
ASSIGN COMPONENT fn1 OF STRUCTURE p TO <fn>.
WRITE:/ <fn>,'씨'.
ASSIGN COMPONENT fn2 OF STRUCTURE p TO <fn>.
WRITE:/ <fn>,'씨'.
ASSIGN COMPONENT fn3 OF STRUCTURE p TO <fn>.
WRITE:/ <fn>,'씨'.
ENDFORM. " DEMO