Шаг 3.
Вкладка QReport. Компонент TQuickRep

    На этом шаге мы рассмотрим компонентTQuickRep.

    Как уже отмечалось, компонент TQuickRep является центральным для построения отчета, поэтому на данном шаге перечислим его важнейшие свойства, методы и события.

    Свойства компонента TQuickRep представлены в таблице 1.

   
Таблица 1. Свойства компонента TQuickRep
Свойство Описание
property Bands : TQuickRepBands; Состоит из множества логических значений (False/True), которые определяют включение в отчет отдельных видов составляющих:
  • HasColumnHeader - заголовка столбцов отчета;
  • HasDetail - детальной информации;
  • HasPageFooter - подвала страницы;
  • HasPageHeader - заголовка страницы;
  • HasSummary - подвала отчета;
  • Has Title - заголовка отчета.
Эти свойства формируются автоматически по мере вставки в отчет тех или иных полос.
property DataSet: TDataSet; Указывает на набор данных, на основе которого и создается отчет. Обычно для выдачи отчета используется один НД. Если нужно вывести связанную информацию из нескольких таблиц БД, ее объединяют в одном НД при помощи оператора SELECT. В этом случае в качестве НД для отчета может использоваться компонент TQuery. Информацию из нескольких связанных НД можно включать в отчет, если эти наборы данных связаны в приложении отношением Master-Detail. В этом случае в качестве НД отчета указывается Master-набор, а ссылка на соответствующие Detail-наборы осуществляется в компонентах TQRSubDetail. Если в отчет нужно включить информацию из несвязанных наборов данных, применяют композитный отчет, то есть отчет, составленный из группы других отчетов.
property Frame: TQRFrame; Определяет параметры рамки отчета:
  • Color - цвет линии рамки;
  • DrawBottom - определяет, следует ли выводить линию снизу;
  • DrawLeft - определяет, следует ли выводить линию слева;
  • DrawRight - определяет, следует ли выводить линию справа;
  • Draw Top - определяет, следует ли выводить линию сверху;
  • Style - определяет стиль линии;
  • Width - определяет ширину линии в пикселях.
property Options: TQROptions; Содержит множество из следующих логических значений:
  • HasFirstHeader - разрешает печатать верхний колонтитул первой страницы;
  • HasLastFoother - разрешает печатать нижний колонтитул последней страницы;
  • Compression - разрешает сжимать отчет при выводе его в метафайл.
property Page: TQRPage; Определяет параметры страницы. Все вложенные свойства этого сложного свойства доступны в окне ReportSetting (см. ниже).
property PrintlfEmpty: Boolean; Указывает (True), что следует печатать отчет даже в том случае, если он не содержит данных.
property PrinterSettings: TQuickRepPrinterSettings; Определяет параметры принтера.
property ReportTitle: String; Имя отчета (не его заголовок!). Используется для идентификации отчета в задании на сетевую печать, возвращается компонентом TQRSysData при Data=ReportTitle и может использоваться для выбора одного из нескольких доступных отчетов.
property ShowProgress: Boolean; Разрешает/запрещает показывать индикатор процесса печати отчета.
property SnapToGrid: Boolean; Если содержит True, размещаемые в отчете компоненты привязываются к сетке отчета.
property TQRUnits=(Inches, MM, Pixels, Native, Characters);

property Units: TQRUnits;
Определяет единицы измерения расстояний в отчете:
  • Inches – дюймы;
  • ММ – миллиметры;
  • Pixels – пикселы;
  • Native – внутренние единицы TQuickRep (0,1 мм);
  • Characters – символы текста.
property Zoom: Integer; Определяет масштаб отображения отчета (в процентах от его размеров на листе бумаги) на этапе разработки. Может иметь значение в диапазоне 1 – 300.

    Многие свойства отчета можно установить на этапе конструирования с помощью редактора свойств (рис.1) - вызовите контекстное меню компонента TQuickRep и выбирете Report Settings.


Рис.1. Окно установки параметров отчета

    Группа элементов управления Paper size позволяет задать характеристики страницы: ее формат (А4 210 х 270 mm), ширину (Width), длину (Length) и ориентацию - книжную (Portrait) или альбомную (Landscape).

    Группа элементов управления Margin позволяет установить поля отчета: сверху (Top), снизу (Bottom), слева (Left), справа (Right), а также количество колонок (Number of columns) и расстояние между ними (Column Space).

    С помощью элементов группы Other можно задать шрифт (Font), его размер (Size) и используемые единицы измерения длины (Units).

    Группа элементов управления Page frame определяет свойства рамки: наличие линии сверху (Top), снизу (Bottom), слева (Left), справа (Right), цвет линий (Color) и их толщину (Width).

    Группа элементов управления Bands определяет наличие полос заголовков и подвалов, а также высоту соответствующей полосы.

    Флажки Print first page header и Print last page footer управляют соответственно печатью верхнего колонтитула на первой страницы отчета и нижнего колонтитула на его последней странице.

    Методы компонента TQuickRep представлены в таблице 2.

   
Таблица 2. Методы компонента TQuickRep
Метод Описание
procedure NewColumn; Реализует вывод информации в следующей колонке отчета, а если определена единственная колонка – в его следующей странице.
procedure NewPage; Выполняет переход на новую страницу. Может использоваться в обработчиках событий компонентов отчета BeforePrint или AfterPrint и не может - в обработчиках событий OnPrint, OnStartPage и OnEndPage.
procedure Prepare; Готовит отчет для вывода в файл.
procedure Preview; Выводит отчет в окно предварительного просмотра.
procedure Print; Печатает отчет на принтере.
procedure PrintBackground; Инициирует печать отчета в фоновом режиме (в отдельном потоке команд). После завершения печати вызывается обработчик события OnAfterPrint.
procedurePrinterSetup; Обеспечивает установки параметров принтера.

    События компонента TQuickRep представлены в таблице 3.

   
Таблица 3. События компонента TQuickRep
Событие Описание
property AfterPreview: TQRAfterPreviewEvent; Наступает после закрытия окна предварительного просмотра отчета.
property AfterPrint: TQRAfterPrintEvent; Наступает после вывода отчета на печать.
property BeforePrint: TQRBeforePrintEvent; Наступает в момент генерации отчета, до выдачи окна предварительного просмотра отчета и до вывода отчета на печать.
property OnEndPage : procedure(Sender : TObject); Наступает в момент подготовки к генерации последней страницы отчета.
property OnNeedData : procedure(Sender : TObject; var moreData: boolean); Используется при создании отчета по данным, которые берутся не из НД, а из текстового файла, списка строк, массива и т.п. В параметре MoreData обработчик должен вернуть True, если источник данных еще не исчерпан.
property OnPreview : procedure(Sender : TObject); Используется для связывания с отчетом нестандартного окна просмотра.
property OnStartPage : procedure(Sender : TObject); Наступает в момент подготовки к генерации первой страницы отчета.

    Пример использования этого компонента можно получить на шаге 10 "Создание простейшего отчета".

    На следующем шаге мы рассмотрим компонент TQRBand.




Предыдущий шаг Содержание Следующий шаг