Reporting Services: составляем отчеты::Журнал СА 1.2007
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

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

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6237
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6944
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4230
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3015
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3811
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3827
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6323
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3174
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3466
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7283
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10649
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12370
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14005
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9130
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7084
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5393
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4620
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3431
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3164
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3405
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3029
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Reporting Services: составляем отчеты

Архив номеров / 2007 / Выпуск №1 (50) / Reporting Services: составляем отчеты

Рубрика: Администрирование /  Технологии

Павел Купцов

Reporting Services: составляем отчеты

Ваш начальник требует отчета о трафике? Об итогах инвентаризации сети? Бухгалтерия умоляет помочь с отчетом в Excel? А вы можете предоставить только маловразумительный текстовый файл и рассуждаете о приобретении ERP-системы? Тогда, возможно, вы ещё не знаете о современных технологиях разработки отчетов.

Во многих организациях широко применяется MS SQL Server. Сегодня он может использоваться вместе с такими приложениями, как 1C, SharePoint Portal Server, WSUS, всевозможными корпоративными приложениями (Symantec Backup Exec, продукты Surf Control, Citrix, SAP BO), в собственных разработках компании, для сайта компании и т. п., вы можете и дальше продолжит этот список для себя. Об удобствах использования этой базы данных можно говорить долго, пока дело не дойдет до составления удобочитаемых отчетов.

Конечно, программист всегда сможет открыть Query Analyzer и выполнить заготовленный запрос, для того чтобы получить интересующую его информацию, но что делать рядовым пользователям, желающим получить доступ к информации из базы данных? На помощь приходит служба Reporting Services.

Служба составления отчетов SQL Server 2000, выпущенная в январе 2004 года, вероятно, стала одним из самых широко используемых компонентов.

Почти всем организациям приходится создавать отчеты на основе данных, и с помощью Reporting Services компания Microsoft заполнила этот пробел в инструментарии.

Установка

Для того чтобы установить службу Reporting Services, необходимо:

  1. Windows Server 2003, Windows XP или Windows 2000 с самыми последними пакетами обновлений.
  2. Microsoft IIS, так как Reporting Services запускаются как веб-службы XML (плюс должен быть установлен ASP.NET).
  3. SQL Server 2000 или 2005 в редакции Standard, Enterprise или Developer (Reporting Services несовместимы с более ранними версиями SQL Server).
  4. Разработчикам отчетов требуется среда Visual Studio.NET 2003 или 2005, которая управляет компонентом Reporting Services Report Designer.

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

Компоненты 1 и 2 должны стоять на одном компьютере, в то время как 3 и 4 компоненты могут быть установлены где угодно.

Во время установки Reporting Services (далее RS) нужно будет выбрать, где будет установлена БД сервера отчетов.

Для этого вы укажите:

  • сервер SQL;
  • пользователя с соответствующими привилегиями (для создания новых БД);
  • имя БД (можно оставить по умолчанию).

Инсталлятор, проверив введенные данные, создаст необходимые БД на указанном вами SQL-сервере.

Службы RS используют две базы данных SQL-сервера для внутреннего хранения экземпляра сервера отчетов: одну для хранения данных, а другую в качестве временного хранилища.

Эти базы данных создаются одновременно и связываются по имени.

По умолчанию базам данных присваиваются имена соответственно reportserver и reportservertempdb.

Когда все необходимые компоненты установлены – можно приступать к установке RS. Добавлю, что в процессе установки инсталлятор проверит все необходимые компоненты, и в случае если какого-то из них не будет обнаружено, выдаст предупреждение. Когда вы будете устанавливать RS на сервер, то инсталлятор не найдет 4-ый компонент (если конечно вы не ведете разработку на сервере), это сообщение можно смело игнорировать. Для того чтобы в Visual Studio (далее VS) появились шаблоны для создания отчетов – необходимо запустить установку RS на компьютере для разработки отчетов, инсталлятор установит только шаблоны, и они станут доступны при создании проектов в VS.

Созданные отчеты можно просматривать с помощью веб-соединения или как часть приложения Microsoft Windows или портала SharePoint. Если на сервере, куда вы устанавливаете RS, уже развернута служба SharePoint, то потребуется дополнительная настройка IIS, подробности будут сообщены инсталлятором в процессе установки.

Думаю, что с установкой службы RS вы справитесь. Примерную картину после установки смотрите на рис. 1.

Рисунок 1. Вид главной страницы веб-узла службы RS

Рисунок 1. Вид главной страницы веб-узла службы RS

О функционале этой страницы я  скажу позже. Перейдем к самому интересному – созданию отчетов.

Первый отчет

Итак, установка службы на сервер прошла удачно, добавление шаблона для разработки отчетов в VS выполнено. Теперь можно приступать к написанию первого отчета. Запускаем VS и открываем новый проект (см. рис 2.).

