MSSQL Server 2000 Reporting Services: Фаза разработки: Обзор. Часть I

ПУБЛИКАЦИИ  

По материалам статьи William Pearson: MSSQL Server 2000 Reporting Services: The Authoring Phase: Overview Part I
Перевод Виталия Степаненко

Содержание

О серии ...

Это вторая из нескольких статей новой серии о MSSQL Server 2000 Reporting Services. Эта серия создана для ознакомления с MSSQL Server 2000 Reporting Services (в дальнейшем – Reporting Services) с целью дать предварительный обзор особенностей этой системы и показать ее роль как нового взгляда на системы отчетности предприятий. Сейчас я консультирую своих клиентов по поводу этой системы все чаще и чаще, за ней - большое будущее. Я надеюсь, что Вы сочтете мой вклад ценным, и что Вы тщательно исследуете те экономию и улучшенную функциональность, которые скоро будут доступны любому пользователю с лицензией MSSQL Server 2000 (и не только).
На заметку: в дополнение к установке Microsoft SQL Server 2000 Reporting Services версии 1.0 и Microsoft Visual Studio.NET (чтобы иметь доступ к Report Designer для создания отчетов), необходимо установить Service Pack 3 для MSSQL Server 2000, MSSQL Server 2000 Analysis Services, Books Online, и относящихся к ним примеров.
Скриншоты в этой серии были сняты в Windows Server 2003, но выполняемые в статьях шаги и видимые результаты их выполнения будут весьма похожими в любом окружении, поддерживающем MSSQL Server 2000 Reporting Services, MSSQL Server 2000 и MSSQL Server 2000 Analysis Services ("MSAS"). Все компоненты Microsoft Office, встречающиеся в этой серии, входят в комплект Office 2003.

[В начало]

Вступление

В первой статье этой серии, MSSQL Server 2000 Reporting Services: новый взгляд на системы отчетности предприятий, я выразил мнение, что Microsoft SQL Server 2000 Reporting Services (в дальнейшем - "Reporting Services") изменит лицо отчетности предприятий, каким мы знаем его сегодня. Я указал несколько причин, приведших меня к этому заключению, и не последней из них было то, что экономия средств для больших предприятий, к каковым относятся мои клиенты, может ежегодно составлять цифру с 5-6 нулями, и это не предел. Если мы добавим к экономии тот факт, что Reporting Services предоставляет интегрированный, полный набор инструментов для создания, управления и просмотра / передачи отчетов, и делает это с помощью масштабируемого движка, который поддерживает серверные хостинг и обработку отчетов, то эта система в самом деле становится очень привлекательной. Интеграция с пакетом Microsoft Office и признанными операционными системами означает расширенное использование инструментов и сервисов, уже имеющихся в наличии, что освобождает нас от дорогостоящего переизбытка средств (экономия времени и денег наиболее важны при поддержке системы), который случается, когда мы внедряем одно из старых "полных" решений.
Один из лучших способов проверить Reporting Services, который я рекомендую многим своим клиентам, состоит в том, чтобы получить копию системы и начать работать с ней параллельно с используемыми сейчас в организации системами отчетности. Microsoft распространяет бесплатные пробные копии своих продуктов, которые потом можно легко преобразовать в рабочие. В результате становится тяжелее оправдать простое продление лицензии у продавца используемых в настоящее время на предприятии систем отчетности, когда начинаются разговоры о существенной экономии у других (ведь финансовый директор и исполнительный директор предприятия действительно периодически завтракают вместе...), без должного усердия, возложенного на любого профессионала. Станьте первыми, и у Вас система уже будет тестироваться, когда Вас только начнут спрашивать о ней! Я упоминал в моей последней статье, что мы еще увидим большую миграцию на эту систему, которая будет вдохновляться ее возможностями и значимостью. OLAP, как и многомерная и реляционная отчетность, движется в направлении потребительского рынка от узкоспециализированной и затратной ниши, которая раньше управлялась несколькими наиболее влиятельными игроками на рынке. Оставайтесь на этой волне, и Вы еще увидите безвременные исчезновения "специалистов", которые расслабились в комфорте продуктов вчерашних дней. Прислушайтесь к голосу здравого смысла вопреки пресс-релизам "С чего мне беспокоиться?" еще спокойных продавцов - сколько раз мы уже видели такое в других областях рынка информационных технологий?
Цель этой серии статей - облегчить ознакомление с системой при помощи обзоров основного цикла отчетности в этом новом приложении и статей, объясняющих, как добиться выполнения тех целей отчетности, с которыми я имел дело в течении десяти лет, помогая клиентам в их работе с такими приложениями уровня предприятия, как Cognos, MicroStrategy, Business Objects / Crystal, и другими. Я использую ситуации, с которыми я сталкивался в процессе внедрения и работы над различными проектами, а затем покажу, как их можно решить в Reporting Services.
Я заявлял в предыдущей статье, что мы сделаем обзор каждой из фаз жизненного цикла отчетности предприятия в нескольких следующих статьях. Обзоры будут играть роль введения к следующим, более детальным статьям, и для подачи основной информации. В этой статье мы рассмотрим фазу разработки, с которой начинается жизненный цикл отчетности. В этой и следующей статьях мы обсудим фазу разработки в общем виде, исследуя шаги разработки с помощью иллюстрированного практического примера. Наш обзор фазы разработки в этой статье включает в себя следующее:

  • введение в фазу разработки;
  • обсуждение общих моментов процесса разработки как части практического примера, в котором мы создадим табличный отчет, включающее следующие шаги:
    • создание проекта и файлов отчета;
    • создание соединения данных;
    • построение запроса;
    • проектирование макета отчета;
    • ввод данных;
    • сохранение проекта отчета и определения отчета для шагов II части обзора фазы разработки.

