Использование возможностей DIRECTUM 4.7 и SQL Server Reporting Services для разработки отчетов

36 35

На написание данного материала меня натолкнуло обсуждение идеи Конструктор отчетов, где Андрей Шилов изложил плюсы использования SQL Server Reporting Services для построения отчетов системы DIRECTUM. Вот основные из них, которые привлекли мое внимание:

  • SQL Server Reporting Services не требует отдельной лицензии. Если у вас есть SQL Server - то у вас есть и Reporting Services.
  • SQL Server Reporting Services - серверное решение. Из этого следует, что отчёты генерируются на сервере, в результате чего отсутствует необходимость устанавливать на каждый клиентский компьютер какое-либо дополнительное ПО.

Призывом к действию послужили слова Андрея: "Мне кажется, что гораздо удобнее просто начать разрабатывать отчёты, не заморачиваясь интеграцией." И так, посмотрим что это за зверь и с чем его едят.

1. Установка и настройка SQL Server Reporting Services

С установкой SQL Server Reporting Services проблем возникнуть не должно, т.к. достаточно просто запустить установку SQL Server на сервере с установленным MS SQL Server и выбрать галочкой необходимую компоненту. В нашем случае это будет Reporting Services:

Также советую установить Business Intelligence Development Studio, он потом пригодиться для разработки отчетов.

Для настройки SQL Server Reporting Services 2008, я воспользовался вот этой видеоинструкцией: Как сконфигурировать SQL Server Reporting Services. Вся процедура настройки заняла минут 15. Для тех, у кого стоит MS SQL 2005, настройка SQL Server Reporting Services описана тут: Установка служб SQL Server Reporting Services. Настройка по данной инструкции тоже не вызвала особых проблем, но из-за того, что пришлось читать, заняла немного больше времени чем для версии 2008.

2. Разработка отчетов

После того, как мы установили SQL Server Reporting Services, настроили его и убедились, что все у нас работает, можно приступать к разработке отчетов. Если у вас уже стояла Visual Studio, то при установке  Business Intelligence Development Studio к ней добавляются новые типы проектов для разработки решений Analysis Services, Reporting Services и Integration Services. Если Visual Studio нет, то ставится "мини" Visual Studio, в которой доступны только эти, вышеперечисленные типы проектов. Также, для разработки отчетов, можно воспользоваться средой создания отчетов Report Builder 3.0 (для Microsoft SQL Server 2008 R2  Reporting Services) или Report Builder 2.0 (для Microsoft SQL Server 2008 Reporting Services). Если у вас Microsoft SQL Server 2005 Reporting Services, то лучше сразу для создания отчетов воспользоваться Visual Studio, т.к. Report Builder 1.0 мне совсем не понравился (если быть точнее, то для создания модели данных, он потребовал перевести базу данных DIRECTUM в режим совместимости с SQL Server 2005, а по известным причинам делать этого не стоит).

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

Report Builder 2.0:

Результат:

Visual Studio 2008:

Результат:

3. Используем возможности DIRECTUM 4.7

Как известно, в DIRECTUM 4.7 у папок появилась возможность создания «обложки» в виде отображения веб-страницы или страницы портала. Для этого на карточке папки добавлен реквизит «URL». Если мы в этом реквизите укажем URL опубликованного отчета, то получим следующее:

Также, в DIRECTUM 4.7 появилась возможность создавать варианты запуска компонент с типом "Ссылка":

Кроме того, данные отчеты можно встраивать в карточки документов и справочников.

Видеоролик процесса создания простенького отчета для одного из представленных выше примеров (всего 9 минут и отчет готов):

DIRECTUM 4.7 и Microsoft SQL Server 2008 Reporting Services

SQL Server Reporting Services мощное средство для создания отчетов и если вы его еще не используете, то самое время обратить на него внимание. И самое главное, он у вас уже есть!

P.S. Мне кажется, SQL Server Reporting Services вполне можно использовать как альтернативу модулю "Управление показателями эффективности" для тех, кому по какой-нибудь причине не хочется разбираться с его настройкой и погружаться в объектную модель IS-Builder.

----- Обновление от 11.11.2013 -----

Пример реализации отчетов по работе с обращениями граждан:

6cgpbH4PHtQ

 

