FastReport 综合报表(批量预览、打印)
属性和方法
TfrxReport.ShowPreparedReport
procedure ShowPreparedReport;
显示之前通过PrepareReport
调用构建的报表。
当报表组件构建报表并接收到另一个
PrepareReport
或Export
命令时,它会将其放入延迟命令列表中,并在当前操作完成后才运行命令。在单线程应用程序中用于与ProcessMessages
操作同步。
例子
批量打印
在窗体上放置TfrxReport组件frxReport1
procedure TForm1.Button5Click(Sender: TObject);
begin
//清空自定义预览报表(在批量加载报表前不能设置Preview属性)
frxReport1.Preview := nil;
//加载报表1
frxReport1.LoadFromFile('C:\Users\Administrator\Desktop\测试报表1.fr3');
frxReport1.PrepareReport;
//加载报表2,不清除已加载的报表1
frxReport1.LoadFromFile('C:\Users\Administrator\Desktop\测试报表2.fr3');
frxReport1.PrepareReport(False);
//打印
frxReport1.Print;
end;
批量预览
在窗体上放置TfrxReport组件frxReport1,放置TfrxPreview 组件frxPreview1
procedure TForm1.Button6Click(Sender: TObject);
begin
//清空自定义预览报表(在批量加载报表前不能设置Preview属性)
frxReport1.Preview := nil;
//加载报表1
frxReport1.LoadFromFile('C:\Users\Administrator\Desktop\测试报表1.fr3');
frxReport1.PrepareReport;
//加载报表2,不清除已加载的报表1
frxReport1.LoadFromFile('C:\Users\Administrator\Desktop\测试报表2.fr3');
frxReport1.PrepareReport(False);
//设置自定义预览报表(不设置时使用标准窗口)
frxReport1.Preview := frxPreview1;
//显示报表(不能使用ShowReport方法显示报表)
frxReport1.ShowPreparedReport;
end;
标签:报表,预览,frxReport1,delphi,FastReport,PrepareReport,Preview,加载 From: https://www.cnblogs.com/txgh/p/17436778.html在批量加载报表前不能设置
Preview
属性或批量加载报表后使用ShowReport(False)
方法显示报表,会导致只显示最后一个加载的报表
原因,PrepareReport
方法构建报表时,调用PreviewPages.Initialize
初始化预览页面,TfrxPreviewPages.Initialize
中调用Report.InternalOnProgressStart
处理报表引擎的准备,TfrxReport.InternalOnProgressStart
中判断如果设置了Preview
属性(ShowReport
方法会设置Preview
属性为标准预览窗口)时,调用Preview.InternalOnProgressStart
方法清空已加载的报表