Набор компонентов 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. Улучшить внешний вид отчета, изменяя шрифты, местоположение полей и другие настройки компонентов отчета.