Рисунок 2. Создание нового проекта в VS

Рисунок 2. Создание нового проекта в VS

Новый шаблон, который добавился в VS, называется Business Intelligence Project. Запустить создание этого проекта можно в двух режимах, в режиме мастера и в обычном режиме.

Для первого отчета запустим создание проекта в режиме «мастера» (Report Project Wizard). Перед запуском мастера можно выбрать название для отчета (это будет название папки проекта), и его расположение.

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

Рисунок 3. Определение источника данных для проекта

Рисунок 3. Определение источника данных для проекта

Источник данных можно сделать общим (Shared), это удобно, когда в проекте несколько видов отчетов используют одну и ту же базу данных. Параметры соединения задаются по нажатию кнопки «Edit» (см. рис .4).

Рисунок 4. Окно редактирования свойств подключения

Рисунок 4. Окно редактирования свойств подключения

В окне свойства связи с данными нас интересует вкладка «Подключение». Здесь можно задать расположение сервера SQL, имя пользователя/пароль и выбрать базу данных для отчета.

Для наших примеров будем использовать тестовую базу данных Northwind, которая создается на сервере MSSQL в процессе его установки. Структуру этой базы я не буду описывать, при желании, изучить структуру этой базы, вы сможете самостоятельно. Название сервера баз данных в наших примерах будет CTX (у вас это может быть localhost или любое другое), в зависимости от того, где вы будете устанавливать службу RS. Для примеров можете использовать тот же SQL-сервер, где установили RS или любой другой в вашей сети, главное – наличие на нем базы Northwind. Никаких особых настроек для этой БД делать не требуется.

Следующий шаг определяет строку запроса. По нажатию на кнопку «Edit» вызывается редактор Query Builder, хотя мне кажется это лишнее, запрос можно просто вставить в окно мастера (см. рис. 5).

Рисунок 5. Строка запроса SQL, определяющая выборку данных для отчета

Рисунок 5. Строка запроса SQL, определяющая выборку данных для отчета

Для первого отчета используем такой запрос:

SELECT OrderID AS 'Номер заказа', OrderDate AS 'Дата заказа', RequiredDate AS 'Дата исполнения', Freight AS 'Стоимость'

FROM Orders

WHERE CustomerID =

    (SELECT CustomerID

     FROM Customers

     WHERE CompanyName LIKE 'Familia%')

Названия полей можно определять через псевдонимы (ключевое слово AS), если не делается выборка * (ALL), в последнем случае мастер сам назначит псевдонимы для полей.

В следующем шаге мастера выберите тип отчета Tabular (табличный). Тип отчета Matrix (матричный) используется для отчетов с перекрестными ссылками, о нем мы не будем говорить в нашей статье.

Шаг Design the Table определяет, какие поля запроса будут доступны для просмотра в отчете, каким образом они будут группироваться.

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

Поле Group определяет поля запроса, по которым осуществляется группировка значений.

Поле Details определяет поля запроса, которые будут выводится в отчете (см. рис. 6).

Рисунок 6. Выбор группировки полей в отчете

Рисунок 6. Выбор группировки полей в отчете

Следующий шаг определяет:

  • внешний вид таблицы;
  • возможность раскрывающихся списков (Enable drilldown), полезная опция в случае большого количества сгруппированных данных;
  • возможность расчета промежуточных итогов (Include subtotals).

Последнюю опцию лучше выставлять вручную, так как мастер расставляет формулы для промежуточных итогов автоматически для всех полей, содержащих цифры, что некорректно (зачем нам складывать номера заказов?).

Последний шаг, который мы выполним, будет – определение внешнего вида отчета. Здесь уже все зависит от ваших цветовых и стилистических предпочтений. На выбор дается пять вариантов оформления. После этого шага нажмем в «мастере» кнопку «Finish» (пропустим шаг публикации отчета на сервере RS). Теперь назовем наш отчет «Информация о заказах» и, поставив галочку в «Preview report», нажмем «Finish».

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

Работать с отчетом нам предстоит в основном в трех вкладках, это:

  • Preview – для просмотра отчета.
  • Layout – для редактирования свойств таблицы и внешнего вида отчета.
  • Data – для редактирования тела запроса и источника данных.

В поле Layout находится наибольшее количество полезных для нас настроек. Их я опишу подробнее позже, когда мы будем создавать более сложный отчет. Сейчас же мы лишь немного подкорректируем ширину столбцов (это выполняется простым перетаскиванием «мышкой» границ полей, как в Excel), и отформатируем свойства полей с датой и стоимостью. Для этого кликнем правой кнопкой «мыши» в соответствующих полях и перейдем на пункт «Properties» (свойства). Откроется окно, в котором можно задать формат для данной ячейки (см. рис. 7).

Рисунок 7. Выбор формата ячейки

Рисунок 7. Выбор формата ячейки

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

