Опубликован: 09.09.2008 | Доступ: свободный | Студентов: 2107 / 346 | Оценка: 4.30 / 4.12 | Длительность: 08:30:00
ISBN: 978-5-94774-601-3
Самостоятельная работа 13:

Интеграция отчетов в Windows-приложения

Цель работы: Освоить технологию интегрирования и просмотра отчетов из Windows -приложений, а также настройки отчетов на этапе выполнения с использованием развитой объектной модели.

Общие сведения

Планирование приложения. Интеграция отчетов представляет собой простой способ добавления значимости приложению, она может стать важной услугой, предоставляемой вашим приложением. Прежде чем приступить к внедрению технологии .NET Crystal Reports в среду разрабатываемого Windows -приложения, нужно четко спланировать свои действия.

Прежде всего, необходимо располагать отчетом (или набором отчетов), с которым приложение будет работать. Необходимо составить план, как эти отчеты будут доставляться пользователям и в каких формах они должны быть представлены. В рамках среды Crystal Reports.NET реализован модуль просмотра с развитыми функциональными возможностями, который может быть вставлен в Windows -форму и использоваться для просмотра отчетов. Для каждого модуля просмотра разработана подробная объектная модель, позволяющая задавать источники отчетов, внешний вид самих модулей просмотра и устанавливать действия в ответ на различные события. Большинство приложений может использовать единственную Windows -форму, содержащую модуль просмотра Crystal Report Viewer, и просто передавать ему такие свойства, как источник данных для отчета и параметры настройки модуля просмотра. Подобная возможность позволяет творчески подходить к решению задачи выбора параметров настройки, которые в полной мере учитывают требования конечных пользователей. Параметры настройки модуля просмотра и предпочтения пользователя (или групп пользователей) можно хранить в специальной таблице или в XML -файле и во время просмотра отчета просто их активизировать.

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

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

Создание отчета

В лабораторной работе будет использоваться одна форма для демонстрации различных особенностей интеграции отчета с Winsdows -приложением.

Выбор корректной объектной модели. Для случая Windows -приложений на выбор предоставляются две различные объектные модели, в зависимости от конкретных потребностей. Первая из них, объектная модель модуля просмотра Windows -форм Crystal Reports Windows Forms Viewer (CrystalDecisions.Windows.Forms), содержит все функциональные средства, необходимые для просмотра отчета в модуле Crystal Reports Windows Forms Viewer. В их число входят средства, позволяющие устанавливать регистрационную информацию базы данных, передавать параметры и формулы выбора записей, управлять внешним видом модуля просмотра и осуществлять просмотр отчетов, включая отчеты, доступные через Web -службы формирования XML -отчетов ( XML Report Web Services ).

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

Для достижения полного контроля над отчетом и содержащимися в нем объектами и средствами следует отдать предпочтение объектной модели машины Crystal Reports Engine (CrystalDecisions.CrystalReports.Engine). Использование Crystal Reports Engine позволяет должным образом изменять даже наименьшие элементы отчета.

Важно отметить, что объектная модель машины Crystal Reports Engine не является автономной - она не имеет встроенных средств просмотра отчетов, и для собственно просмотра полагается на услуги модуля Crystal Reports Windows Forms Viewer.

Компания Crystal Decisions рекомендует использовать эти две объектные модели так, чтобы области их действия не перекрывались, и не применять свойства и методы обеих моделей одновременно. Например, если в рамках отчета устанавливается значение некоторого поля параметров через объектную модель Crystal Reports Engine, то не следует пытаться присваивать значение другому полю параметров с использованием объектной модели Crystal Reports Windows Forms Viewer. Необходимо выбирать одну объектную модель, учитывающую все требования, и придерживаться этой модели на протяжении всего процесса разработки отчета.

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

Для добавления нового отчета в приложение необходимо выбрать из меню команду Project | Add New Item (Проект | Добавить НОВЫЙ элемент) и Crystal Report из списка доступных шаблонов (рисунок 13.1).

Окно добавления в проект отчета

увеличить изображение
Рис. 13.1. Окно добавления в проект отчета

Введите CryReportEmployee.rpt в поле имени и щелкните кнопкой мыши на Add (Добавить), чтобы включить новый отчет в проектируемое приложение. Создается специальная вкладка для этого отчета, которая во время построения отчета позволяет обращаться к интегрированному конструктору отчетов Project Designer и открывается окно галереи отчетов Crystal Report Gallery (рисунок 13.2).

В данном окне будем использовать помощник построения отчетов Reports Wizard (радиокнопка Using the Report Wizard в группе переключателей Create a New Crystal Report Document -Создать новый документ Crystal Reports ). Из доступных экспертов выберем Standard (Стандартный отчет), который является наиболее общим. Данный эксперт позволяет строить колоночные отчеты, которые обладают такими функциональными возможностями, как группирование, сортировка, суммирование. Этот эксперт позволяет включать в отчет диаграммы, использовать заданное множество предопределенных стилей, фильтров для записей, он содержит такие современные аналитические средства, как TopN, BottomN (например, отчеты типа "Первые 10" или "Последние 10").

