SMART datagrid v1.4 > Examples
행 단위의 합계 값들을 표시하려면, 계산 컬럼이나 계산 필드를 이용한다. 아래의 두 "Sum" 컬럼 중 첫 번째는 계산 필드에 연결된 컬럼이고, 두 번째는 계산 컬럼이다. 이 예제에서는 두 가지 경우가 동일한 결과를 보여주지만, 계산 컬럼과 계산 필드는 사용 목적이 다를 수 있다. 무엇보다 아래 그리드에서 처럼 계산 컬럼의 Footer는 합계를 표시하지 못한다. 계산 컬럼에 포함된 셀들의 값은 별도 저장되지 않고 표시될 때 임시로 계산되기 때문이다.
// 계산필드 설정.
ds.setFields([...], [
{
fieldName: "fld_sum",
dataType: "number",
callback: function (ds, fld, row, values) {
var sum = 0;
for (var i = 2; i <= 12; i++) sum += values[i];
return sum;
}
// or
//expression: "y2000 + y2001 + y2002 + y2003 + y2004 + y2005 + y2006 + y2007 + y2008 + y2009 + y2010"
}
]);
grid.setColumns([
...,
{
type: "calced",
cached: true,
valueCallback: function (column, row) {
var sum = 0;
for (var i = 2; i <= 12; i++) {
var v = row.getValue(i);
sum += isNaN(v) ? 0 : v;
}
return sum;
},
// 혹은 valueExpression
//valueExpression: "y2000 + y2001 + y2002 + y2003 + y2004 + y2005 + y2006 + y2007 + y2008 + y2009 + y2010",
footer: {
expression: "sum",
styles: { numberFormat: "#,##0", fontBold: true }
}
}
]);
DerivedField.expression이나 CalculatedColumn.valueExpression에서 필드 이름을 변수명으로 직접 사용할 수 있다.