AT SELECTION-SCREEN OUTPUT과 AT SELECTION-SCREEN은 모두 선택 화면에서 사용되는 이벤트이지만, 실행 시점과 주요 목적이 다름.
실행 시점: 선택 화면이 사용자에게 처음 표시되기 직전에 실행됨.
주요 목적: 선택 화면의 필드 속성을 동적으로 제어하거나 초기값을 설정하는 데 사용함.
주요 기능: 화면 요소의 활성화/비활성화, 레이블 변경, 초기값 설정 등이 가능함.
" 선택 화면이 출력되기 전에 P_CARRID 필드를 비활성화
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-name = 'P_CARRID'.
screen-active = 0. " P_CARRID 필드를 비활성화
MODIFY SCREEN.
ENDIF.
ENDLOOP.
실행 시점: 사용자가 선택 화면에서 액션을 수행할 때마다 실행됨. 예를 들어, 특정 버튼을 클릭하거나 엔터를 입력할 때마다 호출됨.
주요 목적: 사용자 입력을 검증하고, 특정 명령(sy-ucomm)에 따라 로직을 수행하는 데 사용함.
주요 기능: 필드 값 검증, 파일 업로드, 데이터베이스 조회 등 다양한 사용자 명령에 대응 가능함.
" 사용자가 ‘EXECUTE’ 버튼을 누르면 execute_logic 폼을 실행하고, ‘CANCEL’ 버튼을 누르면 프로그램을 종료함
AT SELECTION-SCREEN.
CASE sy-ucomm.
WHEN 'EXECUTE'. " 실행 버튼을 눌렀을 때
PERFORM execute_logic.
WHEN 'CANCEL'. " 취소 버튼을 눌렀을 때
LEAVE PROGRAM.
ENDCASE.