가이드
정렬

정렬

라벨 정렬, 값 기준 정렬, fallback 정렬 설정 방법입니다.

행·열 차원의 항목 순서는 필드별 정렬 옵션과 축 전체에 적용되는 fallback 정렬 규칙을 통해 설정합니다. 값 필드의 집계 방식은 집계 함수를, 필드 배치는 필드 구성을 참고하세요.

필드 정렬 (설정)

rows · columns 항목의 sort 속성에 IPivotFieldSort를 지정합니다.

fields: {
  rows: [
    { name: '차종', sort: { type: 'label', direction: 'asc' } },
    {
      name: '브랜드명',
      sort: {
        type: 'value',
        direction: 'desc',
        measure: '판매수량',
        target: 'total',
      },
    },
  ],
  columns: ['판매분기'],
  values: ['판매수량'],
}

IPivotFieldSort

속성설명
type'label' | 'value' | 'custom' | 'callback' (기본 'label')
direction'asc' | 'desc' | 'none' (기본 'asc')
measurevalue 정렬 시 기준 측정값 이름 또는 인덱스
targetvalue 정렬 시 반대 축 위치. string[](라벨 경로) 또는 'total'. 생략 시 Grand Total
valuescustom 정렬 시 항목 순서 배열
compareFncallback 정렬 시 비교 함수
type동작
label항목 라벨 기준
value반대 축의 특정 셀·그룹 소계·총계 값 기준
customvalues 배열에 정의된 사용자 지정 순서
callbackcompareFn(a, b, params) 결과

compareFnparamsPivotFieldSortParams 타입입니다. (dimensionIndex, labelsA / labelsB, subtotalsA / subtotalsB, axis)

값 기준 정렬 예:

// Grand Total의 판매수량 기준
{ type: 'value', direction: 'desc', measure: '판매수량', target: 'total' }
 
// 특정 열 그룹(예: Q1) 값 기준
{ type: 'value', direction: 'asc', measure: '판매수량', target: ['Q1'] }

사용자 정의 순서 예:

{
  type: 'custom',
  values: ['소형', '중형', '대형'],
}

Fallback 정렬

차원에 setFieldSort명시 정렬이 없을 때 축 전체에 적용되는 기본 규칙입니다.
항상 값(value) 기준으로 동작하며, IFallbackFieldSort 형태입니다.

속성설명
direction'asc' | 'desc' | 'none'
measure기준 측정값 필드명
target반대 축 위치 (string[] | 'total')
scope'unset'(기본) — 명시 정렬이 없는 차원만. 'all' — 명시 direction'none'인 차원에도 적용

명시 정렬이 있는 차원은 fallback을 무시합니다. (scope: 'all'이고 명시 방향이 'none'인 경우는 예외)

측정값 헤더를 클릭하여 fallback 정렬 상태를 변경할 수 있습니다. 행·열 헤더의 measureClickAction'sort' 또는 'selectAndSort'일 때 동작합니다.

tables: {
  name: 'sales',
  cube: 'sales',
  rowHeader: {
    measureClickAction: 'selectAndSort',
    fallbackSortScope: 'unset',
  },
  fields: { /* ... */ },
}
measureClickAction설명
'none'클릭 동작 없음
'select'선택만 (기본)
'sort'fallback 정렬 토글 (ascdescnone)
'selectAndSort'선택과 정렬

자세한 헤더 옵션은 PivotHeaderOptions를 참고하세요.

화면에서 바꾸기

  • 차원 필드·헤더 메뉴 — 오름차순·내림차순(라벨), 값 기준 정렬, 정렬 해제
  • 본문·헤더 메뉴 — 열 값 기준 행 정렬, 행 값 기준 열 정렬
  • 측정값 헤더 클릭 — measureClickAction에 따라 fallback 정렬 순환
  • 측정값 메뉴 — 기본 값 정렬(fallback) 설정·해제

API로 바꾸기

런타임 정렬은 control.tablesetFieldSort를 사용합니다. Book 페이지에서는 Undo가 포함됩니다.

const table = control.table;
 
// 라벨 오름차순
table.setFieldSort('차종', { type: 'label', direction: 'asc' });
 
// 총계 값 기준
table.setFieldSort('브랜드명', {
  type: 'value',
  direction: 'desc',
  measure: '판매수량',
  target: 'total',
});
 
// 정렬 해제
table.setFieldSort('차종', null);
 
table.getFieldSort('차종');
table.clearAllSorts();

Fallback 정렬:

table.setFallbackSort('row', ['판매수량'], 'desc');
table.getFallbackSort('row');

설정 로드 시점의 fields.rows[].sort 속성은 테이블이 생성될 때 반영됩니다.
런타임 실행 중에는 updateOption('sort', …) 대신 setFieldSort API 사용을 권장합니다.

See Also