Введение в службы Reporting Services
Условное задание значений свойств
RDL в предоставлении мощного набора функций очень зависит от выражений. Почти в любом окне для настройки свойств, можно задавать значения свойств через выражение, вместо того, чтобы явно указывать его значение. Можно использовать эту функцию, чтобы выделить торговых представителей, не достигших своей цели.
- Выделите ячейку SalesYTD в строке Details (Подробности).
- Найдите в Properties Window (Окне свойств) свойство Color.
- Просмотрите доступные значения свойства, щелкнув стрелку раскрывающегося списка. Обратите внимание на значение <Expression> (<Выражение>) в этом раскрывающемся списке. Щелкните его, чтобы вывести на экран диалоговое окно Edit Expression (Изменить выражение), показанное на рисунке.
- Обратите внимание на свойства цвета, доступные как константы. Измените выражение следующим образом:
=IIf(Fields!SalesYTD.Value<3500000, "Red", "OliveDrab")
Не забудьте вставить знак равенства в начале, иначе введенное вами значение будет рассматриваться как строка, а не как выражение.
- Подтвердите изменение выражения, нажав кнопку ОК. Ознакомьтесь с результатами на вкладке Preview (Просмотр).
- Объедините две функции IIF, чтобы обеспечить дополнительную гибкость, например:
=IIf(Fields!SalesYTD.Value<3500000, "Red", IIf(Fields!SalesYTD.Value>5000000, "OliveDrab", "Black"))
- Просмотрите результаты, а затем перейдите на вкладку Layout (Макет) и сохраните отчет.
Сортируем результаты
Отчет, который мы построили к настоящему моменту, отображает записи беспорядочно. Поскольку информация о продажах значима для данного отчета, то соответствующая сортировка данных – это естественный вариант.
- Щелкните мышью в любом месте таблицы, чтобы появились серые границы таблицы.
- Щелкните правой кнопкой мыши левый верхний угол границы таблицы и выберите из контекстного меню команду Properties (Свойства).
- В диалоговом окне Table Properties (Свойства таблицы) перейдите на вкладку Sorting (Сортировка).
- В сетке Sort On (Сортировать по) выберите из раскрывающегося списка поле Fields!SalesYTD в столбце Expression (Выражение). Обратите внимание на знак равенства (=), появившийся перед выражением.Предупреждение. Имейте в виду, что в диалоговых окнах много полей ввода, в которых нужно вводить выражение, а не имя объекта или свойства. Если в этих случаях вы зададите имя объекта или свойства, то не получите ожидаемых результатов.
- Выберите из раскрывающегося списка в столбце Direction (Направление) значение Descending (По убыванию).
- Подтвердите изменения, нажав кнопку ОК. Сохраните отчет и просмотрите результаты на вкладке Preview (Просмотр). Затем снова перейдите на вкладку Layout (Макет).
Разрешаем сортировку результатов пользователям
Хотя неплохой мыслью может быть порядок сортировки по умолчанию, предоставление пользователям возможности изменять порядок и направление сортировки еще выгоднее.
- Щелкните правой кнопкой мыши текстовую ячейку SalesYTD в строке Header (Заголовок) и выберите из контекстного меню команду Properties (Свойства).
- Перейдите на вкладку Interactive Sort (Интерактивная сортировка).
- Установите флажок Add An Interactive Sort Action To This Textbox (Добавить действие интерактивной сортировки к этому полю). Задайте остальные значения в соответствии со следующим рисунком. (см. рис. вверху следующей страницы).
- Подтвердите изменения, нажав кнопку ОК. Сохраните отчет и просмотрите результаты на вкладке Preview (Просмотр).
- Обратите внимание на двунаправленную стрелку рядом с названием SalesYTD. Если щелкнуть эту стрелку, то содержимое таблицы будет соответствующим образом отсортировано.
- Повторите действия с 1 по 5 для заголовков остальных столбцов, чтобы разрешить интерактивную сортировку любого из этих столбцов. Обратите внимание на то, что, когда эти действия выполняются в отношении столбца выражений Name, само выражение недоступно. Если вы хотите выполнять сортировку по выражению, нужно скопировать выражение, то есть продублировать его. Чтобы справиться с проблемой, нужно изучить в следующем разделе, как добавить программный код, который может быть общим в пределах отчета.
- Сохраните отчет и просмотрите изменения на вкладке Preview (Просмотр), затем, когда закончите просмотр, перейдите на вкладку Layout (Макет).
Фильтрация данных
Для большинства отчетов требуется, чтобы пользователь указал определенный тип фильтра для применения к данным. Следовательно, нужно дать пользователю способ указать, какой фильтр данных следует применить. Инструмент для выполнения данной задачи – это параметр отчета. В этом разделе мы создадим параметр для фильтрации списка сотрудников по закрепленным за ними территориям.
- Перейдите на вкладку Data (Данные).
- Измените запрос, добавив предложение WHERE с параметром, как показано ниже. Можно дать параметру имя prmTerritory.
- В меню Report (Отчет) выберите команду Report Parameters (Параметры отчета).
- Вы увидите, что Конструктор отчетов добавил параметр, выполнив синтаксический анализ запроса к набору данных.
- Позже мы отредактируем этот параметр, чтобы сделать его более дружественным к пользователю, но сейчас давайте оставим все, как есть. Нажмите кнопку ОК, чтобы закрыть диалоговое окно Report Parameters (Параметры отчета), и просмотрите отчет.
- Введите в текстовое поле prmTerritory Central и нажмите кнопку View Report (Просмотреть отчет). Отчет будет обработан и покажет следующие результаты:
Безусловно, не лучшее решение - просить пользователей запомнить и безошибочно ввести все имена территорий. Следует предложить им некоторую помощь, предоставив возможность выбрать нужное название из списка доступных территорий. Для решения задачи нужно создать новый набор данных и заполнить значения параметра при помощи его вывода.
- Перейдите на вкладку Data (Данные) и сохраните отчет.
- Откройте раскрывающийся список Dataset (Набор данных) и выберите <New Dataset> (<Новый набор данных>).
- Измените поля Name (Имя) и Query String (Строка запроса), чтобы они соответствовали значениям, показанным на рисунке, после чего нажмите кнопку ОК (см. рис. вверху следующей страницы).
- Чтобы использовать этот запрос (или набор данных) в качестве значений параметра, нужно изменить свойства параметра. В меню Report (Отчет) выберите команду Report Parameters (Параметры отчета).
- Измените свойства параметра таким образом, чтобы они соответствовали следующим значениям (обратите внимание, что нужно отредактировать также Prompt (Приглашение) и Default Values (Значения по умолчанию)):
- Подтвердите изменения, нажав кнопку ОК.
- Сохраните отчет и просмотрите его. Обратите внимание, что отчет обрабатывается, не ожидая, пока пользователь выберет значение из раскрывающегося списка. Причина заключается в том, что в свойствах параметра объявлено значение по умолчанию. Оставьте значение по умолчанию пустым, чтобы изменить это поведение.
- Выберите из раскрывающегося списка Territory To Show (Отображаемые территории) и нажмите кнопку View Report (Просмотреть отчет), чтобы выполнить обработку отчета с новым значением фильтра.