Добрый день, подскажите как вывести в список значения удовлетворяющие условиям.
Т.е нужно вывести всего две записи из списка
//Создаем фильтр 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 не описан.