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

Автор публикации:

Дата публикации:

Краткое описание: ...


Лабораторная работа№ 15

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

С.В. Каверин

Цель работы: Научиться создавать отчеты к базам данных в среде программирования Delphi используя экспортирование данных в Excel.

Постановка задачи. Интерфейс рабочего окна формы «Отчет по товарам», приведен на рисунке 1.

[pic]

Рисунок 1 – Интерфейс окна формы «Отчет по товарам»

Отчет будет содержать шесть столбцов. Данные для отчета берутся из сетки DBGrid1, записи которой формируются SQL-запросом в DBQuery3 при создании Form6 (событие FormCreate). Запрос содержит семь полей из таблиц Товары, Поставщик и Поставка.

Код SQL-запроса (в название поля включается название таблицы):

[pic]

Поле Товары.Описание в Отчет не входит.

Значение полей выделенной курсором записи отображаются в компонентах DBEdit1- DBEdit6 и DBМемо1 (для поля Описание). В компонентах Label прописан поясняющий текст (синим и красным цветом).

Записи отсортированы по полю НаименованиеТовара.

1 Создание окна «Отчет по товарам»

Действия, проводимые ниже, более подробно рассматриваются в лабораторной работе №14.

1.1 Создаем Form6 (File -> New-> Form-Delphi), сохраняем как Unit6.

1.2 Устанавливаем свойство Form6.Caption = Отчет по товарам.

1.3 Знакомим Form6 с Form1 и DatMod (с помощью File->Use Unit..).

1.4 Переходим на Form1. В Меню приложения добавляем новую закладку Отчеты -> Отчет по Товарам.

1.5 Дважды кликаем по пункту меню Отчет по Товарам и в обработчике события OnClick пишем код:

[pic]

1.6 Переходим на Form6. Положите на Form6 компонент DBMemo (закладка Data Controls), шесть компонент DBEdit (закладка Data Controls), сетку DbGrid (закладка Data Controls), семь меток Label (закладка Standard) с соответствующими надписями синего цвета и кнопку Button (закладка Standard) с надписью «Создать отчет Excel». Расположите выбранные компоненты также, как на рисунке 1.

1.7 Сохраняем проект (File -> Save All) и компилируем (F9).

2 Создание запроса «Отчет по товарам»

2.1 На модуль dm положите компонент ADOQuery ((закладка dbGo) и источник DataSource (закладка DataAccess), которому дайте имя dsQuery3.

2.2 Устанавливаем свойства

  • Для ADOQuery3: свойство Connection=ADOConnection1.

  • Для dsQuery3: свойство DataSet = ADOQuery3.

2.3 Переходим на Form6 и выделяем DbGrid1. В инспекторе DbGrid1 установите свойство DataSource = dsQuery3.

2.4 Переходим на dm. Выделяем компонент ADOQuery3 и кликаем в свойстве SQL по строке TWideStrings. В окне редактора SQL-запросов пишем код для отчета по товарам (см. рисунок 2). Нажимаем OK.

[pic]

Рисунок 2 – Окно редактора SQL-запросов с кодом

2.5 В Инспекторе ADOQuery3 устанавливаем свойство: Active = True.

2.6 Сохраняем проект (File -> Save All) и компилируем (F9).

2.7 Переходим на Form6 и выделяем DBMemo1. Устанавливаем свойства:

  • DataSource = dm.dsQuery3 // Выбираем источник данных.

  • DataField = Описание // Выбираем нужное поле из запроса.

2.8 Выделяем DBEdit1. Устанавливаем свойства:

  • DataSource = dm.dsQuery3 // Выбираем источник данных.

  • DataField = КодТовара // Выбираем нужное поле из запроса.

2.9 Аналогично установите свойства для DBEdit2- DBEdit6.

2.10 По желанию можно провести форматирование колонок в DBGrid1.

2.11 В ADOQuery3 проверьте свойство: Active = True.

2.12 Сохраняем проект (File -> Save All) и компилируем (F9).

Окончательный вид окна «Отчет по товарам» приведен на рисунке 3.

[pic]

Рисунок 3 – Вид окна «Отчет по товарам»

3 Создание отчета в Excel

При нажатии на кнопку «Создать отчет в Excel» данные из DBGrid1 должны быть импортированы в Книгу Excel. Передача данных осуществляется по Com-технологии. Функции для работы с Com-объектами находятся в модуле ComObj, которых необходимо будет подключить к приложению.

3.1 Переходим на Form6. Выделяем Button1 (Создать отчет в Excel).

3.2 Создаем обработчик события OnClick компонента Button1 (двойным щелчком по кнопке) и переходим в редактор кода (окно Code).

3.3 В блок Uses добавляем модуль ComObj.

[pic]

3.4 В процедуре обработки события Button1Click пишем код с подробным комментарием:

[pic]

[pic]

[pic]

Замечание. При вводе кода некоторых свойств будут идти сообщения типа «Неизвестный...», путем красного эффекта подчеркивания. Это просто Delphi пока не видит листов и ячеек созданной книги Excel.

3.5 Сохраняем проект (File -> Save All) и компилируем (F9).

3.6 Запустите проект. Выберите пункт Отчеты->Отчет по товарам и нажмите кнопку Создать отчет в Excel. Появится книга Excel (см. рисунок 4) с одним листом Отчет, который можно редактировать и сохранить.

[pic]

Рисунок 4 – Вид отчета в Excel

4 Задания для самостоятельной работы

Усовершенствуйте проект своего варианта задания, организуя выборку данных SQL-запросом, и созданием отчета в Excel по этим данным.

Литература

Фленов М.Е. Библия Delphi //СПб.: БХВ-Петербург.-2011.-688с.