[В начало]

Фаза разработки

После определения бизнес-требований первой стадией в жизненном цикле отчетности становится фаза разработки. Как дизайнеры отчетов в Reporting Services, мы создадим определение отчета при помощи инструмента разработки. Таким готовым инструментом для Reporting Services является Report Designer в Visual Studio.NET 2003. Разработка производится на клиентском компьютере, с которого (в идеале, когда учтены все требования), отчет публикуется на одном или нескольких серверах отчетов. С этих серверов отчет может быть доступен тем пользователям организации, которые нуждаются в соответствующей информации.
Report Designer предоставляет нам три основных пути создания отчета. Это следующие пути:

  • Создание отчета вручную - мы создаем пустой отчет, в который добавляем один или несколько запросов и макетов внешнего вида.
  • Создание отчета с помощью мастера отчетов - мы используем мастер отчетов, который автоматически создает табличный или матричный отчет (см. ниже табл.1 с описанием вариантов расположения данных в отчете) на основании наших ответов на вопросы мастера.
  • Импортирование отчета - мы можем импортировать отчеты из MS Access и других источников.

Хотя мы рассмотрим каждый из этих путей создания отчетов в серии статей о MSSQL Server 2000 Reporting Services, в этой статье как введении в фазу разработки будет использован практический пример с созданием простого отчета вручную для того, чтобы в основном сосредоточиться на общих местах разработки. У нас еще будет много возможностей рассмотреть создание отчетов для более специфических нужд бизнеса в будущих статьях, где будут представлены специальные техники и стратегии.
Определение отчета само по себе является эскизом внешнего вида отчета еще до того, как отчет будет закончен и отправлен, подобно "проекту", к которому большинство из нас привыкло в сегодняшних приложениях отчетности. Определение отчета содержит несколько элементов, включая:

  • запланированный внешний вид отчета;
  • данные соединения с источником данных;
  • запрос, определяющий исходные данные, которые извлекаются и выводятся в отчете.

Reporting Services может предложить множество вариантов внешнего вида для отчета, что и будет продемонстрировано в этой серии статей. В этой системе имеются страничные отчеты (те, которые Microsoft называет "традиционными" отчетами, или "бумажными" на жаргоне делового мира, и которые предназначены для снижения использования бумаги, хотя в реальности они загружают принтеры все в большем количестве), а также "интерактивные" отчеты, основанные на web-технологии. Стандартные варианты расположения данных в отчетах с их описанием представлены в табл.1.

Вариант расположения данных

Описание

Табличный отчет

Отчет табличного вида с определенным количеством столбцов.

Матричный отчет

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

Список (свободный вид)

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

Диаграмма

Отчет с графическим представлением информации (как классические круговой отчет или гистограмма).


Табл.1. Варианты расположения данных в отчете, доступные в Reporting Services

Как и во многих развитых приложениях отчетности предприятий, распространенных в настоящее время, макеты расположения данных могут быть объединены, превращая определение отчета в набор макетов расположения данных различных типов.
Фаза разработки в Reporting Services состоит из следующих шагов:

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

Давайте выполним практический пример, чтобы последовательно пройти по всем шагам фазы разработки в Reporting Services.

[В начало]

Создание проекта и файлов отчета

Мы начнем с создания простого отчета, основанного на таблице из нашего источника данных. Для этого мы используем OLTP базу данных AdventureWorks2000, которая устанавливается вместе с Reporting Services.

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

Сначала мы откроем дизайнер отчетов Reporting Services, находящийся в Microsoft Visual Studio.NET 2003.

1. Нажмите кнопку "Start".
2. Запустите Microsoft Visual Studio.NET 2003 из группы "Programs", как это показано на рис.1.


Рис.1. Все начинается в Microsoft Visual Studio.NET 2003 ...

3. Откройте в главном меню File --> New.
4. Нажмите Project в выпадающем меню, как это показано на рис.2.


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

Открывается диалоговое окно New Project, как это изображено на рис.3. Отметим, что в дереве типов проектов появилась папка Business Intelligence Projects, указывая на то, что была установлена система Reporting Services (эта папка была добавлена при установке Reporting Services, как и был добавлен дизайнер отчетов в Visual Studio.NET).


Рис.3. Диалоговое окно создания нового проекта с папкой Business Intelligence Projects в виде еще одного типа проектов

5. Выберите папку Business Intelligence Projects в списке типов проектов.
6. Выберите Report Project (проект отчета) в списке шаблонов.
7. Укажите, где должны располагаться файлы проекта отчета.
8. Введите следующее в поле ввода Name, оставив остальные установки неизменными:
RS002-1

Открывается диалоговое окно нового проекта с введенной нами информацией, как показано на рис.4.


Рис.4. Диалоговое окно нового проекта с введенной информацией

9. Нажмите OK.

Наш новый проект появляется в Solution Explorer (в верхнем правом углу интерфейса Visual Studio .NET), как мы видим на рис.5.


Рис.5. Новый проект появился в Solution Explorer

Мы создали проект отчета и теперь можем продолжить, создав файл отчета.

Создание файла отчета

Создание файла отчета не является сложным делом, для этого выполняются следующие шаги:

10. Нажмите правой кнопкой мыши на папку Reports в Solutions Explorer.
11. Выберите Add (добавить) в открывшемся контекстном меню.
12. Выберите Add New Item (добавить новый элемент) в выпадающем меню, как это на рис.6.


Рис.6. Выберите Add ---> Add New Item

Открывается диалоговое окно Add New Item (добавить новый элемент), как показано на рис.7.


Рис.7. Диалоговое окно добавления нового элемента - начальный вид

13. Нажмите Report в диалоговом окне добавления нового элемента.
14. Нажмите кнопку Open (Открыть) в нижней части диалогового окна добавления нового элемента.

Открывается рабочая среда дизайнера отчетов. Мы видим вкладки данных (Data), внешнего вида (Layout) и предварительного просмотра (Preview). При открытии отчета происходит переключение на вкладку данных, как показано на рис.8.


Рис.8. Рабочая среда дизайнера отчетов - вкладка данных (в сжатом виде)

Рабочая среда, которую мы видим, называется дизайнером отчетов. Видно, что в его состав много чего включено. Сильных сторон у дизайнера отчетов множество, включая локальные обработку и выполнение отчетов. Это означает, что мы можем в одной централизованной среде создать внешний вид отчета, определить его содержимое (с развитой функциональностью drag-and-drop) и посмотреть конечный результат наших усилий так же легко, как мы можем использовать функцию предварительного просмотра в документе Microsoft Word или Excel, чтобы увидеть, как этот документ будет выглядеть в напечатанном виде.
Некоторые люди могут поначалу опасливо воспринять эту функциональность - я часто слышал от своих клиентов, что часть их сотрудников считает, что Crystal Reports (к примеру) требует слишком много "программирования" по сравнению с другими продуктами, такими, как Cognos Impromptu, который они считали намного более дружественным. В Reporting Services можно использовать код, но это вовсе не является обязательным. Однако возможность добавить функциональность при помощи кода, при том, что вполне можно заниматься разработкой отчета на уровне drag-and-drop, делая это в насыщенной различными элементами управления рабочей среде, с большой долей вероятности может привлечь разработчиков "стандартных" отчетов стать хотя бы временами кодировщиками, когда они увидят ту мощь, которую они могут получить в этой рабочей среде. Кроме того, огромная мощь интерфейса дизайнера отчетов расположит к себе и многих разработчиков отчетов с небольшим опытом разработки.
Мы построим простой табличный отчет для того, чтобы начать ту часть серии статей, которая относится к разработке отчетов, и чтобы впоследствии создавать более сложные отчеты в последующих статьях. Главная цель сейчас - получить общее представление о требуемых шагах и увидеть, как легко сделать в Reporting Services то, что Вы сейчас делаете при помощи инструментов, используемых в настоящее время в Вашей организации (впрочем, перенос существующих отчетов на новую платформу является гораздо более легким делом, чем можно себе представить).

