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


Фильтрация данных отчета в отчете

Фильтры помогают управлять отображением и обработкой данных в отчете. Фильтры можно указывать для набора данных, области данных или для группы в любом сочетании.

По возможности данные следует фильтровать в источнике данных, прежде чем они будут получены отчетом, включая в запрос параметры, ограничивающие получаемые данные. Дополнительные сведения см. в разделе Фильтрация данных отчета в источнике.

Фильтры для элементов отчета указываются, если невозможно отфильтровать данные в источнике данных. Например, фильтры отчета используются, если источник данных не поддерживает параметры запроса, или необходимо выполнить хранимые процедуры и поэтому нельзя изменить запрос, или моментальный снимок параметризованного отчета отображает настроенные данные для разных пользователей.

Выбор места установки фильтра

Место установки фильтра определяется результатами, которые необходимо получить с помощью отчета. Во время выполнения обработчик отчета применяет фильтры в следующем порядке: в наборе данных, в области данных, а затем в группах — сверху вниз в каждой иерархии групп. В таблице, матрице и списке фильтры для групп строк, групп столбцов и смежных групп применяются независимо друг от друга. В диаграмме фильтры для групп категорий и групп рядов применяются независимо друг от друга. Когда обработчик отчетов применяет фильтр, все уравнения фильтра применяются в том порядке, в котором они определяются на странице Фильтр диалогового окна Свойства для каждого элемента отчета, что равносильно их объединению с помощью логических операций «И».

В следующем списке сравниваются результаты установки фильтров для разных элементов отчета.

  • Для набора данных. Фильтр устанавливается для набора данных, если нужно одинаковым способом отфильтровать одну или несколько областей данных, привязанных к одному набору данных. Например, установите фильтр для набора данных, привязанного как к таблице с данными продаж, так и к диаграмме, отображающей эти данные.

  • Для области данных. Фильтр устанавливается для области данных, если необходимо, чтобы одна или несколько областей данных, привязанных к одному набору данных, обеспечивали разное представление этого набора данных. Например, можно установить фильтр для одной табличной области данных, чтобы отобразить десять лучших магазинов по продажам, и для другой табличной области данных, чтобы отобразить десять худших магазинов в одном отчете.

  • Для группы строк или столбцов в области данных табликса. Фильтр устанавливается для группы, если нужно включить или исключить определенные значения для выражения группы с тем, чтобы управлять отображением значений в таблице, матрице или списке.

  • Для группы сведений в области данных табликса. Фильтр устанавливается для группы сведений, если для одной области данных существует несколько групп сведений и в каждой группе сведений должно отображаться разное подмножество данных из одного набора данных.

  • Для группы рядов или категорий в области данных диаграммы. Фильтр устанавливается для группы рядов или категорий, если нужно включить или исключить определенные значения для выражения группы, чтобы управлять отображением значений на диаграмме.

Создание уравнения фильтра

Во время выполнения обработчик отчетов преобразует значение в указанный тип данных и использует заданный оператор для сравнения выражения и значения. В следующем списке описывается каждая часть уравнения фильтра.

  • Выражение. Определяет объект фильтрации. Обычно это поле набора данных.

  • Тип данных. Указывает тип данных, который нужно использовать, когда обработчик запросов оценивает уравнение фильтра во время выполнения. Выбранный тип данных должен поддерживаться схемой определения отчета.

  • Оператор. Определяет метод сравнения двух частей уравнения фильтра.

  • Значение. Определяет выражение, которое используется в сравнении.

В следующих разделах описывается каждая часть уравнения фильтра. Примеры уравнений фильтра см. в разделе Примеры уравнений фильтра (службы Reporting Services).

Выражение

Когда во время выполнения обработчик отчетов оценивает уравнение фильтра, типы данных выражения и значения должны быть одинаковыми. Тип данных поля, выбранного для части Выражение, определяется модулем обработки данных или поставщиком данных, который используется для получения данных из источника данных. Тип данных выражения, которое вводится для части Значение, определяется значениями по умолчанию служб Reporting Services. Выбор типа данных зависит от типов данных, поддерживаемых определением отчета. Значения из базы данных могут быть преобразованы поставщиком данных в тип CLR. Дополнительные сведения см. в разделе Основные сведения о наборах данных отчетов.

Тип данных

Чтобы обработчик отчетов мог сравнивать типы данных, они должны быть одинаковыми. В следующей таблице приводится список сопоставлений типов данных CLR с типами данных определения отчета. Данные, получаемые из источника данных, могут быть преобразованы в тип данных, отличающийся по времени от данных отчета. Дополнительные сведения см. в разделе Основные сведения о наборах данных отчетов.

Тип данных схемы определения отчета

Типы CLR

Boolean

Boolean

DateTime

DateTime, DateTimeOffset

Integer

Int16, Int32, UInt16, Byte, SByte

Float

Single, Double, Decimal

Text

String, Char, GUID, Timespan

Если необходимо указать тип данных, можно указать собственное преобразование в части Value выражения.

Оператор

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

Оператор

Действие

Equal, Like, NotEqual, GreaterThan, GreaterThanOrEqual, LessThan, LessThanOrEqual

Сравнивает выражение с одним значением.

TopN, BottomN

Сравнивает выражение с одним значением типа Integer.

TopPercent, BottomPercent

Сравнивает выражение с одним значением типа Integer или Float.

Between

Проверяет, лежит ли выражение в диапазоне двух значений включительно.

In

Проверяет, содержится ли выражение в наборе значений.

Значение

Выражение части Value указывает конечную часть уравнения фильтра. Обработчик отчетов преобразует оцененное выражение в указанный тип данных и затем оценивает все уравнение фильтра, чтобы определить, проходят ли через фильтр данные, указанные в части «Выражение».

Чтобы преобразовать тип данных, отличающийся от стандартного типа CLR, необходимо изменить выражение, чтобы оно явно преобразовывало этот тип данных. Для этого можно использовать функции преобразования в диалоговом окне Выражения в разделе Общие функции, Преобразование. Например, для поля ListPrice, представляющего данные, которые хранятся как тип данных money в источнике данных SQL Server, модуль обработки данных возвращает значение поля как тип данных System..::..Decimal. Чтобы установить фильтр, который использовал бы только значения больше $50000,00 в валюте отчета, преобразуйте значение в десятичное с помощью выражения =CDec(50000.00).

Это значение также включает ссылку на параметр, чтобы дать возможность пользователю установить значение фильтрации в интерактивном режиме. Дополнительные сведения см. в разделе Примеры уравнений фильтра (службы Reporting Services).