Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Урок11.doc
Скачиваний:
3
Добавлен:
19.09.2019
Размер:
314.88 Кб
Скачать

События

Событие

Назначение

property AfterPreview : TQRAfterPreviewPrint;

Возникает в момент закрытия окна предварительного просмотра отчета.

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);

Возникает в момент подготовки к генерации первой страницы отчета.

С помощью компонента QRPreview программист может создать нестандартное окно предварительного просмотра. Для связи с отчетом используется событие OnPreview по следующей схеме:

Procedure RepForm.MyREportOnPreviewEvent(Sender: TObject);

begin

MyPrevForm.QRPreview1.QRPrinter := TQRPrinter(Sender);

MyPreviewForm.Show;

end;

Чтобы явное приведение типа TQRPrinter(Sender) стало возможным, необходима ссылка на модуль QRPrntr в предложении Uses соответствующего модуля (в примере – модуля RepForm).

  1. Компонент tqrBand

Компоненты TQRBand являются основными частями отчета и используются для размещения на них отображающих компонентов, таких как TQRLabel, TQRDBText, TQRImage и т.п.

Свойства компонента:

Свойство

Назначение

property AlignToBottom: boolean;

Если имеет значение True полоса печатается непосредственно над подвалом страницы вместо обычного расположения справа/снизу от предыдущей полосы.

type TQRBandType = (rbTitle, rbPageHeader, rbDetail, rbPageFooter, rbSummary, rbGroupHeader, rbGroupFooter, rbSubDetail, rbColumnHeader);

property BandType: TQRBandType;

Указывает назначение полосы: rbTitle – содержит заголовок отчета; rbPageHeader – содержит заголовок страницы (на первой странице печатается под rbTitle); rbDetaul – содержит информацию из НД; выводится всякий раз при переходе на новую запись НД; эта полоса повторяется для всех записей DataSet, начиная с первой записи и заканчивая последней; позицирование на первую запись и последовательный их перебор осуществляется компонентом TQuickRep автоматически; rbPageFooter – содержит подвал страницы; выводится в конце каждой страницы отчета после всех других полос; rbSummary – подвал отчета; выводится на последней странице отчета после всей иной информации, но перед подвалом последней страницы; rbGroupHeader – содержит заголовок группы; применяется при группировках информации в отчете и выводится всякий раз при выводе новой группы; rbGroupFooter – содержит подвал группы; выводится всякий раз при окончании вывода группы, после всех данных группы; rbSubDetail – содержит детальную информацию из подчиненного НД при выводе в отчете информации из двух или более наборов данных, связанных в приложении как главный-подчиненный; этот тип назначается полосе автоматически при размещении на форме компонента TQRSubDetail; rbColumnHeader – содержит заголовки столбцов; размещается на каждой странице отчета после заголовка страницы.

property Enabled: boolean;

Разрешает/запрещает печать полосы.

property ForceNewColumn: boolean;

Если содержит True, полоса печатается в следующей колонке.

property ForceNewPage: boolean;

Если содержит True, полоса печатается на новой странице.

property HasChild: boolean;

Если содержит True, полоса имеет дочернюю полосу TChildBand. Установка True в это свойство автоматически создает в отчете дочернюю полосу.

События

property AfterPrint: TQRAfterPrintEvent;

и

property BeforePrint: TQRBeforePrintEvent;

наступают соответственно до и после печати полосы. Метод

function AddPrintable(PrintableClass: TQRNewComponentClass): TQRPrintable;

используется для вставки в полосу отображающего компонента в процессе прогона программы. Он автоматически устанавливает между полосами отношение собственности. Два следующих фрагмента выполняют одинаковую работу:

with DetailBand1.AddPrintable(TQRLabel) do

begin

Size.Left := 20;

Size.Top := 5;

Caption := ‘Новая полоса’;

end;

var

aLabel : TQRLabel;

begin

aLabel := TQRLabel.Create(ReportForm);

aLabel.Parent := DetailBand1;

with aLabel do

begin

Size.Left := 20;

Size.Top := 5;

Caption := ‘Новая полоса’;

end;

end;