Добрый день, подскажите как вывести в список значения удовлетворяющие условиям.
Т.е нужно вывести всего две записи из списка
//Создаем фильтр
var contactFiler = Terrasoft.createFilterGroup();
contactFiler.name = "contactFiler";
contactFiler.logicalComparisonTypes = Terrasoft.LogicalOperatorType.OR;
var filter1 = Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Name","Контрагент уже в системе");
var filter2 = Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Name","Некорректные данные");
contactFiler.addItem(filter1);
contactFiler.addItem(filter2);По отладчику видно , что в коллекцию добавляется два элемента, но список пуст
Нравится
Роман, а вы этот фильтр (contactFiler) где и как используете?
contactFiler.logicalComparisonTypes = Terrasoft.LogicalOperatorType.OR;"Неправильно ты, дядя Фёдор, бутерброд ешь"...
Попробуйте
contactFilter.setLogicalOperation(1);
Варфоломеев Данила,
После вставки этого метода,пишет contactFilter - undefined
Толмачев Дмитрий Юрьевич,
var config = {
entitySchemaName: "UsrLooseReason",
multiSelect: false,
columns: ["Name","Description"],
hideActions: false,//Скрываем кнопку "Добавить"
filters: contactFiler
};
this.openLookup(config, function (arg) {}, this);
Последовский Роман пишет:
После вставки этого метода,пишет contactFilter - undefined
Потому что у вас не contactFilter, а contactFiler. Исправляюсь:
contactFiler.setLogicalOperation(1);
Варфоломеев Данила,
Огромное спасибо!!! Все заработало
Роман, здравствуйте!
Согласно Вашему коду у Вас используется параметр logicalComparisonTypes.
Он сравнивает строковые значения («Контрагент уже в системе» = «Некорректные данные»). В результате фильтр возвращает 0.
Нужно вместо logicalComparisonTypes использовать logicalOperation, чтобы использовать условие И/ИЛИ.
Параметр logicalOperation описан на SDK - https://academy.terrasoft.ru/documents/technic-sdk/7-11/rabota-s-filtrami-entityschemaquery,
Также на https://academy.terrasoft.ru/documents/technic-sdk/7-11/primenenie-filtracii-k-spravochnym-polyam можете увидеть, что "По умолчанию фильтры в коллекции объединяются с использованием логической операции AND. Если необходимо применить операцию OR, ее нужно указать явно в свойстве logicalOperation объекта Terrasoft.FilterGroup.".
Параметр logicalComparisonTypes на SDK не описан.