Я новичок в системе OpenBravo ERP, поэтому извините, если задал очевидный вопрос.
Я создал собственное представление MDI в Openbravo ERP, добавил поле ввода для фильтрации имени продукта в сетке списка Smarclient, которая содержит заказы. Я создал источник данных Order и привязал его к сетке Smartclient. Чего я хочу добиться, так это отфильтровать список заказов в сетке по имени продукта, которое добавляется в текстовое поле ввода. Я пробовал с несколькими подходами, но безуспешно. Итак, я пришел к вопросу, можно ли добавить таблицу соединений в AdvancedCriteria в функцию fetchData сетки?
Вот фрагмент моего кода:
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 заранее.