レコードテーブルの各列に複数のフィールドを指定できるようにするために行われた変更を調査した後、次のようになりました(RecordTable.jsの更新メソッドの670行目から)。
var field = this._datasetRow.getFieldObject(column.attributes['display-field']);
var field2 = this._datasetRow.getFieldObject(column.attributes['field2']);
var field3 = this._datasetRow.getFieldObject(column.attributes['field3']);
var text = field.getValue();
var text2 = field2.getValue();
var text3 = field3.getValue();
画面の列指定(質問のコードスニペット)では、フィールド3属性に値が設定されていないため、パーツ
var field3 = this._datasetRow.getFieldObject(column.attributes['field3']);
失敗してエラーをスローしていました。メソッドgetFieldObjectは、null /未定義の値にも対応できるほど賢いはずですが、常に値が渡されることを期待しています。
この問題を解決するために、コードは次のようにリファクタリングされました。
var field = this._datasetRow.getFieldObject(column.attributes['display-field']);
var text = field.getValue();
if (column.attributes['field2'] != null) {
var field2 = this._datasetRow.getFieldObject(column.attributes['field2']);
var text2 = field2.getValue();
}
if (column.attributes['field3'] != null) {
var field3 = this._datasetRow.getFieldObject(column.attributes['field3']);
var text3 = field3.getValue();
}
その後、ウィジェットコードのカスタム部分は、text2およびtext3属性の可能な未定義の値に対応する必要があります。