私は OpenBravo ERP システムの初心者なので、明らかな質問を投稿した場合は申し訳ありません。
Openbravo ERP でカスタム MDI ビューを作成し、注文を含む Smarclient のリストグリッドに製品名をフィルタリングするための入力フィールドを追加しました。Order データソースを作成し、それを Smartclient グリッドにバインドしました。私が達成したいのは、入力テキスト フィールドに追加された製品名でグリッド内の注文リストをフィルター処理することです。いくつかのアプローチを試みましたが、成功しませんでした。それで、グリッドの fetchData 関数の AdvancedCriteria に結合テーブルを追加することは可能ですか?
ここに私のコードのスニペットがあります:
isc.ELB_MainView.addProperties({
form: null,
grid: null,
initWidget: function () {
this.grid = isc.OBGrid.create({
setDataSource: function (ds, fields) {
var selectedFields = [],
fs = OB.Constants.FIELDSEPARATOR,
ident = OB.Constants.IDENTIFIER,
fieldNames = ['documentNo', 'documentStatus', 'orderDate', 'accountingDate', 'businessPartner'+fs+ident, 'currency'+fs+ident],
i, j;
for(i = 0; i < fieldNames.length; i++) {
for(j in ds.fields) {
if(ds.fields.hasOwnProperty(j) && j === fieldNames[i]) {
selectedFields.push(ds.fields[j]);
}
}
}
this.Super('setDataSource', [ds, selectedFields]);
this.fetchData();
}
});
this.form = isc.DynamicForm.create({
fields: [{name : "productName",
title: "Product Name",
type : "text",
width: '100%',
change: function(form, item, value, oldValue){
form.main.grid.invalidateCache();
form.main.grid.fetchData({
_constructor: 'AdvancedCriteria',
operator: 'and',
criteria: {
'fieldName': 'orderLineList.product.name',
'operator': 'equals',
'value': value
}
});
this.Super('change', arguments);
}}],
main: this
});
OB.Datasource.get('Order', this.grid, null, true);
this.addMember(this.form);
this.addMember(this.grid);
this.Super("initWidget", arguments);
}
});
事前にTnx。