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

ПУБЛИКАЦИИ  

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

Содержание

О серии ...

Это третья статья серии о 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, хотя компоненты предыдущих версий будут работать практически также в большинстве случаев.

[В начало]

Вступление

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

  • Выполнение изменений во внешнем виде нашего существующего отчета, RS02_Authoring;
  • Выполнение группировки данных в отчете;
  • Изменение набора данных отчета;
  • Фильтрация набора данных;
  • Добавление промежуточных итогов и общего итога;
  • Установка свойств и параметров компонентов отчета;
  • Просмотр результатов нашей работы.

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

[В начало]

Возвращение к фазе разработки

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

[В начало]

Открытие отчета из первой части

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

1. Нажмите Пуск.

2. Выберите Microsoft Visual Studio .NET 2003 в списке программ. На моем компьютере это выглядит, как показано на рисунке 1.


Рис.1. Запуск Microsoft Visual Studio .NET 2003...

3. Нажмите Microsoft Visual Studio .NET 2003, чтобы запустить приложение.
Откроется среда разработки Microsoft Development Environment.

4. Выберите File --> Open --> Project из главного меню, как показано на рис.2.


Рис.2. Открытие проекта

5. Откройте проект RS002-1, который мы создали в первой части (см. параграф "Создание проекта отчета" в главе " Создание проекта отчета и файлов отчета").
В диалоговом окне открытия проекта мы видим два относящихся к проекту файла - RS002-1.rptproj (файл проекта) и RS002-1.sln (решение), как показано на рис.3.


Рис.3. Файлы, относящиеся к проекту отчета

Проекты и решения являются контейнерами в Visual Studio .NET для управления файлами. Объекты, которые содержатся в этих контейнерах, называются элементами.
Проект состоит из набора файлов. При создании проекта обычно создаются один или несколько файлов, содержимое которых зависит от типа проекта. В то время как многие элементы файла проекта больше относятся к Visual Studio .NET, чем к дизайнеру отчетов, полезно знать, что проекты отчетов (проекты Visual Studio .NET, относящиеся к Reporting Services), содержат отчеты, источники данных и ресурсы. Проекты принадлежат решениям, которые содержат один или несколько проектов помимо других компонентов.
На заметку: дополнительная информация о Visual Studio .NET и ее компонентах / процессах находится в Visual Studio .NET Books Online.

6. Выберите проект РС002-1.rptproj.

7. Нажмите Open.
Откроется проект.

Вкладка Solution Explorer с отчетом RS02_Authoring.rdl показана на рис.4.


Рис.4. Файл определения отчета на вкладке Solution Explorer.

RS02_Authoring.rdl - это файл определения отчета, в котором хранится наша работа из первой части на языке определения отчетов ("Report Definition Language" или "rdl").

8. Сделайте двойной щелчок на RS02_Authoring.rdl на вкладке Solution Explorer (верхний правый угол среды разработки).
Откроется файл определения отчета RS02_Authoring.rdl с активной вкладкой внешнего вида по умолчанию. Область проектирования выглдит, как показано на рис.5.


Рис.5. Вкладка внешнего вида и область проектирования

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

[В начало]

Выполнение группировки и сортировки

Расмотрим сначала важную способность любого приложения отчетности - группировку. Мы можем группировать наши данные по полям или по выражениям в табличной, списочной или матричной областях данных (с другими областями данных мы будем работать в дальнейшем). Группировки обеспечивают двойную роль, давая нам возможность определить секции в таблице для достижения целей отчета и определить области верхнего и нижнего заголовков отчета, в которые могут быть добавлены промежуточные итоги и / или выражения, как это будет показано далее.
Давайте добавим логическую группировку в наш отчет, в котором представляемые нами товары будут сгруппированы по категориям и подкатегориям, чтобы отвечать гипотетическим бизнес-требованиям, описанным пользователями отчета. Продолжим, выполнив следующие шаги:

1. Щелкните на таблице (в любом месте) на вкладке внешнего вида, чтобы появились заголовки колонок и строк (называемые "handles" в дизайнере отчетов) в верхней и левой частях таблицы, как показано на рис.6.


Рис.6. Таблица с заголовками колонок и строк

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

2. Щелкните правой кнопкой мыши на заголовке ручке любой из трех строк таблицы.
Появляется контекстное меню.

3. Выберите Insert Group (добавить группировку) из контекстного меню, как это показано на рис.7.


