Как вызвать отчет FastReport из другого отчета FastReport

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

Для того что бы вызвать другой отчет, используя PascalScript, необходимо добавить следующий код

</pre>
// глобальное объявление переменной вызываемого отчета

var

lReport:= TfrxReport.

var

ms: TMemoryStream;

begin

lReport:= TfrxReport.create(nil);

try

ms:= TMemoryStream.Create;

TBlobField(dsInvoiceReport.FieldByName('Body')).SaveToStream(ms);

ms.position:= 0;

lReport.LoadFromStream(ms);

finally

ms.Free;

end;

end;
<pre>

Для того что бы отобразить отчет необходимо задать ему параметры, например, так

</pre>
begin

lReport.Variables['Param1']:= 1;

lReport.Variables['Param2']:= 2;

lReport.ShowReport;

end;
<pre>
Share

Tags: ,

Leave a Reply