同じカラムに属した一つ以上の連続したセル達を束ねて表示することができる。 セル達を束ねる基準は[c.ValueColumn.mergeExpresion]2]プロパティーで指定した数式の結果の値である。 つまり、行ごとに数式で計算して、以前のセルの値と同じなら二つのセルは束ねられて表示される。 SMART datagrid 数式で足りない場合、 mergeCallbackプロパティーにjavascriptコールバック関数を指定することもできる。
var col = grid.columnByName('Country');
col.setMergeExpression('value');
// もしくは、javascriptコールバック
col.setMergeCallback(function (item, column) {
// reportで出力するグリッドなら必ずグローバルのgrid変数代わりに下のようにローカルにgridを探さなければならない。
return grid.getValueAt(item, column + grdMain.getValueAt(item, 'flow');
});
"国家_2" カラムではセルに国家名の最初の文字だけ表示されているが、 ValueColumn.mergeValueCallbackやValueColumn.mergeValueExpressionで 併合されたセルに表示される値を違うように指定することができる。 二つのプロパティー両方も指定されなければ併合に含まれた一番目の行の値が表示される。
var col = grid.columnByName('Country2');
col.setMergeCallback(function (item, column) {
return grdMain.getValueAt(item, column).substr(0, 1);
});
col.setMergeValueCallback(function (item, column, value) {
return value.substr(0, 1);
});