Создание отчёта в SQL Server Reporting Services
В интернете можно найти десятки уроков и статей, посвящённых созданию отчётов в SSRS. Вместо описания обычной последовательности действий: "Подключение к источнику->Выборка данных", я расскажу о некоторых приёмах, не очевидных для начинающего специалиста по отчётности:
- группировка строк в отчёте SSRS
- условное форматирование ячеек в SSRS
- как скрыть таблицу SSRS под кат
Подготовка данных
Для примера подготовим таблицу с данными:
id_Сотрудника | Отдел | Премия |
190641 | 9 | 5200 |
190642 | 9 | 8060 |
190643 | 3 | 2080 |
190644 | 9 | 12400 |
190645 | 3 | 4400 |
190646 | 9 | 4290 |
190647 | 3 | 1200 |
190648 | 9 | 5800 |
190649 | 3 | 800 |
190650 | 3 | 1690 |
Пусть это данные о премиях для сотрудников на предприятии, причём данные доступны для двух отделов: отдела №3 и отдела №9.
Создание просто отчёта и группировка данных
Как вывести данные таблицы в отчёте SSRS? Сначала включим в отчёт таблицу "как есть". В проекте SSRS на вкладке Toolbox выбираем тип объекта, в котором будут выводится наши данные - Table:
В первую строку созданной таблицы вводим названия столбцов, во вторую строку - имена полей из созданного набора данных DataSet1:
Посмотрим, как выглядит созданный отчёт на сервере:
Начало положено!
Хотелось бы выводить фамилии сотрудников в алфавитном порядке, а так же отсортировать их по отделам. Как провести сортировку строк в отчёте SSRS?
В нижней части окна находим вкладку Row Groups и кликаем правой кнопкой мыши по названию группы (по умолчанию у нас одна группа), в контекстном меню выбираем пункт Group Properties
В появившемся окне на вкладке Sorting задаём поле, по которому производится группировка (Номер отдела) в поле Sort by и порядок сортировки (по возрастанию):
Отлично, теперь строчки в отчёте SSRS отсортированы. Однако, выводить номер отдела в каждой строчке не совсем наглядно. Как сделать заголовок для группы строк в SSRS?
Для этого изменим нашу табличку - сначала удалим столбец "Отдел" (он нам больше не понадобится).
После этого в нижней части окна найдём вкладку Row Groups и в контекстом меню выберем Add Group и тип группы Parent Group:
В появившемся окне укажем поле, по которому производим группировку (поле "Отдел") и выставим флажок "Add group header";
SSIS автоматически создаст родительскую группу (обратите внимание, на нашем элементе Tablix появились две вложенные скобки) и заголовок группы. Однако заголовок расположен неудобно - удалим созданный автоматически первый столбец таблицы (обратите внимание - саму группу удалять нельзя)
После этого объединим ячейки в первой строке
И добавим поле "Отдел" из нашего набора данных в первую строку таблицы. Теперь макет отчета SSIS выглядит следующим образом:
Всё готово! Теперь отчёте на сервере данные группируются по отделам, наш отчёт приобрёл следующий вид:
В следующем посте будут разобраны ещё два полезных приёма: условное форматирование ячеек в SSRS скрытие таблицы в SSRS под кат.
Комментариев нет:
Отправить комментарий