Рис.7. Выбор пункта контекстного меню Insert Group (добавить группировку)

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

4. Введите "Category" в поле ввода Name (название).
Это даст имя создаваемой нами группировке.

5. Щелкните мышью на первой строке в списке Group On под полем ввода Name справа от символа звездочки ("*").
Щелчок на этой строке вызывает выпадающий список, из которого мы можем выбрать элемент данных, по которому хотим произвести группировку.

6. Выберите =Fields!Category.Value из выпадающего списка.
Вкладка General (общая) диалогового окна группировки и сортировки при этом будет выглядеть, как показано на рис.8.


Рис.8. Диалоговое окно группировки и сортировки - вкладка General (общая) с нашими изменениями

7. Выберите вкладку Sorting (сортировка).

8. Щелкните мышью по первой строке в списке Sort On в столбце Expression (выражение).
Щелчок на этой строке вызывает выпадающий список, такой же, какой мы видели на вкладке General, из которого мы можем выбрать выражение, по которому хотим произвести сортировку.

9. Выберите =Fields!Category.Value из выпадающего списка.

10. Значение Ascending в столбце Direction (направление сортировки) оставьте как есть.
Мы определили сортировку по названию товара в алфавитном порядке.
Вкладка сортировки диалогового окна группировки и сортировки теперь выглядит, как показано на рис.9.


Рис.9. Диалоговое окно группировки и сортировки - вкладка Sorting (сортировка) с нашими изменениями

11. Нажмите кнопку OK.

Диалоговое окно группировки и сортировки закрывается и мы возвращаемся в таблицу, показанную на рис.10.


Рис.10. Таблица с верхним и нижним заголовками

Отметим, что в таблицу были добавлены и верхний, и нижний заголовки (сравните рисунок с рис.6, и Вы заметите, что две новые строки были добавлены для верхнего и нижнего заголовков).
Добавим еще одну группировку по подкатегории, которая будет выполнятся внутри созданной группировки по категории.

12. Щелкните правой кнопкой мыши на заголовке строки еще раз.
Появится контекстное меню.

13. Выберите Insert Group (добавить группировку) из контекстного меню.
Появляется диалоговое окно группировки и сортировки с вкладкой General (общая) по умолчанию.

14. Введите "SubCategory" в поле ввода Name (название) для обозначения новой группировки.

15. Щелкните мышью по первой строке в списке Group On под полем ввода Name справа от символа звездочки ("*").

16. Выберите =Fields!SubCategory.Value из выпадающего списка.

17. Выберите вкладку Sorting (сортировка).

18. Щелкните по первой строке в списке Sort On в столбце Expression (выражение).

19. Выберите =Fields!SubCategory.Value из выпадающего списка.

20. Значение Ascending в столбце Direction (направление сортировки) оставьте как есть.

21. Нажмите кнопку OK.

Диалоговое окно группировки и сортировки закрывается и мы возвращаемся в таблицу. Посмотрим на результаты нашей работы в окне предварительного просмотра отчета.

22. Выберите вкладку Preview (предварительный просмотр) рядом с вкладкой Layout (внешний вид).
Отчет выводится в окне предварительного просмотра, как это частично показано на рис.11.


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

Видно, что товары сгруппированы по категориям и подкатегориям. Чтобы продолжить, нам нужно получать больше данных из нашего источника данных. Наличие только списочной цены (List Price) продаваемых товаров вряд ли является типичным бизнес-требованием. Вот если мы сможем вывести общие продажи по каждой категории и подкатегории в нашем отчете, то это будет "весомым вкладом" для пользователей.

[В начало]

Изменение набора данных

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

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

2. Нажмите кнопку Generic Query Designer в верхней части вкладки Data.
Кнопка Generic Query Designer показана на рис.12.


Рис.12. Кнопка Generic Query Designer

Открывается дизайнер запросов, как показано на рис.13.


Рис.13. Дизайнер запросов - начальный вид

Дизайнер запросов немного напоминает дизайнер в MS Access. Этот инструмент скорее всего станет популярным у тех, кто не готов писать SQL запросы. Мне нравится использовать дизайнер, даже когда я могу легко написать запрос, потому что он обеспечивает наглядный внешний вид источника данных и простую для понимания визуализацию связей между таблицами в источнике данных.
Мы добавим таблицу Sales Order Detail, которая содержит данные о сделках с товарами. Хотя мы могли бы сделать отчет очень сложным, в целях нашего обзора мы только рассмотрим создание промежуточных и общих итогов, опустив большое количество других возможностей, которые были бы необходимы для создания отчета уровня предприятия, таких, как ограничения по датам, фильтры, параметры, и др. Для нашего обзора мы добавим только те значения, которые нужны для создания итогов в отчете.

