SMART datagrid v.1 > Examples

Back  Forward

계산(Derived) Fields  Example

衍生字段是一种储存由一般字段的值所得出的结果的字段。 当通过DataSet.setFields而在数据组设置字段时,应与一般字段区分指定,并且总是将其放置在一般字段之后。 

Code -1
    var fields = [...];
    var calcedFields = [...];
    ds.setFields(fields, calcedFields);
Grid - 1
rows

我们可以通过expressioncallback,指定衍生字段的值。 上述例题中,"合计"字段由表达式、"合计2"字段由回调函数所指定。 不同于计算列的是,衍生字段将会实际将值储存在数据组中,所以如例题所示,我们可以在页脚显示合计值。 

Code -2
    var calcedFields = [{
        fieldName: "amount",
        expression: "unit_price * quantity" // 可以使用其他字段的名称为变量。
    }, {
        fieldName: "amount2",
        callback: function (ds, fld, row, values) {
            return values[8] * values[9];
        }
    }];
    dataset.setFields(fields, calcedFields);

如例题,expression可以直接使用其他字段的名称为变量,但不能参考其他衍生字段。 另外,因为当字段名称以数字开头时,PARSER会首先将其识别为数值,所以这时我们需要使用以下"values"运算符。 

Code -3
    var calcedFields = [{
        fieldName: "amount",
        expression: "values['01_unit'] * values['02_unit']"
    },
    ...
    ]

查看源代码 JSP 

See Also
DerivedField
DerivedField.expression
DataSet.setFields
表达式概述
Examples
行概述