четверг, 21 апреля 2016 г.

SSRS: создание отчёта и группировка строк

Создание отчёта в SQL Server Reporting Services





В интернете можно найти десятки уроков и статей, посвящённых созданию отчётов в SSRS. Вместо описания обычной последовательности действий: "Подключение к источнику->Выборка данных", я расскажу о некоторых приёмах, не очевидных для начинающего специалиста по отчётности:
  • группировка строк в отчёте SSRS
  • условное форматирование ячеек в SSRS
  • как скрыть таблицу SSRS под кат

 Подготовка данных


Для примера подготовим таблицу с данными:


id_СотрудникаОтделПремия
19064195200
19064298060
19064332080
190644912400
19064534400
19064694290
19064731200
19064895800
1906493800
19065031690




Пусть это данные о премиях для сотрудников на предприятии, причём данные доступны для двух отделов: отдела №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 под кат.









Комментариев нет:

Отправить комментарий