Диалоговое окно галереи Crystal Report Gallery

Рис. 13.2. Диалоговое окно галереи Crystal Report Gallery

Для вызова эксперта стандартных отчетов необходимо выбрать в списке Choose an Expert (Выберите эксперт) элемент Standard (Стандартный отчет) в окне Crystal Report Gallery (рисунок 13.2) и щелкнуть на кнопке "ОК".

Далее открывается окно Data помощника Standard Report Creation Wizard. (рисунок 13.3)

Диалоговое окно эксперта стандартных отчетов

Рис. 13.3. Диалоговое окно эксперта стандартных отчетов

Выберите таблицы Empoyee и JobRole (рисунок 13.4).

Диалоговое окно эксперта стандартных отчетов с добавленными таблицами

Рис. 13.4. Диалоговое окно эксперта стандартных отчетов с добавленными таблицами

При вставке в отчет несколько таблиц, в окне Standard Report Creation Wizard появляется вкладка Link (Связи), которая позволяет задать (просмотреть) способ объединения этих таблиц или представлений (рисунок 13.5).

Вкладка Link диалогового окна помощника стандартных отчетов

увеличить изображение
Рис. 13.5. Вкладка Link диалогового окна помощника стандартных отчетов

Далее необходимо выбрать в таблицах поля, которые будут отображаться в создаваемом отчете. Необходимо перейдите на вкладку Fields (Поля) и с помощью кнопки "Далее" сформировать в списке Fields to Display список полей, включаемых в отчет (рисунок 13.6). Для этого нужно выбрать то или иное поле, выделив его в левом списке, а затем при помощи кнопки со стрелками переместить его в список, находящийся справа.

Поле отображается в списке с использованием нотации TableName.FieldName (ИмяТаблицы.ИмяПоля), и если требуется просмотреть содержимое или тип некоторого поля, можно воспользоваться кнопкой Browse Data (Просмотр) для вывода содержимого этого поля. Кроме того, доступна также кнопка Find Field (Найти), с помощью которой можно найти заданное поле в длинных списках полей.

Выбранные поля для включения в отчет

увеличить изображение
Рис. 13.6. Выбранные поля для включения в отчет

В разрабатываемый в настоящий момент отчет мы помещаем следующие поля.

  • EmployeeSurName (фамилия сотрудника);
  • EmployeeName (имя сотрудника);
  • EmployeePatronymic (отчество сотрудника);
  • EmployeeRoleName (должность сотрудника);
  • EmployeeStatus (статус сотрудника);
  • EmployeeAccess (уровень доступа сотрудника);
  • NetName (сетевое имя);
  • Birthday (дата рождения);
  • FirstDate (дата приема на работу).

Вместе с каждым полем в отчет добавляется и соответствующий заголовок, который помещается в заголовок страницы. В текстовом поле, помеченном как Column Heading (Заголовок столбца), можно изменить заголовок, установленный по умолчанию (обычно это имя поля), либо же можно отредактировать все заголовки позже, в окне конструктора отчетов.

Последний шаг помощника Standard Report Creation Wizard предполагает выбор конкретного стиля разрабатываемого отчета на вкладке Report Style (рисунок 13.7).

Диалоговое окно Report Style помощника Standard Report Creation Wizard со списком доступных стилей отчета

увеличить изображение
Рис. 13.7. Диалоговое окно Report Style помощника Standard Report Creation Wizard со списком доступных стилей отчета

Завершающий шаг работы в эксперте Standard Expert заключается в выполнении щелчка на кнопке Готово, в результате чего проектируемый отчет открывается в конструкторе Report Designer, который является частью интегрированной среды разработки Visual Studio .NET (рисунок 13.8).

Окно конструктора Report Designer

увеличить изображение
Рис. 13.8. Окно конструктора Report Designer

Полученный отчет необходимо сохранить, щелкнув кнопкой мыши на пиктограмме Save (Сохранить) или Save All (Сохранить все) в среде Visual Studio .NET.

Отредактируйте шапку отчета в соответствии с рисунком 13.9.

Окно конструктора с отредактированным отчетом

увеличить изображение
Рис. 13.9. Окно конструктора с отредактированным отчетом
Анна Иваненко
Анна Иваненко

В самостоятельной работе 8 написано: "В пункте "Server name" задаем имя сервера, которое необходимо узнать у преподавателя". Где узнать это имя?

Вячеслав Шестивский
Вячеслав Шестивский

Вроде всё выставил верно, но при клике на "Сотрудники", меню из FormEmplyee не вставляется в меню главного окна а висит в дочернем окне снизу.  Как поправить?