콘텐츠로 이동

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의 경우, 입력 대신 설정한 서버 이벤트를 호출함