Компонент управления отчетом TRvSystem обеспечивает выполнение основных операций с отчетом из приложения. В приложении он должен быть связан с компонентом
TRvProject (см. выше разд. "Компонент отчета
TRvProject" данной главы).
Этого вполне достаточно, чтобы компонент TRvSystem выполнил свою работу. У разработчика нет необходимости вызывать какие-либо методы компонента, чтобы направить отчет на печать.
В его составе инкапсулированы объекты, обеспечивающие вывод отчета из компонента
TRvProject в один из трех системных приемников:
файл (объект класса TSystemFiler);
предварительный просмотр (объект класса TSystemPreview);
принтер (объект класса TSystemPrinter).
За это отвечает свойство
type
TReportDest = (rdPreview, rdPrinter, rdFile);
property ReportDest: TReportDest;
которое может принимать одно из трех значений типа
TReportDest.
Соответственно, для каждого типа системного приемника имеется свойство, позволяющее задать все его основные параметры.
Для вывода в файл это комплексное свойство
property SystemFiler: TSystemFiler;
Внутри него задается имя файла во вложенном свойстве
Элементы множества
TSystemSetup означают следующее:
ssAllowSetup
— разрешает или запрещает использование диалога настройки печати компонента;
ssAllowCopies
— управляет доступностью установки числа копий отчета;
ssAllowCollate
— разрешает или запрещает настройку режима печати с разбором страниц по копиям;
ssAllowDuplex
— разрешает или запрещает настройку двусторонней печати;
ssAllowDestPreview
— разрешает или запрещает использование окна предварительного просмотра;
ssAiiowDestPrinter
— разрешает или запрещает использование принтера;
ssAllowDestFile
— разрешает или запрещает использование файла для вывода отчета;
ssAiiowPrinterSetup
— разрешает или запрещает использование диалога настройки параметров принтера.
Во время выполнения любой из перечисленных операций
вывода отчета открывается окно состояния процесса (рис. 23.5). Его заголовок
определяется свойством
property TitleStatus:
TFormatString;
Рис. 23.5. Форма состояния
процесса вывода отчета компонента TRvSystem
В нем отображается информационная строка состояния,
которая может быть настроена при помощи свойств объекта SystemFiler,
представленного в компоненте TRvSystem
одноименным свойством.
Вложенное свойство
property StatusFormat:
string;
определяет строку форматирования для текста
о состоянии процесса. Для нее предусмотрены следующие управляющие символы:
%с — текущее
состояние процесса вывода;
%р — номер
текущей страницы;
%f — номер
первой страницы;
%1 — номер
последней страницы;
%d — название
устройства вывода (название принтера, имя файла, предварительный просмотр);
%r — имя
драйвера устройства вывода;
%s — общее
число страниц;
%t — порт
печати;
%о-%9
— номера строк для свойства statusText (см. ниже).
Вложенное свойство
property StatusText:
TStrings;
позволяет задать до десяти строк (можно задать
и больше, но они не будут восприняты строкой статуса) с какой-либо дополнительной
информацией, описывающей процесс вывода. Первая строка списка будет выведена
при наличии в свойстве statusFormat управляющего
символа %0, вторая — при наличии символа %1 и т. д.
При помощи перечисленных свойств вы сможете
детально описать процесс вывода отчета. В этом вам помогут методы-обработчики
событий компонента TRvSystem.
До начата печати отчета и по его окончании (даже
если печать была прервана) соответственно вызывается пара методов-обработчиков:
property OnBeforePrint:
TNotifyEvent;
property OnAfterPrint:
TNotifyEvent;
В начале печати непосредственно отчета (не заголовка)
вызывается метод-обработчик
property OnPrint:
TNotifyEvent;
Если вы печатаете одну страницу, будет вызван
метод-обработчик
type
TPrintPageEvent
= function(Sender: TObject;
var PageNum:
Integer): Boolean;
property OnPrintPage:
TPrintPageEvent;
Но до начала печати вызывается метод-обработчик
property OnNewPage:
TNotifyEvent;
который обозначает генерацию страницы.
При печати колонтитулов в верхней и нижней частях
страницы вызываются методы-обработчики
property OnPrintHeader:
TNotifyEvent;
property OnPrintFooter:
TNotifyEvent;
Разработчик может задать несколько опций для
всего компонента TRvSystem, управляя тем
самым процессом вывода отчета. Для это используется свойство
Элементы типа
TSystemOptions обозначают следующее:
soUseFiler
— при установке этой опции в значение True вывод будет направляться в файл,
заданный свойством SystemFiler, независимо от других настроек компонента;
SoWaitForOK
— если включить эту опцию, генерация отчета будет задержана до момента, когда
пользователь нажмет кнопку ОК в диалоге настройки печати компонента (см. рис.
23.4);
soshowstatus
— эта опция управляет видимостью окна состояния процесса вывода отчета в компоненте;
soAiiowPrintFromPreview
— будучи включенной, эта опция позволяет печатать отчет из окна предварительного
просмотра;
soPreviewModal
— при значении True делает окно предварительного просмотра модальным.