Набор компонентов Quick Reports
Лабораторная работа № 35.
Создание отчетов.
Под отчетом понимают средство для подготовки информации из БД к печати на принтере. С помощью отчетов удается формировать необходимую документацию, основанную на данных, с которыми работает информационная система. При этом для каждого вида документа создается отдельный отчет, являющийся как бы бланком документа. В процессе работы отчет многократно вызывается, автоматически заполняется данными и печатается на принтере.
В состав Borland Delphi 7.0 входит два набора компонентов для работы с отчетами:
Quick Reports;
Rave Reports.
Quick Reports – простейший набор компонентов для создания отчетов. Он хорошо подходит в тех случаях, когда требуется быстро построить простой отчет. С 3-й по 6-ую версии Delphi компоненты Quick Reports были единственным средством построения отчетов.
В 7-й версии Delphi был добавлен гораздо более мощный набор компонентов Rave Reports, который хорошо подходит для построения сложных отчетов. Этот набор компонентов теперь считается основным. Однако компоненты Quick Reports также входят в состав Delphi 7.0, хотя по умолчанию и не показаны на палитре компонентов.
Далее будут рассмотрены оба этих набора.
Набор компонентов Quick Reports
Чтобы набор Quick Reports стал доступен, необходимо в среде Delphi установить соответствующий пакет (package) компонентов. Пакет представляет собой специальную динамическую библиотеку с расширением *.bpl, в нашем случае – dclqrt70.bpl. Для установки пакета следует выполнить пункт меню Component–Install Packages, нажать кнопку Add и далее выбрать требуемый пакет. Как правило, пакеты расположены в следующей папке: C:\Program Files\Borland\Delphi7\Bin.Установленный набор компонентов размещен на вкладке QReport. Перечислим наиболее часто используемые компоненты, входящие в составQuick Reports:
- TQuickRep – визуальный компонент, составляющий основу отчета. На нем размещаются все остальные элементы отчета;
TQRLabel– текстовая метка. Компонент аналогичен стандартному компоненту TLabel, но приспособлен для использования в отчетах;
TQRDBText – текстовое поле. Компонент предназначен для отображения в отчете значений заданного поля БД;
- TQRExpr – выражение. Компонент предназначен для отображения в отчете вычисляемых полей.
Пусть требуется создать отчет для печати информации о перечне всех товаров с указанием названия товара и его цены в рублях и долларах. Порядок создания отчета следующий:
1. Создать новую форму, дав ей имя FormQuickRep, и сохранить ее в модуле UQuickRep.pas.
2. Подключить к модулю UQuickRep.pas модуль главной формы приложения (будем считать, что он называется UMain.pas):
uses
Windows, ..., UMain;
Аналогично, подключим к модулю главной формы модуль UQuickRep.pas:
uses
Windows, ..., UQuickRep;
3. Разместить на форме FormQuickRep компонент типа TQuickRep, дав ему имя QuickRep.
4. Разместить на форме FormQuickRep компоненты TADOConnection и TADOQuery, задать им имена ADOConnection и QueryGoods. Связать компоненты между собой, подключить компонент ADOConnection к требуемой БД и занести в свойство SQL компонента QueryGoods необходимый запрос на выборку к БД, например:
SELECT * FROM Товары
5. Задать для компонента QuickRep следующие свойства:
- Набор данных, по которому составляется отчет:
DataSet := QueryGoods
Если это свойство не задать, то в отчете будет выводиться информация только об одной строке набора данных.
- Разрешить отображение полосы заголовка:
Bands.HasTitle := true
- Разрешить отображение полосы названия полей:
Bands.HasColumnHeader := true
- Разрешить отображение полосы отдельных записей:
Bands.HasDetail := true
6. Создать заголовок отчета, для чего разместить в центре полосы заголовка компонент типа TQRLabel и задать название отчета в его свойстве Caption, например, «Перечень товаров».
7. Создать шапку отчета, для чего разместить на полосе названий полей несколько компонентов типа TQRLabel и задать названия полей в их свойствах Caption, например, «Наименование»,«Цена в руб»,«Цена в $».
8. Разместить на полосе отдельных записей два компонента типа TQRDBText для вывода наименования товара и цены товара в рублях. Задать для обоих компонентов имя набора данных QueryGoods в их свойствах DataSet и названия соответствующих полей набора данных в свойствахDataField
9.Разместить на полосе отдельных записей компонента типа TQRExpr. Задать свойство Expression, записав в него следующее выражение для вычисления цены в долларах:
QueryGoods.Цена /30
При необходимости можно использовать мастер для построения выражений, позволяющий выбирать поля таблиц БД (кнопка Database Field), стандартные функции (кнопка Function) и переменные (кнопка Variable).
Внешний вид разработанного отчета представлен на рисунке 1.
10. Разместить на главной форме кнопку, дав ей название “QuickRep” и написав для нее обработчик, вызывающий предварительный просмотр отчета:
FormQuickRep.QuickRep.Preview;
При необходимости печати отчета обработчик выглядел бы следующим образом:
FormQuickRep.QuickRep.Print;
11. Откомпилировать и запустить приложение, убедиться в его работоспособности.
12. Улучшить внешний вид отчета, изменяя шрифты, местоположение полей и другие настройки компонентов отчета.