Технические вопросы
7.x

Изменения фильтрации поля в детали Связи

Добрый день, подскажите как изменить фильтрацию поля "Продажа" на детале "Связи", в зависимости от поля на карточке раздела, т.е. есть у нас к примеру Счет, в нем булевое поле, изменяем в нем значение и тогда нужно менять фильтр в поле "Продажа" в детале "Связи"
Возможно ли такое?

Нравится

2 комментария

Олег, добрый день!

Есть два варианта: добавить бизнес-правило с типом FILTRATION или добавить фильтр в свойство lookupListConfig соответствующего атрибута.

Пример первого варианта - схема ActivityPageV2, пакет Opportunity, фильтрация значений поля "Продажа" в зависимости от поля "Контрагент":

[javascript]
rules: {
"Opportunity": {
"FiltrationOpportunityByAccount": {
"ruleType": BusinessRuleModule.enums.RuleType.FILTRATION,
"autocomplete": true,
"autoClean": true,
"baseAttributePatch": "Account",
"comparisonType": Terrasoft.ComparisonType.EQUAL,
"type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
"attribute": "Account"
}
}
}
[/javascript]

Пример второго варианта - схема ActivityPageV2 пакета UIv2, фильтрация значений поля "Результат" в зависимости от категории активности:

[javascript]
attributes: {
"Result": {
lookupListConfig: {
filters: [
function() {
var type = this.get("ActivityCategory");
var filterGroup = Ext.create("Terrasoft.FilterGroup");
filterGroup.add("ActivityCategory",
Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.EQUAL,
"[ActivityCategoryResultEntry:ActivityResult].ActivityCategory",
type.value));
filterGroup.add("BusinessProcessOnly",
Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.EQUAL,
"BusinessProcessOnly",
0));
return filterGroup;
}
]
}
}
}
[/javascript]

С помощью второго варианта можно реализовать фильтрацию любой сложности.

Спасибо, использовал второй вариант

Показать все комментарии