본문으로 건너뛰기
AUISoft에이유아이소프트
AUIPivot v2.8 DEMO

파생 필드로 분석 확장

setDerivedFields

계산한 이익과 가격대를 행, 값, 필터에서 함께 사용한 모습입니다.

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"]);