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 객체를 외부에 보관해 두고 재사용하는 것은 피해야 합니다.