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

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

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

Создайте в проекте новую форму и дайте ей имя FormReport. Свойству Text данной формы присвойте значение "Отчет". Для предварительного просмотра построенного отчета к форме потребуется добавить модуль просмотра Crystal Reports Viewer, в котором в качестве источника отчета ( Report Source ) следует указать проектируемый отчет.

Откройте файл формы FormReport.cs в режиме конструктора. Выберите форму и назначьте свойству Title (Заголовок) в окне свойств значение "Отчет".

Перетащите на форму элемент CrystalReportViewer из раздела CrystalReport окна инструментов Toolbox - (рисунок 13.10).

Окно Toolbox c элементом CrystalReportViewer

Рис. 13.10. Окно Toolbox c элементом CrystalReportViewer

Измените значение свойства привязки Dock (Стыковка) на Fill (Заполнить), чтобы модуль просмотра отчетов CrystalReportViewer заполнил всю страницу (рисунок 13.11). Можно также определить поля вокруг пристыкованного модуля просмотра, соответствующим образом установив набор свойств в группе DockPadding (Заполнение стыковки), в результате чего вокруг модуля просмотра появится заданное обрамление в виде пустого пространства.

Привязка созданного отчета к модулю просмотра отчетов осуществляется путем добавления к форме FormReport.cs компонента ReportDocument. Встраиваемые в приложение отчеты могут быть нетипизированные и строго типизированные.

Внешний вид формы с модулем просмотра отчетов

увеличить изображение
Рис. 13.11. Внешний вид формы с модулем просмотра отчетов
Окно Toolbox c элементом ReportDocument

увеличить изображение
Рис. 13.12. Окно Toolbox c элементом ReportDocument

В результате этих действий будет выведено диалоговое окно (рисунок 13.13), с выпадающим списком всех доступных отчетов, которые были добавлены в приложение. Необходимо выбрать отчет CryRepEmployee, что приведет к созданию документа строго типизированного отчета.

Создание строго типизированного отчета с использованием окна выбора вида компонента ReportDocument

Рис. 13.13. Создание строго типизированного отчета с использованием окна выбора вида компонента ReportDocument

Подготовительные работы по созданию модуля отчета в проекте на этом закончены.

Теперь необходимо вызвать отчет при загрузке формы FormReport.

Для этого необходимо в классе FormReport объявить и создать объекты классов DataSetEmployee, EmployeeTableAdapter, JobTitleTableAdapter и создать метод EmployeeFill для заполнения данными объект DataSet из базы данных (см. "Отображение данных на экранной форме" ).

Далее необходимо при загрузке формы FormReport заполнить данными DataSet, задать источник данных для объекта crystalReportEmployee1 класса ReportDocument и источник отчета для объекта crystalReportViewer1 класса CrystalReportViewer. Код метода FormReport_Load приведен ниже.

private void FormReport_Load(object sender, EventArgs e)
{
    EmployeeFill();
    crystalReportEmployee1.SetDataSource(dsEmployee);
    crystalReportViewer1.Refresh();
    crystalReportViewer1.ReportSource = crystalReportEmployee1;
}

После запуска созданного приложения на выполнение и загрузки формы модуль просмотра Crystal Report Viewer формирует и отображает отчет, указанный в свойстве ReportSource.

Для подключения формы FormReport к приложению в меню формы FormEmployee необходимо к пункту меню "Отчет" добавить подпункт "По всем сотрудникам", которому присваивается имя reportToolStripMenuItem2 (рисунок 13.14).

Добавление подпункта меню "По всем сотрудникам" формы FormEmployee

увеличить изображение
Рис. 13.14. Добавление подпункта меню "По всем сотрудникам" формы FormEmployee

В текст программы класса FormEmployee.cs необходимо добавить код обработчика события, возникающего при выборе подпункта меню "По всем сотрудникам". По данному пункту меню должен быть создан объект класса FormReport и выведено окно на экран дисплея.

После трансляции и запуска программы на выполнение при выборе пункта меню Отчет | По всем сотрудникам будет сформирован отчет "Список сотрудников" аналогичный, приведенному на рисунке 13.15.

Отчет "Список сотрудников"

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

Задание на лабораторную работу

  1. Изучить теоретический материал.
  2. Разработать отчет и интегрировать его с приложением.
  3. Протестировать работу приложения с отчетом.
  4. Продемонстрировать работу приложения преподавателю.
Анна Иваненко
Анна Иваненко

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

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

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