3. Нажмите кнопку Add Table (добавить таблицу) в верхней части вкладки Data.
Кнопка Add Table показана на рис.14.


Рис.14. Кнопка Add Table

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

4. Выберите таблицу Sales Order Detail.
Окно Add Table с выбранной таблицей будет выглядеть, как показано на рис.15.


Рис.15. Выбор таблицы Sales Order Detail

5. Нажмите кнопку Add, чтобы добавить выбранную таблицу в дизайнер запросов.

6. Нажмите кнопку Close, чтобы закрыть диалоговое окно и вернуться в дизайнер запросов.
В дизайнере запросов добавится таблица Sales Order Detail, автоматически дополненная отношением, как показано на рис.16.


Рис.16. Дизайнер запросов с добавленной таблицей

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

7. Сдвиньтесь к последним столбцам таблицы Sales Order Detail и установите флажок слева от столбца LineTotal, как показано на рис.17.


Рис.17. Выбор столбца таблицы для включения его в набор данных

Это помечает столбец для его включения в набор данных. Мы видим, что столбец сразу появляется в области редактирования под окном диаграмм.

8. Нажмите кнопку Run над вкладкой Data, как показано на рис.18.


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

Выполняется измененный запрос, и мы видим новый результирующий набор данных в окне результатов под окном запросов. Мы также легко можем увидеть изменения в SQL запросе, т.к. я использовал букву "T" для наименования таблиц в начальном запросе (это соглашение, которое многие используют в SQL) и оставил стандартное название добавленного столбца.
Дизайнер запросов, с его множеством окон, добавляет возможности и преимущества, которые я едва видел в других приложениях отчетности предприятий, и эти приложения скоро будут заменены Reporting Services во многих организациях. Легкость, с которой мы можем реализовать наши идеи в этой небольшой "лаборатории", делает ее очень полезной - я иногда работаю с Reporting Services, чтобы проверить идеи, которые в стандартном отчете нельзя сделать в принципе. Разработчики этого отличного инструмента явно ориентировались на функциональные возможности MSSQL Server 2000 Query Analyzer; мы это еще увидим в более поздних статьях.

[В начало]

Фильтрация набора данных

Давайте сделаем фильтрацию набора данных, чтобы сделать его меньше для нашего отчета.

1. На вкладке Data нажмите на кнопку "..." справа от выпадающего меню наборов данных, как показано на рис.19.


Рис.19. Нажмите на кнопку "..."...

Откроется диалоговое окно Dataset (набор данных), как показано на рис.20.


Рис.20. Диалоговое окно Dataset

2. Выберите вкладку Filters (фильтрация).

3. Щелкните мышью на первой строке столбца Expressions.
Станет доступным выпадающее меню.

4. Выберите следующий из доступных вариантов в выпадающем меню Expressions:
=Fields!Category.Value

5. В столбце Operator той же записи выберите знак "=", если он не выбран

6. Выберите <Expression..." в столбце Value той же записи.
Откроется редактор выражений.

7. Введите следующее слово в список:
Clothing

Мы определили, что хотим отфильтровать набор данных, чтобы вернуть только категорию товаров Clothing (одежда). Заметьте, что это фильтрация набора данных и она влияет только на отчеты, в которых используется этот набор данных; это не фильтрация источника данных, как мы увидим далее.

Откроется диалоговое окно Edit Expression (редактирование выражения), как показано на рис.21.


Рис.21. Диалоговое окно Edit Expression

8. Нажмите кнопку OK, чтобы подтвердить введенное выражение и закрыть диалоговое окно.
Мы возвращаемся во вкладку фильтрации диалогового окна набора данных, которое теперь выглядит, как показано на рис.22.


Рис.22. Диалоговое окно набора данных - вкладка фильтрации

9. Нажмите кнопку OK еще раз.
Диалоговое окно набора данных закрывается, и мы видим вкладку Data дизайнера отчетов.

10. Нажмите на кнопку Run, чтобы увидеть результирующий набор данных.
В окне результатов появляется результирующий набор данных. Мы видим не только категорию Clothing, но и все другие из начального запроса. Как я упоминал ранее, это произошло из-за того, что фильтр находится между набором данных (который мы видим в окне результатов) и самим отчетом.

11. Выберите вкладку предварительного просмотра, чтобы увидеть наш отчет.
Начинается построение отчета, и мы видим, что категория Clothing - единственная, возвращенная в отчете, как это частично показано на рис.23.


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

Наше понимание фильтрации подтвердилось.

12. Выберите вкладку внешнего вида Layout, чтобы вернуться в область проектирования.

Новый столбец, Line Total, появился в окне столбцов и доступен для выбора, как показано на рис.24.


Рис.24. Столбец Line Total теперь тоже доступен для выбора

Теперь мы можем добавить столбец Line Total в отчет. Но сначала сохраним нашу работу, чтобы освободить системные ресурсы и избежать ошибок.

13. Выберите File --> Save RS02_Authoring.rdl As ... в главном меню.

14. Перейдите к месту сохранения в диалоговом окне Save File As.

15. Назовите файл следующим образом:
RS03_Authoring.rdl

Теперь добавим новые поле данных и промежуточный итог.

[В начало]

Изменение отчета - добавление поля данных, промежуточных итогов и общего итога

Мы добавили столбец в отчет в первой части. Мы должны повторить это действие, чтобы создать место для нашего нового поля Line Total.

1. Щелкните правой кнопкой мыши на серо-синий заголовок столбца List Price.

2. Выберите Insert Column to the Right (вставить столбец справа) из контекстного меню.
Появится новый пустой столбец в правой части таблицы.

3. Выберите Line Total в окне полей.

4. Перетащите выделенное название столбца в строку Details (строка между верхним и нижним заголовками, заполненная в других столбцах).

5. Отпустите выделенное название столбца над пустым столбцом.
В таблице появляется новый столбец.

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


Рис.25. Часть предварительного просмотра с новым столбцом Line Total

Теперь, когда имеется значение, которое важно для бизнес-процессов и которое можно просуммировать, давайте создадим сумму значений Line Total по подкатегориям и категориям.

7. Выберите вкладку Layout (внешний вид) еще раз, чтобы вернуться к таблице.

8. В третьем столбце таблицы во второй ячейке сверху введите (или вырежьте и вставьте) следующее:

=Fields!Category.Value & " : " &Fields!SubCategory.Value

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

9. Щелкните правой кнопкой мыши на пятой ячейке сверху в столбце Line Totals (самый правый столбец) - это ячейка, относящаяся к строке, расположенной под строкой Details.

10. Выберите Expression из контекстного меню.
Снова открывается Expression Editor (редактор выражений).

11. Раскройте пункт Datasets в дереве Fields в левой части диалогового окна.

12. Раскройте пункт AdventureWorks2000, находящийся в ветви Datasets.

13. Выберите Sum (Line Total) из пунктов ветви AdventureWorks2000.

14. Нажмите на кнопку Insert (вставить), чтобы добавить пункт Sum (Line Total) в Expression list (список выражений) в правой части диалогового окна.

15. Удалите запятую и "AdventureWorks2000" после "Line Total.Value" из выражения, чтобы осталось следующее:

=Sum(Fields!LineTotal.Value)

Диалоговое окно Edit Expression (редактирование выражений) должно выглядеть так, как показано на рис.26.


Рис.26. Диалоговое окно Edit Expression с добавленным выражением

На заметку: Все вышеупомянутое может так же легко быть введено вручную; мы применили редактор выражений только для того, чтобы показать, как его использовать при создании выражений.

16. Поместите то же самое выражение в две ячейки под ячейкой, которую мы только что заполнили (шестая и седьмая строки столбца Line Totals).
Выражения могут быть вырезаны и вставлены, введены или созданы, с использованием редактора выражений, как мы это увидели ранее. Мы просто решили, что хотим добавить итоги для значений столбца Line Totals, и что они должны появиться в нижних заголовках подкатегорий и категорий, как и в нижнем заголовке всего отчета (самая нижняя строка). Итоговое выражение во всех строках одинаковое, потому что Reporting Services возвратит итоги по той группе данных, где расположено выражение.
Как только будут заполнены две дополнительные ячейки, таблица будет выглядеть, как показано на рис.27.


Рис.27. Таблица с добавленными выражениями промежуточных и общего итогов

Давайте проверим результаты нашей работы еще раз при помощи функции предварительного просмотра.

17. Выберите вкладку предварительного просмотра.

После окончания формирования предварительного просмотра отчета (в верхней части вкладки предварительного просмотра виден счетчик страниц - его значение должно составить около 405 страниц) мы перейдем к последней странице. Здесь в одном месте собраны все три общих итоговых значения (итоги подкатегорий и категорий и общий итог отчета).
Счетчик страниц показан на рис.28 (кнопка перехода к последней странице обведена кружком).


Рис.28. Счетчик страниц с обведенной кнопкой перехода к последней странице

18. Нажмите на кнопку перехода к последней странице отчета.

19. Переместитесь в конец последней страницы.

Отчет должен быть похож на тот, который частично показан на рис.29 (Вам, возможно, понадобится уменьшить ширину столбцов на вкладке внешнего вида, чтобы получить похожее представление отчета).


Рис.29. Часть последней страницы отчета

[В начало]

Улучшение внешнего вида отчета при помощи форматирования

Редактирование и изменение свойств

Во время переговоров о разработке отчетности и во время лекций и семинаров я постоянно заостряю внимание на том, что нужно избегать искушения отформатировать отчет до того, как значительная часть данных будет размещена в нем. Форматирование гораздо более эффективно, когда выполняется за один шаг; результаты раннего форматирования, такие, как установка ширины столбцов или определение форматов чисел, часто переделываются, и множество таких мелких шагов добавляет значительное время к общему времени создания информационного продукта.
Давайте выполним несколько шагов по форматированию отчета, чтобы дать обзор форматирования в фазе разработки. Имейте в виду, что мы углубимся в более сложные понятия (такие, как условное форматирование) в статьях, где это имеет смысл, и что в обзорных статьях мы рассмотрим только некоторые особенности форматирования. Очевидно, что диалоговые окна свойств, которые мы рассматриваем среди множества других, содержат расширенные возможности, не уступающие или превышающие возможности приложений отчетности, которые доминировали на рынке до недавнего времени.
На заметку: ожидайте услышать протестующие голоса маркетологов тех компаний, которые производят доминирующие сейчас на рынке приложения отчетности, которые попытаются представить Reporting Services как "ограниченное решение". На примере форматирования, как и на примере множества других возможностей, которые рассматриваются в этой серии, можно увидеть, что возможности Reporting Services не уступают или превышают возможности других предложений.
Сравнение возможностей Reporting Services будет произведено в следующих статьях, чтобы показать, что Reporting Services не уступает, а на самом деле превышает предложения производителей-"Больших сестер" во всех отношениях. Мое мнение - как только маркетологи этих компаний поймут, что пользователи способны видеть различия в функциональности, свидетельствующие не в пользу их продуктов, следующим их утверждением станет то, что нам нужны их продукты для выполнения "специализированных" функций - в дополнение к Reporting Services. Это явится индикатором того, что предсказанная мной неизбежная игра в расширения и дополнения к Reporting Services началась всерьез.

1. Выберите вкладку Layout (внешний вид), чтобы вернуться в область проектирования.

2. Щелкните правой кнопкой мыши на ячейке столбца Line Total и строки Detail таблицы (средняя строка, четвертая сверху в столбце Line Total).

3. Выберите пункт Properties (свойства) из контекстного меню, как показано на рис.30.


Рис.30. Выбор пункта Properties из контекстного меню

Появляется диалоговое окно Textbox Properties (свойства поля ввода).

4. Выберите Standard radio button (стандартный переключатель), на правой стороне диалогового окна.

5. Выберите Number в списке слева под боксе списка под переключателем.

6. Выберите следующие из числовых форматов в списке справа:

1,234.00

Появляется диалоговое окно свойств поля ввода, как показано на рис.31.


Рис.31. Диалоговое окно свойств поля ввода для ячейки Line Total - Detail

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

7. Нажмите на кнопку OK.

8. Откройте диалоговое окно Properties (свойства) промежуточного итога столбца Line Total в нижнем заголовке подкатегории (созданном нами ранее во время группировки товаров по подкатегориям) - это ячейка под ячейкой Line Total - Detail, которую мы форматировали ранее.

9. Выберите Standard: Number и такой же формат, какой мы использовали для предыдущей ячейки.

10. Нажмите на кнопку Advanced слева вверху диалогового окна.
Появляется диалоговое окно Advanced Textbox Properties (расширенные свойства поля ввода) с вкладкой General (общие) по умолчанию.

11. Выберите вкладку Font (шрифт).

12. В переключателе Weight выберите Semi-bold (полужирный).

13. В переключателе Decorations (оформления) выберите Overline.
Диалоговое окно Advanced Textbox Properties теперь выглядит, как показано на рис.32.


Рис.32. Диалоговое окно Advanced Textbox Properties для ячейки Line Total - SubCategory Footer

14. Нажмите на кнопку OK, чтобы закрыть диалоговое окно Properties.

15. Откройте диалоговое окно Properties (свойства) промежуточного итога столбца Line Total в нижнем заголовке категории (созданном нами ранее во время группировки товаров по категориям) - это ячейка под ячейкой Line Total - SubCategory Subtotal, которую мы форматировали ранее.

16. Выберите Standard: Number и такой же формат, какой мы использовали для предыдущей ячейки.

17. Нажмите на кнопку Advanced слева вверху диалогового окна.
Появляется диалоговое окно Advanced Textbox Properties (расширенные свойства поля ввода) с вкладкой General (общие) по умолчанию.

18. Выберите вкладку Font (шрифт).

19. В переключателе Weight выберите Semi-bold (полужирный).

20. В переключателе Decorations (оформления) выберите Overline.

21. Нажмите на кнопку OK, чтобы закрыть диалоговое окно Properties.
Установки свойств здесь такие же, как и для предыдущего поля ввода. Давайте их немного изменим для общего итога отчета, чтобы выделить его для пользователя.

22. Откройте диалоговое окно Properties (свойства) общего итога столбца Line Total в нижнем заголовке отчета (стандартный элемент табличного отчета) - это ячейка под ячейкой Line Total - Category Subtotal, которую мы форматировали ранее.

23. Выберите стандартный переключатель в правой части диалогового окна.

24. Выберите Currency (валюта) в списке слева под переключателем.

25. Выберите следующий (заданный по умолчанию) числовой формат из списка справа:

1 234.12 $

Диалоговое окно Textbox Properties (свойства поля ввода) теперь выглядит, как показано на рис.33.


Рис.33. Диалоговое окно Textbox Properties ячейки Line Total - Report Footer

26. Нажмите на кнопку Advanced слева вверху диалогового окна.
Появляется диалоговое окно Advanced Textbox Properties (расширенные свойства поля ввода) с вкладкой General (общие) по умолчанию.

27. Выберите вкладку Font (шрифт).

28. В переключателе Weight выберите Bold (жирный).

29. В переключателе Decorations (оформления) выберите Underline.

Диалоговое окно Advanced Textbox Properties (расширенные свойства поля ввода) теперь выглядит, как показано на рис.34.


Рис.34. Диалоговое окно Advanced Textbox Properties ячейки Line Total - SubCategory Footer

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

Теперь взглянем на альтернативные средства работы со свойствами, как это делали с форматами столбцов.

31. Щелкните на сине-серой области слева от верхней строки таблицы.

Появится окно свойств строки в правом нижнем углу среды разработки. Если окно все же не появится, нажмите на кнопку вызова окна свойств (см. рис.35) на панели инструментов.


Рис.35. Кнопка вызова окна свойств

32. Раскройте пункт Font (шрифт), расположенный в верхней секции Appearance (внешний вид) окна свойств, нажав на знак "+" слева от пункта Font.
Пункт Font раскрывается в набор установок компонентов.

33. Щелкните мышью по переключателю справа от свойства FontWeight, чтобы активировать его.

34. Выберите Bold (жирный шрифт).

35. Щелкните мышью по переключателю справа от свойства TextAlign, чтобы активировать его.

36. Выберите Center (центрирование), чтобы расположить заголовок категории по центру.

37. Щелкните мышью по переключателю справа от свойства TextDecoration, чтобы активировать его.

38. Выберите Underline (подчеркивание), чтобы подчеркнуть заголовки столбцов.

Появится секция Appearance (внешний вид) окна свойств, как показано на рис.36.


Рис.36. Секция Appearance окна свойств - наши настройки обведены

Окно свойств обеспечивает превосходный выбор для настройки форматирования и других свойств строк, столбцов и всего отчета.

39. Щелкните на третьей ячейке сверху в столбце Product, в которую ранее было добавлено составное название для разделения подкатегорий в отчете.

40. Перетащите содержимое ячейки в первую ячейку той же строки (т.е. в заголовок группировки по подкатегориям).

