Class: SummaryField

SummaryField

new SummaryField()

SummaryField 클래스는 SummaryRow에서 한개의 합산 정보를 표현합니다.

개별 SummaryRow에는 한개이상의 SummayField를 포함하여 합산을 수행합니다.

Members

dataFieldstring

합산을 계산할 필드.

labelstring

합산 결과 저장시 사용할 필드명

입력되지 않을 경우, 기본은 dataField를 사용하나 이 값을 넣어주면 이 값으로 필드명을 삼아 합산값을 저장하게 됩니다.

summaryJsFunctionfunction

필드에 대한 합산시 실행하는 콜백함수 입니다.

기본적으로 필드에 대한 합산은 summaryOperation속성에서 지정한 방식에 따라 수행됩니다.
하지만 이외에 임의의 연산을 수행해야 할 경우, summaryJsFunction
속성에 콜백 함수를 지정하여 원하는 합산을 수행할 수 있습니다.

GroupingCollection에서 쓰이는 경우에는 SpanGroupingSummaryField의 summaryJsFunction도 참조하시기 바랍니다.

Since:
  • 5.0
See:
Examples

summaryJsFunction 함수의 파라메터는 다음과 같습니다.

function summaryJsFunction(data, value, field, rowData, process)
  - data : 합산을 저장하는데 쓰이는 data 객체
  - value : 합산에 더할 값
  - field : 함수를 정의한 SummaryField 또는 SpanGroupingSummaryField 객체
  - rowData : 해당 행의 data 객체. process가 "Calc" 일 경우에만 전달됩니다.
  - process : 합산 계산 단계. 
    - "Begin" : 합산 계산전에 시작시 필요한 작업을 위한 단계
    - "Calc" : 각 행으로 합산을 계산하는 단계
    - "End" : 합산 결과를 반환하는 단계

예를 들어, 필드에 대한 평균값을 계산하는 summaryJsFunction을 구현한다면 다음과 같습니다.

function summaryFunc(data, value, field, rowData, process)
{
     if (process == "Begin") {
         var sObj = {};
         sObj[field.dataField] = 0;
         sObj[field.dataField+"Count"] = 0;
         return sObj;
     } else if (process == "Calc") {
         if (!isNaN(value)) {
             if (!data.hasOwnProperty(field.dataField)) {
                 data[field.dataField] = value;
                 data[field.dataField+"Count"] = 1;
             } else {
                 data[field.dataField] += value;
                 data[field.dataField+"Count"] += 1;
             }
         }
     } else if (process == "End") {
         return data[field.dataField]/data[field.dataField+"Count"];
     }
}

summaryOperationstring

수행해야 할 합산.


이 속성은 다음 값중 하나를 가질 수 있습니다.

  • SUM : 합계
  • MIN : 최소값
  • MAX : 최대값
  • AVG : 평균
  • COUNT : 건수
Default Value:
  • "SUM"