콘텐츠로 이동

EXTUI CLICK LAYOUT

목적

EV_CLICK_UI_LAYOUT_FORM 이벤트는 Form UI에서 클릭 시 서버 이벤트를 실행할 수 있도록 확장됨

※ Form UI는 기본적으로 클릭 관련 이벤트가 없으며, 확장(Extend)하여 이벤트를 추가할 수 있음


주요 단계

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

1.1 UI 오브젝트 생성

o 애플리케이션에서 Form UI 오브젝트 생성


1.2 ON_INIT에서 EV_CLICK_UI_LAYOUT_FORM 이벤트 생성

o ON_INIT에서 EV_CLICK_UI_LAYOUT_FORM 이벤트를 호출하고, FORM에 Binding할 TABLE을 입력


1.3 ABAP 소스 코드 예시

METHOD /U4A/IF_SERVER~HANDL_ON_INIT.

  DATA LS_FORM TYPE TY_FORM.
  DATA LS_LIST TYPE TY_LIST.

*--------------------------------------------------------------------*

  "FORM 바인딩 데이터 구성
  LS_FORM-H1 = 'U4A WS'.

  LS_LIST-F1 = 'ONE'.
  LS_LIST-F2 = '1'.
  APPEND LS_LIST TO LS_FORM-LIST.
  CLEAR LS_LIST.

  LS_LIST-F1 = 'TWO'.
  LS_LIST-F2 = '2'.
  APPEND LS_LIST TO LS_FORM-LIST.
  CLEAR LS_LIST.

  LS_LIST-F1 = 'THREE'.
  LS_LIST-F2 = '3'.
  APPEND LS_LIST TO LS_FORM-LIST.
  CLEAR LS_LIST.

  APPEND LS_FORM TO GT_FORM.
  CLEAR LS_FORM.

  LS_FORM-H1 = 'U4A WS2'.
  APPEND LS_FORM TO GT_FORM.
  CLEAR LS_FORM.

  "FORM1 UI CLICK => SERVER EVENT 실행.
  CALL METHOD /U4A/CL_EXTUI_EVENTS=>EV_CLICK_UI_LAYOUT_FORM
    EXPORTING
      IO_VIEW           = ME->/U4A/IF_SERVER~AR_VIEW  " [U4A] UI Element Super Class
      I_UID             = 'FORM1'                     " UI ID
*     I_ISBIND          =                             " !!폐기!! BIND 일 경우만 서버이벤트 수행 여부
      I_SERVER_EVENT    = 'EV_CLICK_LAYOUT'           " 서버이벤트명
*     IT_SCRIPT_SOURCE  =                             " Table of Strings
*     I_USE_WAIT        = 'X'                         " Waiting 사용여부('X' = 사용함, ' ' = 사용안함)
*     I_USE_PROPAGATION = 'X'                         " 이벤트 전파방지 사용여부('X' = 사용함)
*   EXCEPTIONS
*     NOT_SUPPORT_ELEMENT = 1
*     OTHERS              = 2.

ENDMETHOD.

1.4 EV_CLICK_LAYOUT 서버 이벤트 메소드 생성

이미지

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


2. FORM 클릭 시 메시지 출력

o 클릭 이벤트가 발생했을 때 메시지를 출력하는 메서드 구현


2.1 ABAP 소스 코드 예시

METHOD EV_CLICK_LAYOUT.

  DATA LV_MSG TYPE STRING.

*--------------------------------------------------------------------*

  "MESSAGE 내역
  LV_MSG = 'Form1 Clicked!'.

  "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   =
*     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. 실행 화면

이미지

<사진 3> FORM 클릭시 메세지 출력 화면


추가 정보

o EV_CLICK_UI_LAYOUT_FORM의 EXPORTING 매개변수 I_ISBIND는 현재 폐기되었으며 사용하지 않음

o FORM과 하위 항목은 반드시 Binding을 해야 SERVER_EVENT가 정상적으로 작동함