Здравствуйте, помогите пожалуйста. Создал деталь, в которой есть поля Счет, Контрагент и др. Должен присутствовать фильтр счетов по контрагенту.
Пришел к следующей реализации:
attributes: {
"UsrBill": {
lookupListConfig: {
filters: [
function() {
var account = this.get("UsrContragent");
var filterGroup = this.Ext.create("Terrasoft.FilterGroup");
var left = [Invoice:AccountId]
filterGroup.add("UsrContragent",
Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,
left,
account.value));
return filterGroup;
}
]
}
}
}
}
"UsrBill": {
lookupListConfig: {
filters: [
function() {
var account = this.get("UsrContragent");
var filterGroup = this.Ext.create("Terrasoft.FilterGroup");
var left = [Invoice:AccountId]
filterGroup.add("UsrContragent",
Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,
left,
account.value));
return filterGroup;
}
]
}
}
}
}
Но никак не получается записать левое выражение.
Нравится
4 комментария
13 ноября 2015 13:57
Иван,
Данную задачу можно решить через бизнес-правило rules с типом FILTRATION,
Либо:
attributes: { "UsrBill": { lookupListConfig: { filters: [ function() { var account = this.get("UsrContragent"); var filterGroup = this.Ext.create("Terrasoft.FilterGroup"); filterGroup.add("UsrContragent", Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Account", // Указывается поле текущей сущности (в нашем случае Invoice) account? account.value : Terrasoft.GUID_EMPTY)); return filterGroup; } ] } } }
13 ноября 2015 14:26
Огромное спасибо за помощь. Через правило, я так понял, должно выглядеть следующим образом:
rules: { "UsrBill": { "FiltrationInvoiceByAccount": { "ruleType": BusinessRuleModule.enums.RuleType.FILTRATION, "autocomplete": true, "autoClean": true, "baseAttributePatch": "Account", "comparisonType": Terrasoft.ComparisonType.EQUAL, "type": BusinessRuleModule.enums.ValueType.ATTRIBUTE, "attribute": "Account" } } }
Но мне немного не понятно, что указывается в атрибутах baseAttributePatch и attribute.
13 ноября 2015 14:52
Думаю, что так:
rules: { "UsrBill": { "FiltrationInvoiceByAccount": { "ruleType": BusinessRuleModule.enums.RuleType.FILTRATION, "autocomplete": true, "autoClean": true, "baseAttributePatch": "Account", "comparisonType": Terrasoft.ComparisonType.EQUAL, "type": BusinessRuleModule.enums.ValueType.ATTRIBUTE, "attribute": "UsrContragent" } } }
attribute - Имя поля объекта по значению которого будем фильтровать (поле объекта вашей детали)
baseAttributePatch - Имя поля для связи из объекта соответствующего справочному поле UsrBill (объект Invoice)
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать