콘텐츠로 이동

SET_MODEL_FILTER

목적

Filter 기능이 없는 UI에서도 바인딩된 데이터를 필터링하기 위한 메서드입니다.


주요 단계

1. "SET_MODEL_FILTER" Method를 UI의 특정 이벤트에 추가

  • BUTTON 클릭 이벤트에 SET_MODEL_FILTER Method를 연결합니다.

UI 이벤트에 필터 Method 추가

<사진 1> UI 이벤트에 필터링 Method를 추가하는 과정 화면


2. "SET_MODEL_FILTER" Method 실행

  • 바인딩된 데이터를 필터링할 수 있습니다.

ABAP Source Code 예시 (EV_MODEL_FILTER Method)

METHOD EV_MODEL_FILTER.

  DATA: LS_FILTER TYPE /U4A/S0081.
  DATA: LT_FILTER TYPE TABLE OF /U4A/S0081.
*---------------------------------------------------------

  " APPEND LT_FILTER DATA.
  LS_FILTER-FIELD_NAME    = 'VALUE'.
  LS_FILTER-FILTER_OPTION = 'BT'.
  LS_FILTER-LOW           = 500.
  LS_FILTER-HIGH          = 1000.
  LS_FILTER-ISNUM         = 'X'.
  LS_FILTER-CASESENSITIVE = 'X'.

  APPEND LS_FILTER TO LT_FILTER.
  CLEAR LS_FILTER.

  " MODEL_FILTER.
  CALL METHOD /U4A/CL_UTILITIES=>SET_MODEL_FILTER
    EXPORTING
      IO_VIEW     = ME->/U4A/IF_SERVER~AR_VIEW
      I_UIID      = 'TABLE1'    " 필터 대상 UI명.
      I_AGGR_NAME = 'items'     " 필터 대상 하위 Aggregation 명 (소문자).
      IT_FILTER   = LT_FILTER   " 다중 필터링 정보.
      I_OPERATOR  = 'X'.        " Filter Operator ('X': AND, ' ': OR)

ENDMETHOD.

파라미터 정의

Name Description
I_UIID 데이터가 바인딩된 UI의 INSTANCE ID 이름
I_AGGR_NAME 데이터가 바인딩된 Aggregation 이름 (소문자로 구성해야 함)
IT_FILTER 필터 기준이 되는 TABLE
I_OPERATOR 필터 연산자 ('X': AND, ' ': OR)

IT_FILTER 테이블 상세 설명

Name Description
FIELD_NAME 필터 기준이 되는 필드 이름
FILTER_OPTION 필터 옵션 (EQ, NE, GE, GT, LE, LT, BT 등)
LOW 필터 최소 값
HIGH 필터 최대 값
ISNUM 숫자 타입 여부 ('X': 숫자, ' ': 문자)
CASESENSITIVE 대소문자 구분 ('X': 구분, ' ': 구분 안 함)

3. 애플리케이션 실행 및 버튼 클릭

  • BUTTON 클릭으로 SET_MODEL_FILTER Method 동작을 확인합니다.

필터 버튼 클릭 화면

<사진 2> 필터링 조건을 설정한 버튼을 클릭한 화면


4. 결과 확인

  • Value 값이 500 ~ 1000 사이에 해당하는 데이터만 필터링되어 표시됩니다.

필터 결과 화면

<사진 3> 필터링 조건에 따른 결과 표시