안녕하세요? 예제를 따라하던중 궁금점이 생겨서 이렇게 글을 남깁니다.
예제 16-3 , p.919-920 을 따라서 10번(중간 실행)까지 코딩을 하다보면..
8번에서 작성한 FORM 문이 위에 오고, 그다음에 9번에서 작성한 CALL FUNCTION문이 오게 됩니다.
ex>
TYPE-POOLS : slis.
DATA gt_events TYPE slis_t_event.
DATA gs_event TYPE slis_alv_event.
DATA gt_itab TYPE TABLE OF sflight.
SELECT * FROM sflight INTO TABLE gt_itab.
MOVE 'PF-STATUS-SET' TO gs_event-name.
MOVE 'ALV_STATUS_SET' TO gs_event-form.
APPEND gs_event TO gt_events.
*&---------------------------------------------------------------------*
*& Form ALV_STATUS_SET
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PT_EXTAB text
*----------------------------------------------------------------------*
FORM alv_status_set USING pt_extab TYPE slis_t_extab.
CLEAR: pt_extab[].
SET PF-STATUS 'ALV_STATUS'.
ENDFORM. "ALV_STATUS_SET
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_events = gt_events
i_structure_name = 'SFLIGHT'
TABLES
t_outtab = gt_itab.
--------------------------------------------
근데 여기서 실행을 시키게 되면
'Statement is not accessible' 이란 문구와 함께 에러가 납니다.
그래서 선생님께서 올려주신 교재 소스를 보니,
CALL FUNCTION 구문이 위에 있고, 그 다음에 FORM문이 위치하고 있어서,
저렇게 순서를 바꾸니 프로그램이 정상 작동 하던데..
어떤 이유에서 작동이 안되었는지 궁금합니다.
(제 생각에는, FORM문과 CALL FUNCTION문은 서로 독립적이라서 위치 바뀌어도 상관 없을줄 알았는데..
부족한 저의 지식에 조언 해주신다면 감사하겠습니다 :) )
저도 고민해보지 않고 습관적으로 사용했네요.
프로그램이 순서대로 컴파일되다보니, 그렇겠지요?