계산한 이익과 가격대를 행, 값, 필터에서 함께 사용한 모습입니다.
setDerivedFields 메소드는 원본에 없는 계산 필드와 숫자 구간을 정의합니다. 원본을 변경하지 않고 행, 열, 값, 필터에서 새 필드처럼 사용할 수 있습니다.
아래 배열은 이익(PROFIT), 가격대(PRICE_RANGE), 손익 구분(PROFIT_BAND)의 정의입니다. COST는 데모용 가정 원가입니다. 가격대의 min은 포함하고 max는 제외합니다.
AUIPivot.setDerivedFields(myPivotID, [
// 이익: 판매 기록마다 매출액에서 원가를 뺍니다.
{
dataField: "PROFIT", // 새로 사용할 필드 이름
labelText: "이익", // 화면에 표시할 이름
expression: {
operator: "subtract", // 앞의 값에서 뒤의 값을 빼는 계산
operands: ["TOTAL", "COST"] // TOTAL - COST
}
},
// 가격대: PRICE 값을 아래 네 구간 중 하나로 분류합니다.
{
dataField: "PRICE_RANGE",
labelText: "가격대",
sourceField: "PRICE", // 분류할 원본 필드
// min은 포함하고 max는 제외합니다. null은 그쪽 경계가 없다는 뜻입니다.
// id는 필터 등에서 사용하는 값이고 labelText는 화면에 보이는 이름입니다.
ranges: [
{ id: "under2m", min: 0, max: 2000000, labelText: "2,000,000 미만" },
{ id: "from2m", min: 2000000, max: 3000000, labelText: "2,000,000~3,000,000 미만" },
{ id: "from3m", min: 3000000, max: 4000000, labelText: "3,000,000~4,000,000 미만" },
{ id: "from4m", min: 4000000, max: null, labelText: "4,000,000 이상" }
],
// 위 구간에 들어가지 않는 값은 기타로 분류합니다.
fallback: { id: "other", labelText: "기타" }
},
// 손익 구분: 위에서 정의한 PROFIT도 분류 기준으로 사용할 수 있습니다.
{
dataField: "PROFIT_BAND",
labelText: "손익 구분",
sourceField: "PROFIT",
ranges: [
{ id: "loss", min: null, max: 0, labelText: "손실" }, // 0 미만
{ id: "nonLoss", min: 0, max: null, labelText: "손실 없음" } // 0 이상
]
}
]);
// 가격대, 차종 순서로 행을 묶습니다.
AUIPivot.setRowFields(myPivotID, ["PRICE_RANGE", "NAME"]);
// 판매 지점 순서로 열을 나눕니다.
AUIPivot.setColumnFields(myPivotID, ["REGION"]);
// 값 필드와 집계 연산자 지정하기
AUIPivot.setValueFields(myPivotID, [
// PROFIT
{ dataField: "PROFIT", operation: "SUM" },
// TOTAL
{ dataField: "TOTAL", operation: "SUM" }
]);
// 손익 구분 항목을 필터 영역에 놓습니다.
AUIPivot.setFilterFields(myPivotID, ["PROFIT_BAND"]);