FIELD SYMBOL:<fs1> TYPE ANY.
.
.
.
CLEAR wa_cosp.
MOVE-CORRESPONDING cosp TO wa_cosp.
ASSIGN COMPONENT p_monat OF STRUCTURE wa_cosp To <fs1>.
라고 다음과 같이 설정해 놓았는데 해석하는 부분에서 헷갈려서 문의드립니다...
wa_cosp는
DATA : BEGIN OF wa_cosp,
wtg001 LKE cosp-wtg001,
....
END OF wa_cosp.
라고 하여 Structure이고
p_monat의 경우는 현재 필드값으로 알고 있는데
(PARAMETERS : p_monat LIKE bkpf-monat DEFAULT sy-datum(2) OBLIGATORY)
이문장
ASSIGN COMPONENT p_monat OF STRUCTURE wa_cosp To <fs1>.
====> 성립이 되는지 궁금해서 질문을 올립니다...
윗 문장 해석대로라면 structure wa_cosp의 구성요소 필드 p_monat의 값을
<fs1>으로 넘겨준다입니다.
여기서 wa_cosp는 Structure이고 DATA에서 선언한 대로 해당하는
필드(p_monat)도 존재하지 않습니다...
이부분을 어떻게 해석해야 할까요????????
댓글 2
-
법장
2008.12.04 22:27
-
우락부락
2008.12.08 18:49
질문에 대한 답변 감사합니다...^^;;
그런데 아직도 궁금한게 wa_cosp의 컴포넌트라 하면 구성하는 필드 또는 버퍼의 저장위치라고 해주셨는데;;
Structure wa_cosp에서의 구성요소는 제가 위에서 언급했었던 wtg001~wtg012까지만 존재합니다..
문장의 해석대로라면 wa_cosp의 구성요소 중에 하나가 p_monat가 되어야 하는데;;
p_monat는 wa_cosp의 구성요소로는 존재하지가 않습니다..;;
이부분은 어떻게 해석해야 할지요??
답변 부탁드립니다..;;
ASSIGN COMPONENT p_monat OF STRUCTURE wa_cosp TO <fs1>.
p_monat 는 wa_cosp의 콤포넌트(필드 또는 버퍼의 저장위치?!?!?..어쨌던)를 지칭하는 것이라고 보세요.
그 타입이 문자타입이면 wa_cosp의 필드명을 지정한 것이라고 보고,
숫자 타입이라면 필드의 위치이라고 보시면 이해가 쉬울 듯 한데...
예를들면, P_MONAT 값이 '09' 이면 wa_cosp의 9번째 필드값이 <fs1>에 ASSIGN 됨.
즉...
ASSIGN COMPONENT 9 OF STRUCTURE wa_cosp TO <fs1>.
또는,
ASSIGN COMPONENT 'WTG009' OF STRUCTURE wa_cosp TO <fs1>.
이 둘 다 똑같은 값이 <fs1>에 assign 됩니다.