В начало
Цели работы:
- Ознакомиться с возможностью создания отчета.
Создание отчетов:
Отчет – это
печатный документ, содержащий записи БД. В Delphi для создания отчетов служит генератор
отчетов QuickReport, содержащий обширный набор компонентов. Компоненты,
предназначенные для создания отчетов, находятся на закладке QReport
палитры компонентов.
Главным элементом отчета
является компонент-отчет QuickRep, представляющий собой основу,
на которой размещаются
другие компоненты. Компонент QuickRep обычно размещается на отдельной форме, предназначенной
для создания отчета.
Свойства
компоненты QuickRep:
·
Bands
– здесь указываются компоненты размещаемые в QuickRep.
·
DataSet
– здесь указывается набор данных из
которой отчет будет брать данные.
·
Frame
– здесь указывается параметры рамки.
·
Options
– здесь доступны три параметра. Если FirstPageHeader равно true, то заголовок печатается
только на первой странице отчета. Если LastPageFooter равен true,
то нижний колонтитул печатается только на последней странице отчета. Если
установить свойство Compression в true,
то отчет будет сохраняться в сжатом виде.
·
ReportTitle
– здесь находится заголовок печатаемого документа.
·
SnapToGrid
– нужно ли выравнивать компоненты по установленной сетке.
·
Zoom
– масштаб отображения данных.
Настройку параметров
отчета можно выполнить с помощью окна Report Settings, вызываемый двойным щелчком
мыши по компоненте QuckRep. Предпочтительно
пользоваться именно этим окном, так как здесь всегда можно просмотреть будущий
результат.
- Открыть
приложение «Студенты».
- Добавить
на главную форму кнопку «Создание
отчета».
- Создать
новую форму «Отчет», которая
будет вызываться нажатием на кнопку «Создание
отчета».
- На
форму установить компоненту QuickRep с закладки QReport. Выделить этот компонент и в объектном
инспекторе включить параметры HasTitle и HasDetail
свойства Bands.
- Расположим
компоненты в секциях QuickRep1, которые будут
отображать нужную информацию отчета. На закладке QReport палитры
компонентов доступны следующие компоненты, которые можно расположить в
этих разделах:
- QRLabel – надпись.
Этот компонент похож на стандартный компонент TLabel и
просто отображает нужные данные.
- QRDBText – данные.
Этот компонент тоже похож на TLabel, только он
предназначен для отображения значения какого либо поля из базы данных.
- QRSysData –
системная информация. Это опять копия TLabel только
с возможностью отображать системную информацию – дату, время, номер
страницы, номер строки в таблицы, общее количество страниц и т.д.
- QRImage – картинка.
Компонент схожий с TImage.
- Увеличить
область заголовка Title. В верхний угол поместите
один компонент QRSysData. Выделить его и в
свойстве Data
выбрать значение qrsDateTime. Теперь этот
компонент будет отображать в правом, верхнем углу дату распечатки
документа.
- В
центре области Tittle
установить компонент QRLabel, увеличь шрифт в
свойстве Font и написать
в свойстве Caption текст «Студенты».
- Расположить
в области Tittle
компоненты QRLabel и дать им заголовки: ФИО, Дата рождения,
Номер зачетки, Специальность, Курс.
- Перейти
к области Detail. Под
заголовками поставить пять компонентов QRDBText.
Установить в свойстве DataSet
компонентов QRDBText
набор данных - Form1.Table1,
а в свойстве DataField для QRDBText1
указать SFio.
У всех остальных компонентов QRDBText указать
соответствующие имена полей.
- Перейти
в главный модуль и по нажатию кнопки “Печать” написать следующий код.
procedure TForm1.SpeedButton5Click(Sender:
TObject);
begin
Form4.QuickRep1.Preview; //вызывается метод Preview
//компонента QuickRep. Этот метод показывает окно
//предварительного просмотра созданного документа.
еnd;
- Запустить
программу, выделить какую-нибудь строку и нажать кнопку печати. Откроется
окно предварительного просмотра.
- Выделить
компонент QuickRep1 и в свойстве DataSet указать
таблицу Form1.Table1.
- Если
сделать это, то компонент QuickRep1 автоматически
будет перебирать все записи из этой таблицы и использовать их в
компонентах, которые стоят в блоке DetailBand1.
- После
этого в отчете появятся все записи таблицы:
- Установить
на форму отчета компонент – QRSubDetail с
закладки QReport. Этот компонент предназначен для перебора
данных относящихся к подчиненным таблицам.
- Установить
следующие свойства: DataSet – Form1.Table2, чтобы связать блок с таблицей Uspevaemost.db, которая является подчиненной к основной Studenti.db.
- В свойстве Master нужно указать главный компонент с основными
данными. Выбрать в этом свойстве QuickRep1.
- Расположить на
компоненте QRSubDetail
компоненты QRDBText в свойстве
указав, к каким
полям подчиненной таблицы они обращаются.
- Получится следующий вид отчета: