SMART datagrid v1.4 > Examples

Back  Forward

Row Summary  Example

행 단위의 합계 값들을 표시하려면, 계산 컬럼이나 계산 필드를 이용한다. 아래의 두 "Sum" 컬럼 중 첫 번째는 계산 필드에 연결된 컬럼이고, 두 번째는 계산 컬럼이다. 이 예제에서는 두 가지 경우가 동일한 결과를 보여주지만, 계산 컬럼과 계산 필드는 사용 목적이 다를 수 있다. 무엇보다 아래 그리드에서 처럼 계산 컬럼의 Footer는 합계를 표시하지 못한다. 계산 컬럼에 포함된 셀들의 값은 별도 저장되지 않고 표시될 때 임시로 계산되기 때문이다. 

Grid - 1
rows
Code -1
    // 계산필드 설정.
    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"
        }
    ]);
Code -2
    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에서 필드 이름을 변수명으로 직접 사용할 수 있다. 

소스보기 JSP 

See Also
DerivedField
CalculatedColumn