В основе почти всех моих рекомендаций, адресованных разработчикам SQL Server, Visual Studio и VB. NET, лежат предложения читателей. Благодаря вашим идеям службы отчетов Reporting Services (SSRS) стали более эффективными. Корпорация Microsoft сохранила почти все заслуживающие одобрения средства и добавила несколько новых. Вместе с тем хотелось бы, чтобы были доработаны еще некоторые функции. Давайте рассмотрим ряд усовершенствованных средств, которые должны облегчить работу администратора, а также коснемся нескольких недостаточно продуманных функций, которые ему мешают.

Виртуальный каталог

Теперь службы SSRS могут сохранять виртуальные каталоги, не прибегая к помощи Microsoft IIS. Без участия IIS службы отчетов функционируют быстрее, чем раньше. Чтобы обращаться к отчетам по протоколу SSL, администратору, как и прежде, необходимо использовать сертификат. Запускать производственный отчет без применения SSL — все равно что передавать свой номер телефона по местной радиостанции. При использовании SSL все данные, которыми обмениваются SSRS и браузер, передаются по сети в виде зашифрованных пакетов. И никто не сможет, используя анализатор пакетов, читать отчеты или содержащиеся в них конфиденциальные данные.

Разработчики SSRS изменили и процедуру именования виртуальных каталогов, но эти изменения действительны лишь при условии, что SQL Server 2008 установлен в виде именованного экземпляра. В URL-адресах ReportServer или Reports предшествующих версий имя экземпляра SQL Server присоединялось с помощью символа $, например http://<ваш сервер>/Report$SS2K5. В версии SSRS 2008 разработчики Microsoft заменили символ $ знаком подчеркивания (_). Чтобы развернуть проект Microsoft Visual Studio (VS) 2008 BI, нужно изменить URL-адрес TargetServer, придав ему следующий вид: http://<ваш сервер>/ReportServer_SS2K8, где SS2K8 — это имя конкретного экземпляра SQL Server.

Reporting Services Configuration Manager

Это инструментальное средство подверглось несущественной доработке, и его возможности были усовершенствованы. Диспетчер Reporting Services Configuration Manager (RSCM) по-прежнему запускается из меню SQL Server Configuration Tools. Помните, что диспетчер вносит изменения в конфигурацию конкретного экземпляра SSRS, который часто устанавливается на сервере в том же зале. Если вы устанавливаете службы отчетов более поздней версии, чем SQL Server 2000, эта программа позволяет убедиться, что все подключено корректно, и помогает настроить SSL, установить ссылки электронной почты, а также, что самое важное, установить и зарезервировать ключи шифрования. Обращаться к отчетам без этих ключей довольно сложно. На экране 1 показана ссылка на диспетчер отчетов в RSCM. Здесь порт SSL связывается с созданным вами сертификатом.

Экспорт отчетов

В службах SSRS до сих пор не реализован простой способ экспорта отчетов. Представитель разработчиков сообщил мне, что проблемой экспорта отчетов они предполагают заняться (хотя и не в ближайшем будущем) и что, возможно, такая функция появится в одной из следующих версий. Пока же можно воспользоваться бесплатно распространяемой утилитой, обеспечивающей решение этой задачи (см. врезку «Бесплатное средство экспорта отчетов SSRS»).

Включение функции My Reports

Если необходимо сделать диспетчер отчетов доступным для пользователей, можно активировать функцию My Reports, чтобы они могли поддерживать каталог отчетов на основе своих доменных имен, используемых для регистрации в системе. Так, после того как я включил функцию My Reports, службы Reporting Services сформировали новое дерево каталогов для моих персональных отчетов, которым я могу пользоваться для поиска интересующих меня отчетов. Вопрос в том, как включить эту функцию. Документация на сей счет фрагментарна, но включить функцию не так уж сложно, если знать, как выполняется процедура установления связи с обменом секретным ключом.

Запустите SQL Server Management Studio, но не подключайтесь к процессору Database Engine, а в исходном диалоговом окне Connect to Server выберите пункт Reporting Services (это можно сделать, если служба уже запущена). Чтобы активизировать функциональные возможности My Reports, следует правой кнопкой мыши щелкнуть на базовом соединении и выбрать пункт Properties. На экране появится диалоговое окно, показанное на экране 2.

Задание свойств SSRS

Теперь вы сможете задать роль, применяемую к каждому из созданных на данном сервере каталогов My Reports. Когда пользователи Windows откроют URL-адрес диспетчера Report Manager, они увидят новый путь, созданный в каталоге Reporting Services для их доменного имени.

Защищать свои отчеты — жизненно важная задача пользователя вне зависимости от того, кто имеет право просматривать эти отчеты. Один из способов создания ролей Reporting Services, которым администратор может назначить конкретные права, предполагает использование обозревателя объектов Reporting Services Object Explorer. В результате пользователи не смогут обращаться к отчетам, знакомиться с которыми им не положено.

Работа с новым конструктором отчетов Report Designer

В распоряжении разработчиков служб отчетов имеется множество конструкторов отчетов. Во врезке «Версии конструктора отчетов Microsoft» я попытался систематизировать версии продуктов и их возможности.

