На этом шаге мы рассмотрим компонентTQuickRep.
Как уже отмечалось, компонент TQuickRep является центральным для построения отчета, поэтому на данном шаге перечислим его важнейшие свойства, методы и события.
Свойства компонента TQuickRep представлены в таблице 1.
| Свойство | Описание | 
|---|---|
| property Bands : TQuickRepBands; | Состоит из множества логических значений (False/True), которые определяют включение в отчет отдельных видов составляющих:
  
  |  
| property DataSet: TDataSet; | Указывает на набор данных, на основе которого и создается отчет. Обычно для выдачи отчета используется один НД. Если нужно вывести связанную информацию из нескольких таблиц БД, ее объединяют в одном НД при помощи оператора SELECT. В этом случае в качестве НД для отчета может использоваться компонент TQuery. Информацию из нескольких связанных НД можно включать в отчет, если эти наборы данных связаны в приложении отношением Master-Detail. В этом случае в качестве НД отчета указывается Master-набор, а ссылка на соответствующие Detail-наборы осуществляется в компонентах TQRSubDetail. Если в отчет нужно включить информацию из несвязанных наборов данных, применяют композитный отчет, то есть отчет, составленный из группы других отчетов. | 
| property Frame: TQRFrame; |  Определяет параметры рамки отчета:
  
  |  
| property Options: TQROptions; |  Содержит множество из следующих логических значений:
  
  |  
| 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;  | 
   Определяет единицы измерения расстояний в отчете:
  
  |  
| 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.
| Метод | Описание | 
|---|---|
| procedure NewColumn; | Реализует вывод информации в следующей колонке отчета, а если определена единственная колонка – в его следующей странице. | 
| procedure NewPage; | Выполняет переход на новую страницу. Может использоваться в обработчиках событий компонентов отчета BeforePrint или AfterPrint и не может - в обработчиках событий OnPrint, OnStartPage и OnEndPage. | 
| procedure Prepare; | Готовит отчет для вывода в файл. | 
| procedure Preview; | Выводит отчет в окно предварительного просмотра. | 
| procedure Print; | Печатает отчет на принтере. | 
| procedure PrintBackground; | Инициирует печать отчета в фоновом режиме (в отдельном потоке команд). После завершения печати вызывается обработчик события OnAfterPrint. | 
| procedurePrinterSetup; | Обеспечивает установки параметров принтера. | 
События компонента TQuickRep представлены в таблице 3.
| Событие | Описание | 
|---|---|
| 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.