new SpanSummaryField()
SpanSummaryField 클래스는 SpanSummaryRow에서 한개의 합산 정보를 표현합니다.
개별 SpanSummaryRow에는 한개이상의 SpanSummayField를 포함하여 합산을 수행합니다.
- See:
Example
레이아웃은 다음과 같은 형식으로 작성됩니다.
<rMateGrid>
<SpanRowAttribute id="sumRowAttr" styleName="allTotalStyle" backgroundColor="#FAFF33"/>
<SpanCellAttribute id="sum1CellAttr" colNo="0" styleName="subTotalStyle" backgroundColor="#CCDD66"/>
<SpanCellAttribute id="sum2CellAttr" colNo="1" styleName="subTotalStyle" backgroundColor="#FFCC33"/>
<SpanCellAttribute id="sumTotalCellAttr" colNo="0" styleName="allTotalHeaderStyle"/>
<NumberFormatter id="numfmt" useThousandsSeparator="true"/>
<PercentFormatter id="percfmt" useThousandsSeparator="true"/>
<DataGrid id="dg1" horizontalScrollPolicy="auto" verticalAlign="middle">
<groupedColumns>
...
</groupedColumns>
<dataProvider>
<SpanSummaryCollection source="{$gridData}">
<summaries>
<SpanSummaryRow summaryPlacement="first" label="합계" labelDataField="Year" rowAttribute="{sumRowAttr}" cellAttribute="{sumTotalCellAttr}">
<SpanSummaryField dataField="Seoul" summaryOperation="SUM" />
<SpanSummaryField dataField="Busan" summaryOperation="SUM" />
<SpanSummaryField dataField="Incheon" summaryOperation="SUM" />
<SpanSummaryField dataField="NewYork" summaryOperation="SUM" />
<SpanSummaryField dataField="LA" summaryOperation="SUM" />
<SpanSummaryField dataField="Washington" summaryOperation="SUM" />
</SpanSummaryRow>
</summaries>
</SpanSummaryCollection>
</dataProvider>
</DataGrid>
</rMateGrid>
Members
-
cellAttributeobject
-
label이 들어간 dataField에 대한 cell 속성.
- See:
-
dataFieldstring
-
합산을 계산할 필드.
-
summaryJsFunctionfunction
-
필드에 대한 합산시 실행하는 콜백함수 입니다.
기본적으로 필드에 대한 합산은summaryOperation
속성에서 지정한 방식에 따라 수행됩니다.
하지만 이외에 임의의 연산을 수행해야 할 경우,summaryJsFunction
속성에 콜백 함수를 지정하여 원하는 합산을 수행할 수 있습니다.- Since:
- 5.0
- See:
-
- 자바스크립트에서 사용할 때는 summaryFunction에 넣어주도록 합니다.
Examples
summaryJsFunction 함수의 파라메터는 다음과 같습니다.
function summaryJsFunction(data, value, field, rowData, process) - data : 합산을 저장하는데 쓰이는 data 객체 - value : 합산에 더할 값 - field : 함수를 정의한 SpanSummaryField 객체 - 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"
- SUM : 합계
-
targetDataFieldstring
-
계산 결과가 저장될 필드명.
SpanSummaryField의 계산 결과는 기본적으로 dataField에 저장됩니다만 강제로 다른 필드로 표시하고자 할 경우 이 속성을 지정해 주면 지정된 필드로 계산결과가 저장됩니다.