Рисунок 8. Предпросмотр готового отчета в VS

Рисунок 8. Предпросмотр готового отчета в VS

Второй отчет

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

Если при создании проекта в «мастере» вы пометили источник данных как общий, то в окне Solution Explorer у вас должна быть картинка примерно как на рис. 9.

Рисунок 9. Добавление нового отчета в проект

Рисунок 9. Добавление нового отчета в проект

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

SELECT OrderID AS 'Номер заказа', OrderDate AS 'Дата заказа', RequiredDate AS 'Дата исполнения', Freight AS 'Стоимость'

FROM Orders

WHERE CustomerID =

    (SELECT CustomerID

     FROM Customers

     WHERE CompanyName LIKE @Company+'%')

Те, кто знаком с Transact SQL, сразу же заметят ошибку в запросе. Переменная @Company не объявлена и не типизирована. Но это особенность работы с VS и службой RS.

Теперь переходим на вкладку «Layout», и кликнем правой кнопкой мыши на поле ниже нашей таблицы (см. рис. 10). Переходим в пункт «Report Parameters». В открывшемся окне – вы увидите уже определенный параметр Company. Как видите, VS обработал наш запрос, и переменные с префиксом @ автоматически засчитал как параметры, передающиеся в запрос. В окне Report Parameters, можно определить несколько полезных свойств для переменной. Здесь мы уже определяем тип переменной, значение по умолчанию, список доступных значений, псевдоним для запроса пользователю и т. п. (см. рис. 11).

Рисунок 10. Доступ к списку параметров отчета

Рисунок 10. Доступ к списку параметров отчета

Рисунок 11. Редактирование свойств переменной

Рисунок 11. Редактирование свойств переменной

Немного отформатируем таблицу отчета, и перейдем к финальной стадии создания отчета – размещение его на сервере с RS.

Публикация отчета

Публиковать отчет на сервере можно двумя способами:

  • Из VS (публикуется весь проект).
  • Через веб-интерфейс RS.

Я рассмотрю второй способ, так как он дает большее понимание процесса публикации, чем непрозрачные действия VS.

Для размещения отчета, мы должны через браузер зайти на страницу RS. На этой странице есть меню для операций с отчетами, источниками данных, и некоторой настройки веб-узла. Первое, что я посоветовал бы сделать, – разместить в отдельной папке Источник данных. Для этого создаем папку Data. При этом ставим галочку «Hide in list view» (не отображать в списке), чтобы она не отображалась в обычном представлении на веб-узле (см. рис. 12).

Рисунок 12. Создание папки на веб-узле RS

Рисунок 12. Создание папки на веб-узле RS

Вернувшись на узел, мы не увидим созданную нами папку, до тех пор, пока не нажмем на кнопку «Show Details» (подробно). Перейдем в папку Data и нажмем кнопку «New Data Source» (новый источник данных). Откроется окно для создания источника данных. В поле Name, Description можно вводить произвольные данные, отметим пункт «Hide in list view и Enable data source», тип соединения выбираем SQL Server.

Данные в поле Connection String имеют следующий формат.

data source=CTX; initial catalog=Northwind

где:

  • data source – Net-BIOS-имя сервера MS SQL (это может быть как IP-адрес, так полное доменное имя сервера);
  • initial catalog – имя нашей БД на сервере.

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

Для загрузки отчетов используем пункт «Upload File» (загрузка файла). Из нашего проекта мы должны загрузить файлы с расширением rdl. После загрузки файлов, перейдем в свойства одного из загруженных отчетов.

На вкладке «Data source» (источник данных) нужно указать созданный нами ранее источник данных и нажать «Apply» (см. рис. 13).

Рисунок 13. Назначение источника данных для отчета

Рисунок 13. Назначение источника данных для отчета

Для отчета с параметром (второй отчет) будет доступна опция «Parameters», в которой можно переопределить некоторые значения. Каждому отчету можно установить лимит на выполнение, и разграничить доступ к нему по пользователям из Active Directory.

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

Теперь можно запускать отчеты на выполнение, по вкладке «View» (см. рис. 14).

Рисунок 14. Так выглядит отчет, размещенный на сервере RS

Рисунок 14. Так выглядит отчет, размещенный на сервере RS

Сформированный отчет можно экспортировать в 7 форматов, в их числе Excel, PDF, XML, html и т. п.

Резюме

Отчеты – важная составляющая функционала любой базы данных. Удобный инструмент для их разработки должен иметь, как минимум, 3 качества:

  • Позволять пользователю выбирать параметры для запроса.
  • Уметь разграничивать доступ к различным отчетам.
  • Экспортировать в различные файловые форматы результаты запроса.

Всеми этими свойствами система обладает.

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

  1. http://msdn2.microsoft.com/ru-ru/library/ms166344.aspx.
  2. http://citforum.ru/database/mssql/reporting_services.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru