На написание данного материала меня натолкнуло обсуждение идеи Конструктор отчетов, где Андрей Шилов изложил плюсы использования SQL Server Reporting Services для построения отчетов системы DIRECTUM. Вот основные из них, которые привлекли мое внимание:
Призывом к действию послужили слова Андрея: "Мне кажется, что гораздо удобнее просто начать разрабатывать отчёты, не заморачиваясь интеграцией." И так, посмотрим что это за зверь и с чем его едят.
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 -----
Пример реализации отчетов по работе с обращениями граждан:
Браво, Дмитрий!
Вот что значит "от слов - к делу!"
Дмитрий, добрый день.
Очень интересная статья.
Подскажите а на базе данной методике можно реализовать вот такой функционал?
У меня есть показатель, например возьмем ваш - Всего просроченных заданий, который показывает суммнарное значение по всем подразделениям (филиалам) и также у меня есть значения этого показателя по каждому подразделению.
Могу ли я сделать так чтобы нажав на общий показатель провалиться на вторую страницу, где будет уже значения показателей по подразделениям? То есть реализовать декомпозицию показателя.
Владимир, можно проваливаться в детали, не покидая страницы:
http://www.youtube.com/watch?v=_-IbUi0rN9A&noredirect=1
"Мне кажется, SQL Server Reporting Services вполне можно использовать как альтернативу модулю "Управление показателями эффективности""
А также как альтернативу отчётам DIRECTUM, которые используют приложения MS Office. MS Office, вообще говоря, не обязан быть у всех заказчиков - я знаю как минимум одного, который принципиально использует OpenOffice.
Евгений посмотрел, спасибо.
Я не совсем это спрашивал. Допустим у меня есть показатель по всей компании в целом (в виде спидометра) и по нему мы видим что он в критической зоне, нажимаем на него два раза и попадаем на его декомпозицию (тоже например в виде спидометров) по филиалам и смотрим, какой из них ухудшил показатель. Вот такое можно?
Только что проверил, если в свойстве Action спидометра указать ссылку на другой отчет, то по клику на спидометре, открывается этот отчет. А в этом отчете вы уже можете отображать более детальную информацию, ну и как я уже говорил, даже передать для отчета какие-нибудь параметры.
Ой... сколько скриншотов навставлялось О_о
Это как-нибудь можно исправить?
супер.
Еще вопрос - я правильно понимаю что SQL Server Reporting Services и 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. Убедитесь, что он у вас установлен и настроен.
Помогло :) спасибо :)
Очень классное решение!
Покапал в сторону этого материала и откнулся в проблему. Таблиц "количества задач: Просроченные, прекращенные, выполненные, в работе нету" вывел все задачи пользователя, а как вывески общее количество задач? цифрами.
)) а ссылочку какую нить можно???? у меня запросы храмают))) нет тык нет(
продолжаю работать с твоим материалом))))
Я пользуюсь 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 Reporting Servives.
Забыл добавить, качество видео делайте 720p HD (шестеренка в нижней строке окна просмотра), так лучше видно
Настроили отчет, но не можем разобраться с аутентификацией. Доступ к отчету выдали, настроили для источника данных тип соединения "Встроенная безопасность Windows". Но данные получить не можем, говорит нет прав.
Как вы настраивали доступ?
В SSRS права даются на веб-сайт, на корневую папку, на каждую вложенную папку и каждый элемент в отдельности. Кроме того, если правильно помню, в случае с виндовой аутентификацией имеет значение уровень прав пользователя на SQL'е, откуда тянутся данные.
На какой объект Вы дали права пользователю? Какую роль назначили пользователю на SSRS? К чему он не может получить доступ: к веб-сайту, к папке с отчетом, к отчету, к источнику данных или к самим данным?
Если первое, второе, третье или четвертое, значит копайте в сторону настройки прав на объекты SSRS (веб-сайт и контент).
Если пятый вариант, значит смотрите, какие права имеет пользователь на сервере баз данных (ему вообще разрешено данные смотреть или нет).
Дмитрий, спасибо. Разобрались.
Добрый день. А подскажите, как вызвать отчет(у меня есть кнопка, что в действии надо написать)?
Авторизуйтесь, чтобы написать комментарий