Потребовалось отфильтровать список значений, отображаемых для поля справочник.
Если нужно отфильтровать записи только одного, определенного типа (например), то используем такой код после базового события Init:
//Guid SomeId_2 = new Guid("...");
Page.SomeEditField.PrepareLookupFilter += delegate (object sender, LookupEditEventArgs e) {
e.Filters.Add(new Dictionarystring, object> {
{"comparisonType", FilterComparisonType.Equal},
{"leftExpressionColumnPath", "Type"},
{"useDisplayValue", false},
{"rightExpressionParameterValues", new object[]{SomeId_1} }});
};
А вот если отфильтровать надо по двум возможным типам? Тогда как быть? FilterComparisonType.Equal не подходит... Нужно, чтобы отобразились записи типа SomeId_1 или SomeId_2.
Guid SomeId_2 = new Guid("...");
Нравится
Разобрался сам :)
[csharp]
Guid SomeId_1 = new Guid("...");
Guid SomeId_2 = new Guid("...");
Page.SomeEditField.PrepareLookupFilter += delegate (object sender, LookupEditEventArgs e) {
e.Filters.Add(new Dictionary {
{"comparisonType", FilterComparisonType.Equal},
{"leftExpressionColumnPath", "Type"},
{"useDisplayValue", false},
{"rightExpressionParameterValues", new object[]{SomeId_1, SomeId_2} }});
};
[/csharp]
Коллеги, добрый день.
Хотел бы реанимировать эту тему) в версии 7.9 подскажите, плиз, как сделать фильтрацию по двум айдишникам:
У меня есть справочник Vocabulary, в нем два айди: ID_1 и ID_2. Сейчас код фильтрует только по 1 айдишнику. Подскажите, плиз, как сделать фильтрацию по 2 и более значениям справочника
[javascript]
rules: {
"FieldToBeFiltered": {
"FiltrationByType": {
"ruleType": BusinessRuleModule.enums.RuleType.FILTRATION,
"autocomplete": true,
"autoClean": true,
"baseAttributePatch": "Vocabulary",
"comparisonType": Terrasoft.ComparisonType.EQUAL,
"type": BusinessRuleModule.enums.ValueType.CONSTANT,
"value": "ID_1"
}
}
},
[/javascript]
Дмитрий, здравствуйте!
На данный момент в 7.х такой возможности нет, но зафиксировали Ваше пожелание для рассмотрения возможной реализации в будущих версиях.
Обходные варианты:
- написать второе бизнес-правило, которое будет фильтроваться по другой колонке (не проверяли);
-с помощью filtergroup прописать бизнес-правила. На community есть множество тем на подобный запрос: http://www.community.terrasoft.ru/search/node/filtergroup
Пример (cхема «AccountPageV2», пакет «UIv2»):
[javascript]
emailDetailFilter: function() {
var recordId = this.get("Id");
var filterGroup = new this.Terrasoft.createFilterGroup();
filterGroup.add("AccountNotNull", this.Terrasoft.createColumnIsNotNullFilter("Account"));
filterGroup.add("AccountConnection", this.Terrasoft.createColumnFilterWithParameter(
this.Terrasoft.ComparisonType.EQUAL, "Account", recordId));
filterGroup.add("ActivityType", this.Terrasoft.createColumnFilterWithParameter(
this.Terrasoft.ComparisonType.EQUAL, "Type", ConfigurationConstants.Activity.Type.Email));
return filterGroup;
},
[/javascript]