EXTUI KEYDOWN¶
목적¶
EV_KEYDOWN 이벤트는 키보드 입력 이벤트가 없는 UI 오브젝트에서 키보드 입력이 발생하면 서버 이벤트를 작동하도록 함
주요 단계¶
1. UI 오브젝트 및 이벤트 설정¶
1.1 UI 오브젝트 생성¶
o Application에서 UI 오브젝트 생성
<사진 1> 키보드 자판입력 적용을 위한 실행 버튼 화면
1.2 ON_INIT에서 EV_KEYDOWN 이벤트 생성¶
o ON_INIT에서 EV_KEYDOWN 이벤트를 호출하고, 적용할 UI Instance ID 및 서버 이벤트를 입력
1.3 ABAP 소스 코드 예시¶
METHOD /U4A/IF_SERVER~HANDL_ON_INIT.
"INPUT1에 KEYBOARD값이 들어오면 SERVER EVENT 발생.
CALL METHOD /U4A/CL_EXTUI_EVENTS=>EV_KEYDOWN
EXPORTING
IO_VIEW = ME->/U4A/IF_SERVER~AR_VIEW " [U4A] UI Element Super Class
I_UID = 'BUTTON1' " UI Object ID
I_SERVER_EVENT = 'EV_KEYDOWN_MESSAGE' " Server Event
* IT_SCRIPT_SOURCE = " Client Event
* I_USE_WAIT = 'X' " Waiting 사용여부('X' = 사용함, ' ' = 사용안함)
* I_USE_PROPAGATION = 'X' " 이벤트 전파방지 사용여부('X' = 사용함)
* EXCEPTIONS
* NOT_SUPPORT_ELEMENT = 1 " attachBrowserEvent not supported UI.
* NOT_FOUND_UI = 2 " UI Instance not found.
* OTHERS = 3
.
ENDMETHOD.
2. 키보드 입력 시 메시지 표시¶
o 키보드 입력이 발생했을 때 메시지를 출력하는 메서드 구현
2.1 ABAP 소스 코드 예시¶
METHOD EV_KEYDOWN_MESSAGE.
DATA LV_MSG TYPE STRING.
*--------------------------------------------------------------------*
"MESSAGE 내용
LV_MSG = 'Keydown is Worked!!!'.
"MESSAGE 창 띄우기
CALL METHOD /U4A/CL_UTILITIES=>M_MESSAGETOAST
EXPORTING
IO_VIEW = ME->/U4A/IF_SERVER~AR_VIEW " [U4A] UI Element Super Class
* IS_MSG = " Structure of message variables
I_MSGTX = LV_MSG " MESSAGE TEXT
* IT_MSGTX = " Table of Strings
* I_VPOS = CS_M_MSG_TOS_VPOS-CENTER " Vertical position
* I_HPOS = CS_M_MSG_TOS_HPOS-CENTER " Horizontal position
* I_VOFF = '0' " Vertical offset
* I_HOFF = '0' " Horizontal offset
* I_DURATION = 10000
ENDMETHOD.
3. 실행 화면¶
<사진 2> 키보드 입력 시 Message 출력되는 화면
추가 정보¶
o 키보드 입력이 불가능한 UI에서 사용되며, 'INPUT' UI처럼 입력을 받을 수 있는 UI의 경우, 입력 대신 설정한 서버 이벤트를 호출함