가이드
필터

필터

북 공통 필터(드롭다운·트리·슬라이더 등)와 페이지 필터 필드, 큐브 필터를 설명합니다.

RealPivot2에서 필터는 적용 범위에 따라 나뉩니다.
집계 전 데이터를 축소하는 큐브·슬라이서 필터와 특정 페이지 전용 필터 필드를 목적에 맞게 구분하여 사용합니다.

필터 종류

종류설정 위치범위
큐브 filtersCube 옵션해당 큐브 전체
큐브 slicers + Book filterSelectorsCube · Book북 공통 UI로 큐브 슬라이서 조작
tables[].fields.filters페이지 fields해당 페이지에만 적용
  • filterSelectors북 공통 필터 UI로, 큐브에 정의한 slicers를 가리킵니다.
  • fields.filters해당 페이지의 필터 필드. 컬럼 바에서 멤버를 고릅니다.

Book 개요는 피벗 북(Book)을, 필드 배치는 필드 구성을 참고하세요.

큐브 필터와 슬라이서

초기 필터는 Cube 옵션의 filters 항목에 설정(지정)할 수 있습니다. 화면에서 선택하는 공통 필터를 사용하려면 큐브에 **slicers**를 먼저 정의해야 합니다.

const cm = createCubeManager(ds, [
  {
    name: 'sales',
    table: 'sales',
    schema: { /* dimensions, measures */ },
    slicers: [
      { name: '차종', dimension: '차종', type: 'list' },
      { name: '판매날짜', dimension: '판매날짜', type: 'range' },
      { name: '판매기간', dimension: '판매날짜', type: 'date' },
    ],
  },
]);
slicers 속성설명
name슬라이서 이름. filterSelectorsslicer 속성이 이 이름을 가리킵니다
dimension필터할 큐브 차원
type'list' | 'range' | 'date' (기본 'list')

슬라이서 type과 셀렉터 type을 맞추는 예입니다.

슬라이서 type셀렉터 type
listbutton · dropdown · tree
rangeslider
datetimeline

런타임에서 큐브에 직접 필터를 넣을 수도 있습니다. (데이터와 큐브)

const cube = cm.get('sales');
cube.addFilter({ dimension: '국가', values: ['한국'] });

자주 쓰는 큐브 API입니다.

API설명
addFilter / filterAll필터 추가·일괄 설정
removeFilter / clearFilters제거·전체 해제
getFilters현재 필터 조회
addSlicer / getSlicer / applySlicers슬라이서 관리

자세한 시그니처는 PivotCube를 참고하세요.

북 공통 필터 (filterSelectors)

filterSelectors는 화면에 슬라이서 UI를 표시하는 설정 옵션입니다. 배열 또는 객체 하나로 지정할 수 있습니다.

const config = {
  filterSelectors: [
    { type: 'dropdown', cube: 'sales', slicer: '차종', position: 'both' },
    { type: 'button', cube: 'sales', slicer: '브랜드명', position: 'header' },
    { type: 'tree', cube: 'sales', slicer: '연료', position: 'panel' },
    { type: 'slider', cube: 'sales', slicer: '판매날짜', position: 'both' },
    { type: 'timeline', cube: 'sales', slicer: '판매기간', position: 'panel' },
  ],
  tables: {
    name: 'sales',
    cube: 'sales',
    fields: {
      rows: ['국가'],
      values: ['판매수량'],
    },
  },
};
속성설명
type'button' | 'dropdown' | 'tree' | 'timeline' | 'slider'
cube대상 큐브 name
slicer큐브 slicers에 등록한 이름
position'header' | 'panel' | 'both' — 필터바 및 인스펙터 내 UI 표시 위치 (기본값 'panel')
tables적용할 페이지 name 목록. 생략 시 전체 페이지
visible · label · description표시 관련 옵션

표시 위치:

  • filterBar(상단) — position 값이 'header' 또는 'both'인 경우
  • 인스펙터 필터 패널 — position 값이 'panel' 또는 'both'인 경우

필터바·인스펙터 자체 on/off는 Book의 filterBar · inspector 설정으로 제어합니다. (피벗 북)
옵션 트리는 Config · PivotBookConfiguration을 참고하세요.

페이지 필터 필드 (fields.filters)

페이지마다 두는 필터 필드입니다. 인스펙터 필드 패널의 필터 섹션에 배치하거나, 설정으로 지정합니다.

fields: {
  filters: ['국가', { name: '연료' }],
  rows: ['차종'],
  values: ['판매수량'],
}

항목은 PivotFilterFieldOptions입니다. name · width · headerWidth를 쓸 수 있습니다.

설정이 완료되면 컬럼 바 영역에 필터 필드 형태로 표시됩니다. 멤버를 선택한 뒤 적용하면 해당 페이지 집계에 반영됩니다.

런타임

const table = control.table;
const field = table.fields.getFilterField('국가');
 
table.setAggFilter(field, ['한국', '미국']);
table.getAggFilter(field);
table.isAggFiltered(field);
 
// 필터 해제
table.setAggFilter(field, null);

필드를 축에 넣거나 빼려면 Book API를 사용합니다. Undo가 포함됩니다.

book.addFilterField(table, '국가');
book.removeField(field);

See Also