Компонент QRBand – основной элемент отчета, на котором размещаются другие компоненты. Свойство BandType: TQRBandType задает тип полосы:
· rbTitle – заголовок отчета
· rbPageHeader – верхний колонтитул
· rbDetail – данные записей набора данных; выводятся для каждой записи набора данных
· rbPageFooter – нижний колонтитул
· rbSummary – итог отчета; выводится в конце отчета под всеми другими сведениями отчета, но выше нижнего колонтитула
· rbGroupHeader – заголовок группы
· rbGroupFooter – примечание группы, выводится для каждой группы
· rbSubDetail – данные подчиненного набора данных для отчета “главный-подчиненный”
· rbColumnHeader – заголовки столбцов, печатаемые один раз на каждой странице над данными;
· rbChild – дочерняя полоса, печатаемая после полосы, с которой она связана.
Добавить новую полосу можно двумя способами:
Ø поместить компонент QRBand в отчет и присвоить нужное значение свойству BandType;
Ø установить значение True нужного подсвойства свойства Bands компонента QuickRep. При этом к отчету добавляется полоса, а ее свойство BandType автоматически получает нужное значение.
При печати каждой полосы генерируются события BeforePrint и AfterPrint. Событие BeforePrint можно использовать для блокирования печати. Например,
в отчете печатаются только записи, имеющие в поле Salary значение больше 100.
Компоненты, размещаемые в полосе. Можно использовать компоненты только страницы Qreport. Если расположить компонент вне полосы, то он будет выводиться на каждой странице отчета.
QRLabel – надпись (аналог Label), содержащая текст.
QRDBText –значение поля записи (аналог DBText), размещается в полосе данных,
QRExpr – значение, формируемое на основе выражения, в котором могут использоваться значения полей записей.
QRSysData –системная информация,
QRImage – компонент для отображения графического изображения (аналогичен Image).
QRShape – геометрическая фигура. Служит для оформления сетки вокруг выводимых данных.
Непосредственно перед печатью возникает событие OnPrint: TQRLabelOnPrintEvent, которое описывается как
Type TQRLabelOnPrintEvent=procedure (Sender: Tobject;
Var Value:String) of Object;
Параметр Value содержит значение, которое должно быть напечатано. Например,
Procedure Tform1.QRDBText1Print(Sender: Tobject; var Value: String);
Begin
Value:=Value+’ р.’;
End;
Для создания простого отчета нужно:
1.Разместить на форме компонент QuickRep;
2.Cоздать для компонента QuickRep необходимые полосы отчета;
3.Разместить в полосах нужные компоненты отчета (QRLabel, QRBText, QRExpr);
4.создать обработчик события, например, нажатия кнопки.
Пример создания простого отчета.
Имеется таблица Sotrudniki.db. Требуется создать отчет, содержащий заголовок и сведения из данной таблицы.
Поместить на форму компонент Table. Связать этот компонент с таблицей Sotrudniki.db. Таблицу открыть.
Поместить на форму компонент QuickRep. Установить его свойства:
. DataSet = Table1.
. Top = 0,
. Left = 0,
Поместить на отчет компонент QRBand. Установить его свойства
. BandType = rbTitle (по умолчанию)
. Height = 60
На полосу заголовка поместить компонент QRLabel. Задать его свойства:
. Caption = ”Список сотрудников”,
. Font.Name = Monotype Corsiva,
. Font.size = 20
. Alignment = taCenter
Поместить на отчет компонент QRBand. Установить его свойство
. BandType = rbDetail (в этой полосе будет отображаться содержимое таблицы)
На полосу Detail поместить четыре компонента QRDBText, которые связать с полями таблицы Table1. Для этого свойству DataSet каждого компонента QRDBText задать значение Table1, а свойству DataField присвоить имя соответствующего поля.
Для просмотра отчета нужно выбрать из контекстного меню отчета пункт Preview.
Для просмотра отчета при открытии формы нужно создать обработчик события OnCreate
Procedure TForm1.FormCreate(Sender:TObject);
Begin
QuickRep1.Preview;
End;
Для закрытия формы при закрытии окна предварительного просмотра нужно создать обработчик события OnAfterPreview компонента QuickRep: