Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3_Generator_otchetov_lektsia.doc
Скачиваний:
8
Добавлен:
25.08.2019
Размер:
361.47 Кб
Скачать

Генератор отчетов quickreport

Печать всевозможных документов является одной из самых распространенных функций приложений баз данных. Среда Delphi предоставляет разработчику целый набор компонентов для конструирования отчетов, которые собраны на странице QReport Палитры компонентов.

Набор компонентов для создания отчетов, а также базовый механизм создания отчетов и их подготовки к печати, так называемый генератор отчетов, созданы фирмой QuSoft и включены в состав VCL Delphi. Таким образом, разработчик имеет возможность придавать приложениям функции печати отчетов без применения каких-либо дополнительных инструментов, усложняющих инсталляцию и эксплуатацию программ.

Основное назначение отчетов в приложениях баз данных заключается в переносе на бумагу информации из набора данных. Чаще всего такие отчеты имеют структуру таблиц, где столбцы соответствуют полям, а строки записям.

В то же время, для большинства приложений не требуется применять всю мощь этого инструмента, поэтому, начиная с Delphi 3, в состав VCL включается полноценный набор компонентов QuickReport, который позволяет быстро создавать отчеты прямо на стандартной форме проекта. При этом не используются никакие дополнительные интерфейсные средства, а только компоненты, Редактор кода и Инспектор объектов. Код генератора встраивается в исполняемый файл приложения и не требует для работы дополнительных файлов.

В среде Delphi 7 набор компонентов QuickReport по умолчанию не установлен. Однако указанные компоненты легко можно установить в палитру компонентов, подключив библиотеку dclqrt70.bpl, которая находится в папке "\Delphi7\Bin".

В этой главе рассматриваются следующие вопросы.

  • Внутренняя структура отчета QuickReport;

  • Правила оформления отчетов в QuickReport;

  • Виды отчетов создаваемые средствами компонентов QuickReport.

1. Структура отчета

Основой любого отчета является компонент TQuickRep, который переносится в форму и превращает ее рабочую область в модель размеченного листа бумаги. На этой основе разработчик размещает специальные области - полосы (bands), каждая из которых отвечает за свою часть отчета: заголовок, шапку таблицы, саму таблицу и т. д. Каждой полосе соответствует собственный компонент (рис.1).

Рис. 1. Форма отчета на основе компонентов набора QuickReport

Далее в отчет переносятся поясняющие надписи, линии, рисунки, графики, то есть все то, что может понадобиться при создании печатного документа. Все эти возможности предоставляют разнообразные компоненты набора QuickReport. В конце работы отчет подключается к нужным полям набора данных.

После выполнения указанных действий отчет готов к работе. Для выполнения отчета в приложении необходимо только добавить пару строк программы для инициализации отчета в той форме, где требуется этот документ напечатать.

Компонент TQuickRep позволяет формировать отчет на основе соответствующего набора данных и показывать его на экране или отправлять на печать. Он сочетает в себе функции носителя других компонентов, обеспечивающих отображение содержания документа, и связующего элемента с набором данных. По существу, этот компонент сам по себе обеспечивает создание (генерацию) и печать пустого отчета.

Сам отчет состоит из нескольких частей - полос. С их помощью можно создавать отчеты произвольной структуры. Большинство полос создается компонентом TQRBand, который предназначен для того, чтобы отобразить принадлежащие ему элементы отчета в нужном месте.

Каждая полоса предназначена для представления одной части отчета -заголовка, таблицы, колонтитула и т. д. В зависимости от типа, полосы в отчете располагаются в строго определенном порядке. Например, полоса названия отчета всегда будет находиться первой или сразу после полосы заголовка страницы.

К стандартным типам относятся те полосы, которые можно создать при помощи свойства Bands компонента TQuickRep. Все они создаются экземплярами компонента TQRBands и образуют стандартный отчет. В таблице 1 приведены обозначения стандартных полос и их описание. В отчете они расположены в том же порядке, что и в таблице.

Таблица 1. Структура стандартного отчета QuickReport

Обозначение

Описание

Page Footer

Окончание страницы. Полоса появляется в нижней части каждой страницы и предназначена для отображения служебной информации.

Page Header

Заголовок страницы. Полоса размещается в верхней части каждой страницы отчета. Обычно здесь размещается служебная информация об отчете.

Title

Заголовок отчета. Полоса располагается после заголовка только на первой странице отчета. Содержит название отчета.

Column Header

Заголовок столбца размещаться в произвольных местах отчета, предназначен для выведения общей информации перед началом печати строк данных (заголовки таблицы, описание нижеследующих данных и т. д.). В отчете можно размещать несколько таких полос

Detail

Полоса данных. Содержит информацию из заданных в отчете полей набора данных. Таких полос в отчете может быть несколько.

Summary

Итоговая полоса. Располагается сразу после полосы данных. Предназначена для размещения общей информации, суммирующей данные (сумма значений колонок или среднее значение, а также дата время и др.).

С точки зрения создания приложений для работы с базами данных, основную роль среди полос отчета играет полоса Detail, которая размножает принадлежащие ей элементы отчета в соответствии с числом записей набора данных, указанного в свойстве DataSet компонента TQuickRep.