[В начало]

Настройка соединения

Наш следующий шаг - настройка соединения. Хорошей новостью является то, что Reporting Services может создавать соединения и наборы данных на их основе практически с любым источником данных ODBC и OLE DB (в дополнение к хранилищам данных MSSQL Server и MSAS). .NET API увеличивает возможности работы с другими источниками данных, подразумевая, что у Вас есть для этого готовый сценарий.
Давайте настроим соединение и создадим набор данных в нашем примере.

1. Выберите New Dataset (новый набор данных) в выпадающем списке в верхней части вкладки данных Data, как это показано на рис.9.


Рис.9. Выберите New Dataset в выпадающем списке вкладки данных

После выбора New Dataset открывается диалоговое окно свойств соединения с открытой вкладкой Connection (соединение) по умолчанию.

2. Введите название сервера, на котором располагается нужная OLTP база данных AdventureWorks2000.
В этом поле ввода я ввел название моего сервера - MOTHER1.

3. В переключателе выберите опцию Use Windows NT Integrated security.
4. В опции переключателя "Выберите базу данных на сервере" выберите из списка базу данных AdventureWorks2000.

В результате установки на вкладке Connection диалогового окна свойств соединения должны быть такими, как показано на рис.10.


Рис.10. Диалоговое окно свойств соединения - вкладка Connection

5. Нажмите на кнопку Test Connection (проверка соединения), чтобы убедиться в подключении к источнику данных.
Появляется окно с сообщением об успешной проверке соединения, как показано на рис.11.


Рис.11. Успешная проверка соединения

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

Report Designer предоставляет нам инструмент создания набора данных на основе нашего нового источника данных. На рис.12 показан его вид.
Теперь мы переходим к процессу создания нашего запроса, что и будет нашим следующим шагом.

[В начало]

Создание запроса

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

1. Введите (или вырежьте и вставьте) следующий простой SQL запрос в окне Query Report Designer.

-- RS002  Basic Practice Example Query
SELECT
    T1.Name AS 'Category', 
        T2.Name AS 'SubCategory', 
        T3.Name AS 'Product',
        T3.ListPrice AS 'List Price'
FROM
    ProductCategory T1
INNER JOIN
    ProductSubCategory T2 ON T1.ProductCategoryID = 
        T2.ProductCategoryID
INNER JOIN
    Product T3 ON T2.ProductSubCategoryID = 
        T3.ProductSubCategoryID;

Окно запросов должно выглядеть так, как показано на рис.12.


Рис.12. SQL запрос в окне SQL

2. Нажмите кнопку Run в панели инструментов, показанную на рис.13, чтобы выполнить запрос.


Рис.13. Кнопка Run

Результирующий набор данных появляется в окне Results под окном запросов, часть которого видна на рис.14.


Рис.14. Часть результирующего набора данных

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

[В начало]

Проектирование внешнего вида отчета

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

1. Выберите вкладку Layout (внешний вид).

На вкладке Layout располагается область проектирования, как это показано на рис.15. The Layout tab presents the Design Surface, as depicted in Illustration 15.


Рис.15. Вкладка Layout и область проектирования

Область проектирования вкладки Layout играет роль центральной "палитры": с этого места начинается пустой отчет. Именно в области проектирования мы добавляем области данных, определяем внешний вид отчета и выполняем другие шаги по созданию отчета. Как мы видим, пустой отчет не содержит никаких данных, настроек внешнего вида, графических или стилевых элементов, или других компонентов. Когда мы начинаем создавать пустой отчет, он на самом деле является пустым.
Создание пустого отчета дает нам возможность полной свободы процесса проектирования и разработки, что обычно является наилучшим решением, а часто и единственно возможным при создании отчета для предприятия. После добавления набора основных отчетов (с их наборами данных и другими компонентами) в наш общий набор инструментов, мы можем многократно использовать их с беспрецендентными легкостью и гибкостью, что не может сравниться с использованием систем отчетности недавнего прошлого.

2. Нажмите кнопку Toolbox (набор инструментов), расположенную в верхней части окна Report Designer (см. рис.16), чтобы открыть панель Toolbox.


Рис.16. Кнопка Toolbox

Слева от вкладки Layout появляется панель Toolbox.

3. Нажмите кнопку Table в Toolbox.

Панель Toolbox с нажатой кнопкой Table выглядит, как показано на рис.17.


Рис.17. Панель Toolbox с нажатой кнопкой Table

4. Щелкните на области проектирования (вместо обычного указателя мыши появится маленькое изображение таблицы).

Report Designer выдает таблицу с тремя столбцами в области проектирования, как показано на рис.18.


Рис.18. Добавление таблицы в область проектирования

5. Выберите вкладку Fields (поля) расположенную под панелью Toolbox (рис.19).


Рис.19. Выберите вкладку Fields, чтобы открыть окно Fields

Слева от области проектирования вместо панели Toolbox открывается окно Fields (поля), как показано на рис.20.


Рис.20. Окно Fields

Поля, указанные в нашем SQL запросе, появляются в окне Fields.

6. Выберите и перетащите поле Category из окна Fields в крайнюю левую ячейку строки Detail созданной таблицы.
7. Перетащите поле SubCategory в среднюю ячейку строки Detail справа от поля Category.
8. Перетащите поле Product к самой правой ячейке строки Detail справа от поля SubCategory.
9. Щелкните правой кнопкой мыши в верхней части самого правого столбца (в который было вставлено поле Product на предыдущем шаге), как показано на рис.21, чтобы открыть выпадающее меню.


Рис.21: Щелчок правой кнопкой мыши в верхней части столбца Product

10. Выберите Insert Column to the Right (вставить новый столбец справа) в выпадающем меню (обведено на вышележащем рис.21).
Появляется новый пустой столбец.

11. Перетащите поле List_Price в строку Detail нового столбца, справа от поля Product, вставленного ранее.
Таблица теперь выглядит, как показано на рис.22.


Рис.22. Таблица с полями в области проектирования

12. Нажмите вкладку Preview в верхней части Report Designer.
Report Designer выдает отчет для предварительного просмотра, часть которого показана на рис.23.


Рис.23. Часть предварительного просмотра отчета

Таким образом, мы создали наш простой отчет, взяв данные из нашего источника, используя запрос, и поместив их в область проектирования, используя таблицу.
Завершение создания отчета требует еще нескольких шагов, которые мы разберем в следующей статье, "Фаза разработки: Обзор. Часть II". Мы присоединим наш файл отчета, чтобы установить различные свойства, группировку, и другие настройки для удовлетворения потребностей пользователей, ради которых мы и создали наш отчет.

13. Выберите в главном меню File --> Save Report1.rdl as ... (сохранить отчет), как это показано на рис.24.


Рис.24. Сохранение файла отчета

Появляется диалоговое окно Save File (сохранить файл).

14. Перейдите к месту сохранения файла.
15. Введите RS02_Authoring в поле ввода File name (название файла) в диалоговом окне.
16. Нажмите кнопку Save (сохранить) для сохранения файла с введенным именем.
Мы видим, что файл появился в окне Solution Explorer (верхний правый угол Report Designer) в каталоге отчетов. Это показывает, как мы можем управлять множеством отчетов в проекте, основанных на той же комбинации источник данных / запрос. В следующих статьях мы увидим, насколько полезным это может оказаться при создании одинаковых отчетов на предприятии, имеющих различия только в фильтрах среди множества других свойств.

17. Выберите в главном меню File --> Exit для выхода.
18. Сохраните проект и связанные с ним файлы.

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

[В начало]

Краткий обзор и заключение ...

В этой статье мы начали обзор первой из нескольких главных фаз жизненного цикла отчетности предприятия. Статья была предварена разъяснением как целей этой серии статей о системе MSSQL Server 2000 Reporting Services, так и целей статей начального обзора фаз создания отчетов, и общим описанием фазы разработки. Далее мы начали с рассмотрения шагов разработки пустого отчета для прохождения по основным путям создания отчетов, к которым мы еще не раз вернемся в следующих статьях.
После общего рассмотрения фазы разработки мы начали практический пример создания табличного отчета. Сначала мы создали проект отчета для размещения в нем файла отчета, который был создан следующим. В файле отчета мы создали соединение с источником данных и простой SQL запрос для использования нашего источника данных, OLTP базы данных AdventureWorks2000. Затем мы спроектировали внешний вид и добавили данные из набора данных, полученного из запроса.

[В начало]


Перевод: Виталия Степаненко  2004г.

ПУБЛИКАЦИИ

Скачать электронную карту Ангарска бесплатно
Сайт управляется системой uCoz