DerivedFieldは一般フィールド達の値たちで計算された結果をセーブするフィールドである。 DataSet.setFieldsでデータセットにフィールド達を設定する時一般フィールドと区分して指定し、 いつも一般フィールド達の以後に位置する。
var fields = [];
var calcedFields = [];
ds.setFields(fields, calcedFields);
このフィールドの値はexpression数式や、 callbackコールバック関数で指定することができる。 上の例題で"合計"フィールドは数式で、"合計2"フィールドはコールバック関数で指定された。 計算カラムとは違って計算の結果として出た値がデータセットにセーブされるので、 例題みたいにfooterに合計の値を表示することができる。
var calcedFields = [{
fieldName: "amount",
expression: "unit_price * quantity" // 他のフィールド達の名前を変数として使える。
}, {
fieldName: "amount2",
callback: function (ds, fld, row, values) {
return values[8] * values[9];
}
}];