콘텐츠로 이동

EXTUI BROWSER_EVENT

목적

EV_BROWSER_EVENT는 UI에서 기본적으로 제공하는 이벤트 외에 추가적인 브라우저 이벤트가 필요할 때 사용


주요 단계

1. UI 오브젝트 및 이벤트 설정

o 예제에서는 "mouseup" 이벤트(마우스 버튼을 뗄 때 발생하는 이벤트)를 활용하여 동작 구현

o 추가적인 브라우저 이벤트는 해당 URL을 참고 :
https://developer.mozilla.org/en-US/docs/Web/Events


1.1 UI 오브젝트 생성

o 이벤트 대상 UI: "SIGNATURE"

o 사용할 브라우저 이벤트: "mouseup" (마우스 버튼을 뗄 때 발생)

이미지

<사진 1> EV_BROWSER_EVENT를 적용할 대상 예시 UI 화면


1.2 ON_INIT 에서 EV_BROWSER_EVENT 이벤트 설정

o ON_INIT에서 EV_BROWSER_EVENT 이벤트를 호출하고, 적용할 UI Instance ID 및 서버 이벤트를 입력


1.3 ABAP 소스 코드 예제

METHOD /U4A/IF_SERVER~HANDL_ON_INIT.

  "EXTUI EVENTS 중 제공하는 Event외 다른 Browser Event가 필요할때 사용.
  CALL METHOD /U4A/CL_EXTUI_EVENTS=>EV_BROWSER_EVENT
    EXPORTING
      IO_VIEW            = ME->/U4A/IF_SERVER~AR_VIEW   " [U4A] UI Element Super Class
      I_EVENT_NAME       = 'mouseup'                    " events : https://developer.mozilla.org/en-US/docs/Web/Events
      I_UID              = 'SIGNATURE1'                 " UI object ID
      I_SERVER_EVENT     = 'EV_BROWSER_EVENT'           " Server Event
*     IT_SCRIPT_SOURCE   =
*     I_USE_WAIT         =                              " Waiting 사용여부('X' = 사용함, ' ' = 사용안함)
*     I_USE_PROPAGATION  =                              " 이벤트 전파방지 사용여부('X' = 사용함)
*   EXCEPTIONS
*     NOT_SUPPORT_ELEMENT = 1                           " attachBrowserEvent not supported UI.
*     NOT_FOUND_UI        = 2                           " UI Instance not found.
*     OTHERS              = 3
    .

ENDMETHOD.

1.4 EV_BROWSER_EVENT 서버 이벤트 메서드 생성

이미지

<사진 2> EV_BROWSER_EVENT을 수행할 서버 이벤트 메소드 생성 화면


2. 브라우저 이벤트 발생 시 메시지 출력

o "SIGNATURE" UI에서 마우스를 뗄 때 "mouseup" 이벤트가 발생하여 메시지를 출력하도록 구현


2.1 ABAP 소스 코드 예시

METHOD EV_BROWSER_EVENT.

  "메세지 호출
  CALL METHOD /U4A/CL_UTILITIES=>M_MESSAGETOAST
    EXPORTING
      IO_VIEW = ME->/U4A/IF_SERVER~AR_VIEW   " [U4A] UI Element Super Class
      I_MSGTX = 'MouseUpEvent!!!'.           " MESSAGETEXT

ENDMETHOD.

2.2 실행 화면

o SIGNATURE UI에서 서명 후 마우스를 떼면 "mouseup" 이벤트가 발생하여 메시지가 출력됨

이미지

<사진 3> "mouseup" 이벤트가 발생시 메세지 출력 화면


추가 정보

o 가능하면 UI에서 제공하는 기본 이벤트(Press, Change 등)를 사용하는 것이
바람직함

o 무분별한 서버 이벤트 발생은 프로그램 성능 저하를
초래할 수 있음