Лабораторная
работа№ 15
Создание отчетов в Delphi
С.В. Каверин
Цель работы: Научиться создавать отчеты
к базам данных в среде программирования Delphi используя экспортирование данных в Excel.
Постановка задачи. Интерфейс рабочего окна формы
«Отчет по товарам», приведен на рисунке 1.
Рисунок 1 – Интерфейс окна
формы «Отчет по товарам»
Отчет будет содержать шесть столбцов.
Данные для отчета берутся из сетки DBGrid1, записи которой формируются SQL-запросом в DBQuery3 при создании Form6 (событие FormCreate). Запрос содержит семь полей из
таблиц Товары, Поставщик и Поставка.
Код SQL-запроса (в название поля включается
название таблицы):
Поле Товары.Описание в Отчет
не входит.
Значение полей
выделенной курсором записи отображаются в компонентах 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 пишем код:
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.
Рисунок 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.
Рисунок 3 – Вид окна «Отчет по
товарам»
3 Создание отчета в Excel
При нажатии на
кнопку «Создать отчет в Excel» данные из DBGrid1 должны быть импортированы в Книгу Excel. Передача данных осуществляется по Com-технологии. Функции для работы с Com-объектами находятся в модуле ComObj,
которых необходимо будет подключить к приложению.
3.1 Переходим на
Form6. Выделяем Button1 (Создать отчет в Excel).
3.2 Создаем обработчик
события OnClick компонента Button1 (двойным щелчком по кнопке) и
переходим в редактор кода (окно Code).
3.3 В блок Uses добавляем модуль ComObj.
3.4 В
процедуре обработки события Button1Click пишем код с подробным
комментарием:
Замечание. При вводе кода некоторых
свойств будут идти сообщения типа «Неизвестный...», путем красного эффекта
подчеркивания. Это просто Delphi пока не видит листов и ячеек созданной книги Excel.
3.5 Сохраняем
проект (File -> Save All) и компилируем (F9).
3.6 Запустите
проект. Выберите пункт Отчеты->Отчет по товарам и нажмите кнопку Создать
отчет в Excel. Появится книга Excel (см. рисунок 4) с одним листом Отчет,
который можно редактировать и сохранить.
Рисунок 4 – Вид отчета в Excel
4 Задания для самостоятельной работы
Усовершенствуйте
проект своего варианта задания, организуя выборку данных SQL-запросом, и созданием отчета в Excel по этим данным.
Литература
Фленов М.Е.
Библия Delphi //СПб.:
БХВ-Петербург.-2011.-688с.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.