Class: SpanGroupingSummaryField

SpanGroupingSummaryField

new SpanGroupingSummaryField()

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

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

See:
Example

레이아웃은 다음과 같은 형식으로 작성됩니다.

<dataProvider>
     <SpanGroupingCollection source="{$gridData}">
         <grouping>
             <Grouping>
                 <SpanGroupingField name="Year" rowSpanable="false" treeCellAttribute="{treeCellAttr}"/>
                 <SpanGroupingField name="Quarter" colNum="1">
                     <summaries>
                         <SpanGroupingSummaryRow cellAttribute="{headCellAttr}" label="분기합계" labelDataField="Year" rowAttribute="{sumRowAttr}">
                             <fields>
                                <SpanGroupingSummaryField dataField="Seoul" cellAttribute="{sumCellAttr}" colNum="3"/>
                                <SpanGroupingSummaryField dataField="Busan" cellAttribute="{sumCellAttr}" colNum="4"/>
                                <SpanGroupingSummaryField dataField="Incheon" cellAttribute="{sumCellAttr}" colNum="5"/>
                             </fields>
                         </SpanGroupingSummaryRow>
                     </summaries>
                 </SpanGroupingField>
             </Grouping>
         </grouping>
         <summaries>
             <SpanGroupingSummaryRow cellAttribute="{headCellAttr}" label="전체합계" labelDataField="Year" rowAttribute="{sumRowAttr}">
                 <fields>
                     <SpanGroupingSummaryField dataField="Seoul"/>
                     <SpanGroupingSummaryField dataField="Busan"/>
                     <SpanGroupingSummaryField dataField="Incheon"/>
                 </fields>
             </SpanGroupingSummaryRow>
         </summaries>
     </SpanGroupingCollection>
 </dataProvider>

Members

cellAttributeobject

합계를 넣는 cell에 대한 속성.

See:

colNumnumber

합산 결과를 적용할 그리드의 컬럼 번호.

-1일 경우 그룹핑하는 fields의 배열 순서에 따라 넣어지며, 지정될 경우 그리드의 해당 컬럼에 병합정보가 저장됩니다.

Default Value:
  • -1

dataFieldstring

합산을 계산할 필드.

labelstring

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

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

summaryJsFunctionfunction

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

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

Since:
  • 5.0
See:
  • 자바스크립트에서 사용할 때는 summaryFunction에 넣어주도록 합니다.
Examples

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

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

예를 들어, 필드에 대한 평균값을 계산하는 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"];
     } else if (process == "CalcSummaryOfSummary") {
         for (p in value)
             data[p] += value[p];
     } else if (process == "EndSummaryOfSummary") {
         return data[field.dataField]/data[field.dataField+"Count"];
     }
}

summaryOperationstring

수행해야 할 합산.


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

  • SUM : 합계
  • MIN : 최소값
  • MAX : 최대값
  • AVG : 평균
  • COUNT : 건수
  • FUNC : summaryJsFunction을 설정하는 경우
Default Value:
  • "SUM"