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

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

Нравится

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

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

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

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

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"
		}
	}
}

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

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;
				}
			]
		}
	}
}

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

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

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