На этом шаге мы рассмотрим компонент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.