API
RealPivot2 API

RealPivot2 API 개요

RealPivot2는 처음 화면에 표시될 피벗의 구성 설정을 모두 준비한 뒤 컨트롤을 생성합니다.
데이터는 Cube로 두고, 북·테이블·필드 배치 등 UI 구성은 PivotBookConfiguration JSON 객체 하나에 담을 수 있습니다.

const config = {
  general: { title: '매출 분석', theme: 'light' },
  inspector: true,
  tables: {
    name: 'sales',
    cube: 'sales',
    fields: {
      filters: ['국가'],
      rows: ['차종', '브랜드명'],
      columns: ['판매분기', '판매월'],
      values: ['판매수량', '차량가격'],
    },
  },
  // ...
};
 
const control = createControl(document, 'container', cubeManager, config);

많은 경우 피벗을 화면에 표시하는 것만으로 완료될 수 있지만, 필드 배치를 바꾸거나 오버레이·소계 표시 여부를 토글하는 등 실행 중 상태를 동적으로 변경해야 할 때가 있습니다. RealPivot2는 그 상태를 읽고 바꿀 수 있는 API를 제공합니다.

API는 피벗 구성 요소 모델들의 집합이라고 할 수 있습니다. 각 구성 요소는 최상위 PivotControl에서 Book·Table·Field 등 모델 객체로 가져올 수 있습니다. 구성 요소 모델들은 최상위 클래스인 PivotItem을 직간접적으로 계승하며, PivotItem에 실행 시간 설정 변경을 위한 메서드들이 구현되어 있습니다.

const book = control.book;       // 피벗 북
const table = control.table;     // 현재 활성 테이블(페이지)
const fields = table.fields;     // 필드 매니저

상위 모델은 하위 요소 객체를 가지고 있을 수 있습니다.

const valueField = fields.getValueField('판매수량');
const dataBar = valueField.dataBar;   // 값 필드의 데이터바 오버레이 모델

각 모델은 설정 옵션으로 동작과 표시 방식을 정합니다. 옵션을 읽을 때는 options를 직접 보지 말고 prop()을 사용하고, 바꿀 때는 updateOption / updateOptions를 호출합니다.

console.log(valueField.prop('aggregate'));  // 집계 방식 조회
 
valueField.updateOption('aggregate', 'avg');  // 단일 속성 변경
 
// 여러 속성을 한꺼번에 설정
valueField.updateOptions({
  aggregate: 'sum',
  label: '판매 수량',
});

객체형 옵션은 내부 속성만 바꿔서는 화면에 반영되지 않을 수 있습니다. 반드시 updateOption / updateOptions로 갱신하세요. Undo가 필요하면 모델에 직접 쓰기보다 Book API를 권장합니다.

// Undo 스택에 남기려면 book 경유
book.updateItem(valueField.dataBar, { visible: true });
book.updateProp(valueField, 'aggregate', 'sum');

모델의 내부 옵션 저장소는 실행 중 언제든 새로운 상태로 바뀔 수 있으므로, options 객체를 외부에 보관해 두고 재사용하는 것은 피해야 합니다.

설정 트리 설명은 Config 개요를, 타입·속성 전체 목록은 Options·Classes를 참고하세요.