Разработка и публикация отчета в SQL Server Reporting Services (SSRS)

Итак, давайте приступим к рассмотрению процесса разработки и публикации отчетов в SQL Server Reporting Services, и в качестве примера мы будем использовать SSRS 2008 R2, а разработку отчета будем производить в среде SQL Server Business Intelligence Development Studio, также 2008 версии.

Разработка отчетов SSRS

Напомню, что в предыдущих материалах мы с Вами рассматривали возможности и основные компоненты SSRS, а также установку и настройку служб Reporting Services, а сегодня мы переходим к разработке отчетов, поэтому предполагается, что у Вас уже развернут и настроен SQL Server Reporting Services.

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

Исходные данные для создания отчета

Как я уже сказал, в качестве конструктора мы будем использовать среду SQL Server Business Intelligence Development Studio, а в качестве источника данных у нас будет выступать тестовая таблица в тестовой базе данных расположенной на SQL Server 2008 R2.

Таблица у нас будет следующая (описание полей чуть ниже):

   
   CREATE TABLE [dbo].[ProductsTable](
        [id] [int] IDENTITY(1,1) NOT NULL,
        [product] [varchar](50) NOT NULL,
        [price] [money] NOT NULL,
        [city] [varchar](50) NOT NULL,
        CONSTRAINT [PK_ProductsTable] PRIMARY KEY CLUSTERED 
        (
                [id] ASC
        )
   )
   GO
   
   ALTER TABLE [dbo].[ProductsTable] ADD  CONSTRAINT [DF_ProductsTable_price]  DEFAULT ((0)) FOR [price]
   GO

Где,

  • id – идентификатор записи (первичный ключ, поле не должно содержать пустых значений);
  • product — наименование товара (поле не должно содержать пустых значений);
  • price – цена товара (не может быть пустой, но может быть еще не установленной, т.е. по умолчанию 0);
  • city – город в котором произведен товар, поле также не должно содержать пустых значений.

Другими словами, наша таблица содержит список товаров, их цену и города, в которых они были произведены.

Примечание! Все запросы я выполняю в среде SQL Server Management Studio.

Кстати, если кому интересна тема SQL Server и Transact-SQL, то рекомендую почитать следующие материалы:

Сами данные у нас будут, допустим, следующие

Скриншот 1

И на основе этих данных мы будем строить отчет.

Разработка отчета в Business Intelligence Development Studio

Переходим к разработке отчета, открываем Business Intelligence Development Studio (BIDS) «Пуск ->Все программы-> Microsoft SQL Server 2008 R2-> Среда SQL Server Business Intelligence Development Studio».

Создание проекта сервера отчетов

Далее нам необходимо вызвать окно создания проекта, это мы можем сделать на начальной странице, используя кнопку «Создать проект» или через меню «Файл ->Создать -> Проект».

Скриншот 2

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

Скриншот 3

Затем давайте сразу зададим адрес сервера отчетов для нашего проекта, сам адрес можно посмотреть в диспетчере конфигурации служб Reporting Services в пункте «URL-адрес веб-службы», по умолчанию на локальном компьютере это — http://localhost/ReportServer.

В BIDS выбираем меню «Проект -> Свойства (конфигурация Release)» и в пункте TargetServerURL указываем наш адрес.

Примечание! Адрес сервера отчетов необходимо указывать для каждой конфигурации проекта.

Скриншот 4

Теперь мы можем сразу из BIDS опубликовывать отчеты на сервере отчетов.

Создание общего источника данных

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

Для этого в «Обозревателе решений» в пункте «Общие источники данных» нажимаем правой кнопкой «Добавить новый источник данных».

Скриншот 5

Затем указываем название нашего источника и, соответственно, выбираем, что это за источник. В нашем примере это «Microsoft SQL Server».

Скриншот 6

Для указания строки подключения нажимаем Правка, и заполняем соответствующие данные, т.е. в нашем случае это localhost, база данных test. Также здесь необходимо задать тип проверки подлинности, если указать тип «Использовать проверку подлинности Windows», то вход на SQL сервер будет выполнен от имени учетной записи, под которой Вы загрузили операционную систему. Если указать «Использовать проверку подлинности SQL Server», то, соответственно, на сервере должна быть заведена специальная учетная запись и, конечно же, сам сервер должен быть настроен на такой способ проверки подлинности. Для примера я буду использовать проверку подлинности Windows.

Скриншот 7

Можете нажать «Проверить подключение», и если все хорошо нажать «ОК». После чего строка подключения у нас отобразится, и мы можем нажать «ОК» для создания общего источника данных. В обозревателе решений у нас появится только что созданный источник данных.

Скриншот 8

Создание отчета

Теперь давайте создадим сам отчет, для этого в обозревателе решений щелкаем правой кнопкой по пункту «Отчеты ->Добавить ->Создать элемент»

Скриншот 9

Примечание! Если Вы заметили, есть пункт «Добавить новый отчет», но если Вы его нажмете, то у Вас запустится мастер создания отчета, лично мне удобнее создавать отчеты с чистого листа без использования мастера.

Затем в окне «Добавление нового элемента» в шаблонах мы выбираем «Отчет» и в пункте имя задаем имя нашего отчета.

Скриншот 10

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

Например, мне удобно вот так

Скриншот 11

Теперь создаем источник данных для отчета, т.е. как договорились, создаем ссылку на общий источник данных. Для этого в окне «Данные отчета» жмем «Создать ->Источник данных» или также можно щелкнуть правой кнопкой по пункту источники данных.

Где мы задаем имя источника данных и выбираем пункт «Использовать ссылку на общий источник данных», жмем «ОК».

Скриншот 12

Затем добавляем набор данных, предлагаю использовать простой запрос, который будет выбирать все данные из нашей тестовой таблицы

  
   SELECT * FROM dbo.ProductsTable

Жмем «Создать ->Набор данных» или снова через правую кнопку.

В окне «Свойства набора данных» мы задаем имя набора данных, выбираем пункт «Использовать набор данных, внедренный в отчет» и в текст запроса соответственно вставляем наш запрос, жмем «ОК»

Скриншот 13

Нам осталось спроектировать сам шаблон вывода информации, для этого на макет с «Панели элементов» перетащите элемент «Таблица». Этот элемент отлично подходит для отображения табличных данных.

Скриншот 14

Теперь можно перетащить поля с набора данных в эту таблицу, для отображения.

Скриншот 15

В принципе можно сразу проверить работу данного отчета, для этого перейдите на вкладку «Просмотр», т.е. таким образом можно производить отладку без опубликования отчета на сервере.

Скриншот 16

А для опубликования отчета и всего проекта на сервере отчетов, необходимо в пункте меню «Построение» нажать «Развернуть Тестовый проект»

Скриншот 17

После чего, если Вы зайдете в «Диспетчер отчетов», по умолчанию это http://localhost/Reports, то Вы увидите, что у Вас там появился каталог «Тестовый проект», в котором лежит отчет «Тест», а также появился соответствующий источник данных. Для запуска отчета перейдите в каталог и нажмите на отчет.

Скриншот 18

На этом предлагаю заканчивать, в следующих материалах мы рассмотрим процесс создания более сложных отчетов с использованием группировок, параметров, интерактивных сортировок и других крутых возможностей SQL Server Reporting Services. Удачи!

Понравилась статья? Поделиться с друзьями:
Заметки IT специалиста
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:
Нажимая на кнопку «Отправить комментарий», я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.