41. Щелкните правой кнопкой мыши на ячейке.

42. Выберите Properties из контекстного меню.

43. В открывшемся диалоговом окне Textbook Properties нажмите кнопку Advanced.

44. Выберите вкладку Font в открывшемся диалоговом окне Advanced Textbook Properties.

45. Установите размер шрифта в 11 пунктов.

46. Установите Style в Italic (курсив).

47. Установите Weight в Bold (жирный).

Теперь диалоговое окно Advanced Textbook Properties выглядит так, как показано на рис.37.


Рис.37. Диалоговое окно Advanced Textbook Properties ячейки подкатегории

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

49. Выберите ячейку ниже только что отформатированной ячейки (четвертая ячейка в первом столбце).

Появится переключатель, как показано на рис.38.


Рис.38. Выбор ячейки Category - Detail

50. В окне свойств в секции Appearance (внешний вид) раскройте свойство Visibility (видимость).

51. Выберите True в переключателе справа от свойства Hidden (скрыть).

После установки свойства Visibility секция Appearance в окне свойств выглядит так, как показано на рис.39.


Рис.39. Установка свойства Visibility (видимость) в Hidden (скрыть)

52. Выберите ячейку в строке Detail столбца Subcategory справа от той ячейки, где мы только что установили свойство Visibility (см.рис.40).

53. Установите значение свойства Hidden в True, как это было сделано в предыдущей ячейке.

Мы скрыли избыточные поля данных, которые загромождали отчет. Добавим заголовки столбцам итогов подкатегорий и категорий.

54. Выберите пятую ячейку в первом столбце (Category).

55. В окне свойств в нижнем правом углу среды разработки (у Вас это окно может располагаться в другом месте; если оно не появилось, нажмите кнопку Properties для его вызова) введите следующее в поле ввода Value секции Data:

=Fields!SubCategory.Value & " SubCategory Total:"

56. Раскройте пункт Font в секции Appearance (внешний вид) окна свойств.

57. Выберите вкладку Font в диалоговом окне Advanced Textbox Properties.

58. Выберите шрифт Bold (жирный) в переключателе свойства Weight.

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


Рис.40. Изменения в окне свойств

59. Выберите шестую ячейку в первом столбце (Category).

60. В окне свойств введите следующее в поле ввода Value секции Data:

=Fields!Category.Value & " Category Total:"

61. Раскройте пункт Font секции Appearance (внешний вид) окна свойств.

62. Выберите вкладку Font диалогового окна Advanced Textbox Properties.

63. Выберите шрифт Bold (жирный) в переключателе свойства Weight.

Добавим название для строки общего итога отчета как последнюю модификацию этого обзора.

64. Щелкните правой кнопкой мыши на нижней ячейке первого столбца (Category).

65. Выберите Properties из контекстного меню.

66. Введите следующее в поле ввода Value диалогового окна Textbox Properties:
Общий итог отчета:

67. Нажмите на кнопку Advanced.

68. Выберите вкладку Font в диалоговом окне Advanced Textbox Properties.

69. Выберите шрифт Bold (жирный) в переключателе свойства Weight.

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

Давайте посмотрим результат нашей работы по форматированию и изменению других свойств.

71. Выберите вкладку предварительного просмотра.

72. После окончания формирования окна предварительного просмотра, нажмите кнопку Last Page (переход к последней странице).

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


Рис.41. Часть предварительного просмотра отчета - последняя страница

Отметим, что некоторые из возможностей форматирования не могут быть отражены так просто в предварительном просмотре отчета на экране, как в бумажных распечатках, и что различные варианты представления отчета также могут иметь влияние. Кроме того, ширина столбца может требовать настройки для того, чтобы сделать отчет более компактным. Это легко можно сделать, вернувшись на вкладку Layout (внешний вид).
Существует множество дополнительных настроек форматирования и других свойств, со многими из которых мы будем иметь дело во время обзоров MSSQL Server 2000 Reporting Services. А сейчас мы подведем итоги нашей работы и сохраним ее.

73. Выберите File --> Save RS02_Authoring.rdl As ...

74. Введите следующее в поле ввода File Name диалогового окна Save File As:

RS03_Authoring.rdl

75. Выберите File --> Exit, если желаете выйти из Visual Studio 2003 .NET.

[В начало]

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

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

[В начало]


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

ПУБЛИКАЦИИ

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