Новые средства отображения SSRS 2008 Report Definition Language (RDL) решают множество актуальных проблем, проявлявшихся в работе модулей подготовки RDL первого поколения (да, существует несколько модулей первого поколения). Механизм визуализации SSRS 2008 обеспечивает выполнение множества функций по обработке данных в расширенном текстовом формате, а также новый элемент управления Tablix (который, по сути, отнюдь не является элементом управления отчетами). Элемент управления Tablix сочетает в себе свойства элементов управления матрицами и таблицами (отсюда его название), а также такие особенности, как ограниченная поддержка формата Rich Text и встроенные возможности для сводных таблиц.

Кроме того, механизм визуализации SSRS 2008 стал более универсальным. Проблема в том, что механизм визуализации и конструкторы отчетов, создавшие RDL для введения в него данных, формировали новые и несовместимые файлы RDL, которые не воспринимаются старым механизмом SSRS 2005, до сих пор использующимся в элементах управления ReportViewer VS 2005 и VS 2008. И это плохо — по крайней мере тогда, когда необходимо использовать средства BI с функциями, обеспечивающими эффективную генерацию отчетов, для создания этих новых отчетов и средства управления ReportViewer в приложениях Windows и Active Server Pages (ASP) — для их развертывания. Дело в том, что внутренний механизм элемента управления ReportViewer VS 2008 SP1 позволяет ему визуализировать лишь старые отчеты первого поколения в стиле RDL. Однако сейчас происходит обновление Visual Studio и элемента управления ReportViewer, и в ходе этого обновления будут реализованы средства отображения RDL следующего поколения. К сожалению, это произойдет не ранее выхода в свет VS 2010.

Тема SSRS не закрыта

У темы SSRS есть еще много аспектов, о которых я собираюсь рассказывать на страницах журнала в течение нынешнего года, пока специалисты Microsoft завершают работу над остальными компонентами служб отчетов. Надеюсь, что эти службы начнут действовать в обстановке, когда разработчики придут к мысли о том, что значительно проще составлять сложные пользовательские интерфейсы, включающие отношения «родитель-потомок», суммы, итоговые суммы, сложные выражения и встроенные коды, чем жестко программировать эти элементы вручную.

Уильям Вон (billva@betav.com) — эксперт по Visual Studio, SQL Server, Reporting Services


Бесплатное средство экспорта отчетов  SSRS

Если бы передо мной стояла задача восстановить один отчет SSRS и единственный путь ее решения сводился бы к восстановлению всей базы данных SSRS, то я, откровенно говоря, счел бы, что овчинка не стоит выделки. К счастью, Джаспер Смит освоил (судя по всему) протокол SOAP, а также программные интерфейсы к SSRS и создал бесплатно распространяемую утилиту Reporting Services Scripter для извлечения из базы данных RDL, источников данных и всех других элементов каталога. Я протестировал этот продукт, и, хотя он, как мне показалось, сначала не поддерживал SQL Server 2008 (2.0.0.0.11), я сумел добиться подключения утилиты к моему экземпляру SQL Server 2008 и получил отчеты, а также создал проект Visual Studio BI для каждого каталога. В результате мне не пришлось тратить силы на то, чтобы выполнять тест на другой системе. Загрузить утилиту можно по адресу www.sqldbatips.com/showarticle.asp? ID=62.

Версия конструктора отчетов Microsoft

В блоке № 35 кампуса разработчиков Microsoft работают по меньшей мере четыре человека, понимающих, как и почему эволюционировал конструктор отчетов. С выходом каждой версии данного продукта под сомнение ставилась совместимость этих версий. Мне уже приходилось описывать особенности всех изданий конструктора отчетов, но это не позволяет нам понять, почему мы не можем делать то, что нам предлагалось делать при создании отчетов SSRS.

Конструктор отчетов в пакете Visual Studio (VS) 2003 объединяется с дополнительным модулем Reporting SelVices с помощью бинарной «заплатки». Этот конструктор может работать только с отчетами RDL служб отчетов SSRS 2000. Данная версия VS не поддерживает элемент управления ReportViewer.

Конструктор отчетов в VS 2005. Этот конструктор не может «видеть» службы SSRS 2008 и взаимодействовать с ними, но он может импортировать отчеты RDL служб отчетов SQL Server 2000 и взаимодействовать с SSRS 2005. Продукт поддерживает элемент управления ReportViewer первого поколения, который может осуществлять «перекрестное взаимодействие» с отчетами RDL SSRS 2005.

Конструктор отчетов в VS 2008. Этот конструктор тоже не может «видеть» службы SSRS 2008 и взаимодействовать с ними. При этом он не в состоянии даже открывать проекты SSRS 2005. Но продукт по-прежнему поддерживает элемент управления ReportViewer первого поколения и может осуществлять «перекрестное взаимодействие» с отчетами RDL SSRS 2005.

Конструктор отчетов в VS 2008 SP1. Этот конструктор взаимодействует с SSRS 2008 и может даже открывать проекты SSRS 2005, которые он преобразует в формат VS 2008. Он поддерживает проекты с элементом управления ReportViewer первого поколения и может осуществлять «перекрестное взаимодействие» с отчетами RDL SSRS 2005, но не с отчетами RDL SSRS 2008.

Конструктор отчетов, реализованный в комплекте SSRS BI Tools. Этот новый конструктор VS BI специально предназначен для работы с SSRS 2008, а также с проектами SSRS 2005, которые он преобразовывает в формат VS 2008 BI. Продукт не поддерживает разработку в средах Windows Forms или ASP, так что вопрос об использовании элемента управления ReportViewer здесь не актуален.


SSRS Configuration Manager