콘텐츠로 이동

Dynamic ComboBox Create

목적

ComboBox UI를 동적으로 생성하는 방법을 안내


주요 단계

1. UI 클래스 선언

ComboBox UI 생성을 위해 필요한 클래스 선언

DATA : LO_PAGE     TYPE REF TO /U4A/CL_UO00389,
       LO_COMBOBOX TYPE REF TO /U4A/CL_UO00256,
       LO_ITEM     TYPE REF TO /U4A/CL_UO00884.

2. ComboBox UI 오브젝트 생성

*-- ComboBox 오브젝트 생성
CREATE OBJECT LO_COMBOBOX
  EXPORTING
    ID = 'COMBOBOX1'.   " UI Instance Name

CHECK LO_COMBOBOX IS BOUND.

3. UI 오브젝트가 포함될 영역 Instance 가져오기

본 예제에서는 Page 영역에 ComboBox UI를 추가

*-- Page 오브젝트 Instance 가져오기
LO_PAGE ?= ME->AR_VIEW->GET_UI_INSTANCE( I_ID = 'PAGE' ).

CHECK LO_PAGE IS BOUND.

4. Aggregation에 ComboBox 오브젝트 추가

CALL METHOD LO_PAGE->ADDCONTENT
  EXPORTING
    CONTENT = LO_COMBOBOX.

5. ComboBox SelectedKey Property Binding 설정

LO_COMBOBOX->BP00256_SELECTEDKEY = 'GS_DDLB-KEY'.

6. ComboBox Item UI 오브젝트 생성 및 데이터 구성

*-- Item UI 생성
CREATE OBJECT LO_ITEM
  EXPORTING
    ID = 'ITEM1'.

CHECK LO_ITEM IS BOUND.

" DDLB List 구성
CALL METHOD SET_DDLB.

7. Item 오브젝트를 Aggregation에 추가

CALL METHOD LO_COMBOBOX->ADDITEM
  EXPORTING
    ITEMS = LO_ITEM.

8. Item의 Key, Text Property 및 Model Binding 설정

" Item Key Binding
LO_ITEM->BP00884_KEY  = 'GT_DDLB-KEY'.

" Item Text Binding
LO_ITEM->BP00884_TEXT = 'GT_DDLB-TEXT'.

" Model Binding
LO_ITEM->MODEL = 'GT_DDLB'.

9. UX Design Area에 UI가 추가되지 않았는지 확인

이미지

<사진 1> UI가 추가되지 않은 화면 구성


10. 실행 후 ComboBox UI 생성 확인

이미지

<사진 2> 실행 시 ComboBox UI가 생성된 화면


11. ComboBox Event Method 설정

CALL METHOD LO_COMBOBOX->ATTACHCHANGE
  EXPORTING
    SERVEREVENTNAME = 'EV_SEL_DDLB'.

12. ComboBox Change Event Method 생성

이미지

<사진 3> ComboBox Change Event Method 생성 팝업 화면


13. ComboBox Item 선택 시 호출 Method

METHOD EV_SEL_DDLB.

  DATA: LS_DDLB TYPE TY_DDLB,
        LV_MSG  TYPE STRING.

  READ TABLE GT_DDLB INTO LS_DDLB WITH KEY KEY = GS_DDLB-KEY.

  CHECK SY-SUBRC EQ 0.

  CONCATENATE `KEY: ` LS_DDLB-KEY
              CL_ABAP_CHAR_UTILITIES=>NEWLINE
              `TEXT: ` LS_DDLB-TEXT
         INTO LV_MSG.

  CALL METHOD /U4A/CL_UTILITIES=>M_MESSAGETOAST
    EXPORTING
      IO_VIEW = ME->AR_VIEW
      I_MSGTX = LV_MSG.

ENDMETHOD.

14. Item 선택 시 ComboBox Change Event 정상 동작 확인

이미지

<사진 4> ComboBox 목록 변경 시 선택 시 메시지 호출 화면


추가 정보

  • UI Object 생성 시 부여하는 ID는 중복될 수 없음