Реализовать фильтр с макросом
Предварительно выполните пример чтения записей в стороннем приложении, описанный в статье Добавить кнопку для чтения записей раздела [Контакты].
Результат реализации экземпляра класса запроса на чтение записей в сокращенной форме представлен ниже.
Чтобы реализовать фильтр c макросом:
- Создайте экземпляр класса коллекции фильтров Filters.
- Заполните необходимые свойства значениями.
- В свойство Filters экземпляра класса запроса, созданного на предыдущем шаге, передайте ссылку на этот экземпляр.
Коллекция содержит единственный фильтр с ключом FilterYear. Поскольку из коллекции записей необходимо выбрать только те, у которых год рождения контакта равен 1992, то тип фильтра устанавливается как фильтр сравнения, а тип сравнения — равенство значений. В качестве выражения, подлежащего проверке, устанавливается значение колонки Дата рождения (Birthday), а в качестве выражения, с которым сравнивается проверяемое выражение — функция-макрос.
В данном случае использовать макрос удобно потому, что дата рождения хранится в базе данных в формате ГГГГ-ММ-ДД. Макрос автоматически определяет год из этого значения, следовательно, разработчику нет необходимости самостоятельно писать дополнительный программный код.
Поскольку макрос EntitySchemaQueryMacrosType.Year является параметрическим, то необходимо инициализировать свойство FunctionArgument, которому присваивается ссылка на экземпляр класса BaseExpression. В нем и определяется целочисленный параметр со значением "1992".