Поделиться через


Функция ER FILTER

Функция FILTER возвращает указанный список в качестве значения Список записей после изменения запроса, чтобы он фильтровал для указанного состояния.

Синтаксис

FILTER (list, condition)

Аргументы

list: Список записей

Действительный путь источника данных типа данных Список записей.

condition: Логическое значение

Действительное условное выражение, используемое для фильтрации записей указанного списка.

Возвращаемые значения

Список записей

Полученный список записей.

Примечания по использованию

Эта функция отличается от функции WHERE, так как указанное условие применяется на уровне базы данных к любому источнику данных электронной отчетности (ER) с типом Записи таблицы. Список и условие могут определяться с помощью таблиц и связей.

Если один или оба аргумента, настроенные для этой функции (list и condition) не позволяют перевести этот запрос на прямой вызов SQL, во время разработке будет выдано исключение. Это исключение информирует пользователя о том, что list или condition невозможно использовать для запроса базы данных.

Примечание

Функция FILTER ведет себя иначе, чем функция WHERE, когда функция VALUEIN используется для указания критериев выбора.

  • Если функция VALUEIN используется в области действия функции WHERE, а второй аргумент функции VALUEIN ссылается на источник данных, который не возвращает записей, учитывается логическое значение False, которое возвращается функцией VALUEIN. Поэтому выражение WHERE(Vendors, VALUEIN(Vendors.VendGroup, VendGroups, VendGroups.VendGroup)) не возвращает записей поставщика, если источник данных VendGroups не возвращает записей групп поставщиков.
  • Если функция VALUEIN используется в области действия функции FILTER, а второй аргумент функции VALUEIN ссылается на источник данных, который не возвращает записей, логическое значение False, которое возвращается функцией VALUEIN, игнорируется. Поэтому выражение FILTER(Vendors, VALUEIN(Vendors.VendGroup, VendGroups, VendGroups.VendGroup)) возвращает все записи поставщиков из источника данных Поставщики, даже если источник данных VendGroups не возвращает записей групп поставщиков.

Пример 1

Если Поставщик настраивается в качестве источника данных ER, который ссылается на таблицу VendTable, выражение FILTER (Vendors, Vendors.VendGroup = "40") возвращает список только поставщиков, которые относятся к группе поставщиков 40.

Пример 2

Если Поставщик настроен в качестве источника данных ER, который ссылается на таблицу VendTable и если parmVendorBankGroup настроен как источник данных ER, который возвращает значение строкового типа данных, выражение FILTER ( Vendor.'<Relations'.VendBankAccount, Vendor.'<Relations'.VendBankAccount.BankGroupID = parmVendorBankGroup) возвращает список только счетов поставщиков, входящих в конкретную банковскую группу.

Пример 3

Вы вводите источник данных DS типа Вычисляемое поле, и он содержит выражение SPLIT ("A,B,C", ","). Затем вы вводите другое выражение, FILTER( DS, DS.Value = "B"). При попытке сохранить это выражение в конструкторе формул ER выдается следующее исключение: «Ошибка проверки: выражение списка функции FILTER не может быть запрошено».

Дополнительные ресурсы

Функции для работы со списками