Delphi для профессионалов



 

Компонент отчета TRvProject


Компонент TRvProject обеспечивает представление в приложении отчета. Для того чтобы связать проект отчета Rave Reports с компонентом, используется свойство

property ProjectFile: string;

До начала печати необходимо связать компонент TRvProject с компонентом управления отчетом TRvSystem. Для этого достаточно передать в свойстве

property Engine: TRpComponent;

 ссылку на компонент TRvSystem.

При необходимости вы можете загрузить отчет из внешнего файла или потока:

procedure LoadFromFile(FileName: String);

 procedure LoadFromStream(Stream: TStream);

Загруженный отчет становится текущим.

Кроме этого существует и пара методов для сохранения отчета:

function SaveToFile(FileName: String); 

procedure SaveToStream(Stream: TStream);

В процессе работы приложения может потребоваться напечатать несколько различных отчетов. Для этого можно использовать требуемое число компонентов TRvProject или загружать нужные отчеты по мере необходимости.

Забегая немного вперед (см. гл. 24), скажем, что один файл проекта отчета может содержать несколько независимых отчетов. Каждый из них идентифицируется в компоненте TRvProject тремя свойствами. Имя, полное имя и описание отчета содержатся соответственно в трех свойствах только для чтения:

property ReportName: String; 

property ReportFullName: String; 

property ReportDesc: String;

При этом эти три свойства возвращают параметры текущего отчета. Сразу после загрузки из файла текущим становится отчет, являющийся отчетом по умолчанию в среде разработки. При необходимости сменить текущий отчет используется метод

function SelectReport(ReportName: string; FullName: boolean): boolean;

В параметре ReportName передается имя нужного отчета. Если параметр FullName имеет значение True, то это полное имя отчета, иначе — имя отчета.

В случае, если проект содержит несколько отчетов, их имена доступны при помощи метода

procedure GetReportList(ReportList: TStrings;FullName: boolean);

Список имен будет возвращен в список строк ReportList, а параметр FullName определяет, какие именно имена будут занесены в список. При значении параметра True метод возвращает полные имена отчетов (соответствует свойству ReportFullName), иначе — имена (соответствует свойству  ReportlName).

Например, код

var ReportList: TStringList; i: Integer;

ReportList := TStringList.Create;

RvProjectl.Open;

try

RvProjectl.GetReportList(ReportList, False);

for i := 0 to ReportList.Count - 1

do RvProjectl.ExecuteReport(ReportList[I]); 

finally

RvProjectl.Close;

ReportList.Free;

 end;

последовательно печатает все отчеты, входящие в состав файла проекта отчета.

Файл проекта отчета можно включить в состав исполняемого файла приложения. Для этого используется свойство

property StoreRAV: Boolean;

При щелчке на кнопке в строке этого свойства в Инспекторе объектов открывается специализированный редактор Load Into exe (рис. 23.2).

Рис. 23.2. Редактор свойства StoreRAV компонента TRvProject

Здесь можно задать файл проекта отчета. После этого в Инспекторе объектов в строке свойства storeRAv появятся дата и время загрузки проекта отчета. Это же время и дата будут сохранены в свойстве

property RaveBlobDateTime: TDateTime;

Отправить отчет на печать можно методом

procedure Execute;

или же методом

procedure ExecuteReport(ReportName: string);

который позволяет направить на печать отчет, заданный параметром ReportName. Он должен соответствовать имени отчета, хранящемуся в свойстве ReportName компонента TRvProject.

Отчет, содержащийся в компоненте Trvproject, может быть открыт для редактирования методом

procedure Open;

Не открывая отчет, вы не сможете использовать большинство свойств и методов компонента. Дело в том, что при открытии компонент загружает отчет из файла проекта или прикомпилированного кода (в случае использования свойства StoreRAV).

Сохранение и закрытие отчета соответственно выполняются методами

procedure Save; procedure Close;

Кроме этого, действия, аналогичные методам open и close, выполняются свойством

property Active: Boolean;

Если свойству присвоить значение True — отчет открывается, иначе — закрывается.

До и после открытия и закрытия отчета вызывается четверка методов-обработчиков:

property aeforeOpen: TNotifyEvent;

property AfterOpen: TNotifyEvent;

property BeforeClose: TNotifyEvent; 

property AfterClose: TNotifyEvent;