Алексей Немцев

Браво, Дмитрий!

Вот что значит "от слов - к делу!"

Владимир Чивилев

Дмитрий, добрый день.

Очень интересная статья.

Подскажите а на базе данной методике можно реализовать вот такой функционал?

У меня есть показатель, например возьмем ваш - Всего просроченных заданий, который показывает суммнарное значение по всем подразделениям (филиалам) и также у меня есть значения этого показателя по каждому подразделению.

Могу ли я сделать так чтобы нажав на общий показатель провалиться на вторую страницу, где будет уже значения показателей по подразделениям? То есть реализовать декомпозицию показателя.

Евгений Кочуров

Владимир, можно проваливаться в детали, не покидая страницы:

http://www.youtube.com/watch?v=_-IbUi0rN9A&noredirect=1

Андрей Матаренко

"Мне кажется, SQL Server Reporting Services вполне можно использовать как альтернативу модулю "Управление показателями эффективности""

А также как альтернативу отчётам DIRECTUM, которые используют приложения MS Office. MS Office, вообще говоря, не обязан быть у всех заказчиков - я знаю как минимум одного, который принципиально использует OpenOffice.

Владимир Чивилев

Евгений посмотрел, спасибо.

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

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

У спидометра есть свойство Action, в котором можно указать URL другого отчета, а также передать параметры для этого отчета:
 
 
Так что ваша идея вполне реализуема.
P.S. Что-то не смог вставить картинку, поэтому просто привел ссылку на скриншот.
Дмитрий Тарасов

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

Дмитрий Тарасов

Ой... сколько скриншотов навставлялось О_о

Это как-нибудь можно исправить?

Владимир Чивилев

супер.

Еще вопрос - я правильно понимаю что SQL Server Reporting Services и Visual Studio друг друга не исключают и нужны оба этих софта.

В рамках реализации таких задач что лучше Visual Studio 2010 или Visual Studio 2008. Возможно в 2010 добавились какие нибудь новые диаграммы или средства отображения?

Дмитрий Тарасов
Еще вопрос - я правильно понимаю что SQL Server Reporting Services и Visual Studio друг друга не исключают и нужны оба этих софта. 
Да, нужны оба этих софта. Вместо Visual Studio можно использовать Report Builder (ссылки есть в материале). Для разработки простеньких отчетов, типа тех, которые я приводил, особой разницы нет, Visual Studio использовать или Report Builder. Но если нужно создать какой-нибудь серьезный отчет, то мне кажется, что у Visual Studio возможностей побольше будет.
В рамках реализации таких задач что лучше Visual Studio 2010 или Visual Studio 2008. Возможно в 2010 добавились какие нибудь новые диаграммы или средства отображения?

Я бы использовал лучше Visual Studio 2008, т.к. не уверен, что в версии 2010 вообще есть возможность создавать проекты Report Services. Может я и ошибаюсь, но проверить не могу (под рукой нет Visual Studio 2010 и нахожусь в длительной командировке). А лучше ставить ту версию, которая входит в поставку вашего SQL Server (первый скриншот в материале). Плюс ко всему, мне кажется, что наличие датчиков и диаграмм, зависит от версии Reporting Services, а не от версии Visual Studio.

 
Андрей Куров

Если у вас стоит VS2010, то дополнительно поставится огрызок VS2008, где можно будет ваять отчеты. По крайней мере у меня было так - интеграции Репорта с VS2010 я не видел.

Анатолий Юмашев

ох не терпится взглянуть на повышение температуры воздуха по администрации, когда я скрещу Димин хак и мою ACMS )

Денис Архипов

Господа, такой вопрос: если устанавливался скл 2005 с СП1, и SSRS не был установлен. после этого накатили патчи до СП3. Как теперь установить SSRS? при запуске установочника 2005 СП1, пункт этот недоступен для выбора.

Дмитрий Тарасов

У вас скл 2005 стоит на Windows Server 2003 или на Windows Server 2008?

Денис Архипов

на 2008 (не R2, обычный)

Дмитрий Тарасов

Если на Windows Server 2008, то вот: Установка и настройка служб отчетов SQL Server 2005 на компьютере под управлением Windows Server 2008 и вот: Разрешение проблем возникающих при установке и настройке Microsoft SQL Server 2005 на Windows Server 2008. Также, для Reporting Services 2005 нужен IIS. Убедитесь, что он у вас установлен и настроен. 

Денис Архипов

Помогло :) спасибо :)

Алексей Лапихин

Очень классное решение!

Артем Моисеев

Покапал в сторону этого материала и откнулся в проблему. Таблиц "количества задач: Просроченные, прекращенные, выполненные, в работе нету" вывел все задачи пользователя, а как вывески общее количество задач? цифрами. 

Дмитрий Тарасов
а как вывески общее количество задач? цифрами.

Count(*)
Артем Моисеев

)) а ссылочку какую нить можно???? у меня запросы храмают))) нет тык нет( 

продолжаю работать с твоим материалом))))

Андрей Литвинов
у меня запросы храмают

вот здесь не плохой материальчик про запросы: http://www.firststeps.ru/
Дмитрий Тарасов

Я пользуюсь SQL Server Books Online, который устанавливается вместе с MS SQL (если при установке его отметить в устанавливаемых компонентах), там полно примеров. Тоже самое можно найти в MSDN. На худой конец гугл выдает кучу ссылок на запрос "t-sql примеры", первая же ссылка в результатах поиска: 

Краткий справочник по Transact SQL

 Также в справке DIRECTUM можно посмотреть раздел "Физическая структура данных системы DIRECTUM", чтобы видеть связи между таблицами.

Артем Моисеев

спасибище)))) начинаю изучать))) уже получилось вывести количество записей по столбцу sbtask.subject)

Александр Гурин

Не уловил, передать параметры в запрос можно? например хочу так генерить лист согласования договора из карточки, передать в запрос как минимум ИД документа и маршрута как это сделать?

Александр Гурин

Можно! В запросе указать поля которые буду параметрами типо: SELECT Analit FROM MBAnalit WHERE vid = 266 and Analit = @Par

Тогда в ссылке на отчет надо передать значение параметра:

http://localhost:86/ReportServer/Pages/ReportViewer.aspx......rs:Command=Render&Par=113379

 

И все работает!

Алексей Пестов

А можно ли как-нибудь настроить, чтобы отчет можно было запускать только определенным пользователям?

Дмитрий Тарасов
А можно ли как-нибудь настроить, чтобы отчет можно было запускать только определенным пользователям?
Можно, в MS SQL Server Reporting Services есть настройки для разграничения прав пользователей на просмотр отчетов. В конце ролика по настройке, ссылка на который есть в материале, должно быть видно где и как это настраивается.
Дмитрий Тарасов

Добавил пример реализации отчетов по работе с обращениями граждан с помощью MS SQL Reporting Servives.

Дмитрий Тарасов
MS SQL Reporting Servives
Опечатка, должно быть MS SQL Reporting Services.
Дмитрий Тарасов

Забыл добавить, качество видео делайте 720p HD (шестеренка в нижней строке окна просмотра), так лучше видно smiley

Елена Лекомцева

Настроили отчет, но не можем разобраться с аутентификацией. Доступ к отчету выдали, настроили для источника данных тип соединения "Встроенная безопасность Windows". Но данные получить не можем, говорит нет прав.

Как вы настраивали доступ?

В SSRS права даются на веб-сайт, на корневую папку, на каждую вложенную папку и каждый элемент в отдельности. Кроме того, если правильно помню, в случае с виндовой аутентификацией имеет значение уровень прав пользователя на SQL'е, откуда тянутся данные.

На какой объект Вы дали права пользователю? Какую роль назначили пользователю на SSRS? К чему он не может получить доступ: к веб-сайту, к папке с отчетом, к отчету, к источнику данных или к самим данным?

Если первое, второе, третье или четвертое, значит копайте в сторону настройки прав на объекты SSRS (веб-сайт и контент).

Если пятый вариант, значит смотрите, какие права имеет пользователь на сервере баз данных (ему вообще разрешено данные смотреть или нет).

Елена Лекомцева

Дмитрий, спасибо. Разобрались.

Илья Елдинов

Добрый день. А подскажите, как вызвать отчет(у меня есть кнопка, что в действии надо написать)?

Авторизуйтесь, чтобы написать комментарий