首页 > 其他分享 >delphi FastReport 综合报表(批量预览、打印)

delphi FastReport 综合报表(批量预览、打印)

时间:2023-05-27 15:11:20浏览次数:41  
标签:报表 预览 frxReport1 delphi FastReport PrepareReport Preview 加载

FastReport 综合报表(批量预览、打印)

属性和方法

TfrxReport.ShowPreparedReport

procedure ShowPreparedReport;

显示之前通过PrepareReport 调用构建的报表。

当报表组件构建报表并接收到另一个 PrepareReportExport 命令时,它会将其放入延迟命令列表中,并在当前操作完成后才运行命令。在单线程应用程序中用于与 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;

在批量加载报表前不能设置Preview属性或批量加载报表后使用ShowReport(False)方法显示报表,会导致只显示最后一个加载的报表
原因,PrepareReport方法构建报表时,调用PreviewPages.Initialize初始化预览页面,TfrxPreviewPages.Initialize中调用Report.InternalOnProgressStart 处理报表引擎的准备,TfrxReport.InternalOnProgressStart中判断如果设置了Preview属性(ShowReport方法会设置Preview属性为标准预览窗口)时,调用Preview.InternalOnProgressStart方法清空已加载的报表

标签:报表,预览,frxReport1,delphi,FastReport,PrepareReport,Preview,加载
From: https://www.cnblogs.com/txgh/p/17436778.html

相关文章

  • Delphi SynCrtSock TWinHTTP
    TWinHTPP ///aclasstohandleHTTP/1.1requestusingtheWinHTTPAPI//-hasacommonbehaviorasTHttpClientSocket()butseemstobefaster//overanetworkandisabletoretrievethecurrentproxysettings//(ifavailable)andhandlesecurehttpscon......
  • elementplus vue3 ts 单图预览封装
    <divclass="demo-image__preview"><el-imagestyle="width:50px":src="props.image":zoom-rate="1.2":preview-src-list="[props.image]":initial-index="4&quo......
  • Delphi 12 最新消息
    1.新版本将集成Skia4Delphi。这绝对是有史以来最重要的更新,官方通过深度集成Skia4Delphi,将实现更高质量的界面,更有效率的界面,从此,毛刺现象将成为历史!2.C++将集成Visual Assist。这结于C++用户来说,绝对的福音!3.RTL,IDE,Compiler,Platform等质量优化与改进新版将在这几个方面,继续......
  • Delphi实现禁止app截屏
    修改AndroidManifest.template.xml,增加下面标粗的内容:<activityandroid:name="com.embarcadero.firemonkey.FMXNativeActivity"android:exported="true"android:excludeFromRecents="true"......
  • delphi RTC 解析statucode 问题
    开源的版本也一样会。rtcinfo.pas,以下的解析 StatusCode 有问题,如果服务器返回的是“HTTP/1.1200” 后面没有状态文本。会解析不到 状态码,这里应该按标准格式来,协议 空格 状态码 空格 状态文本一个一个解析才对,但是RTC 认为状态码、文本是要一起有的。例子:同一个请......
  • delphi TcxGridPopupMenu控件学习笔记
    TcxGridPopupMenu控件用来给cxgrid设置右键菜单的.它长这样属性面板长这样: 默认的系统菜单长这样: 这菜单上面有好几个选项我不想要,怎么办?隐藏它呗!private{Privatedeclarations}procedureStdHeaderMenuPopup(Sender:TObject);//-----------------......
  • DateTimePicker如何与Delphi自带Style同步
    原文出处:DateTimePicker如何与Delphi自带Style同步-封三郎-博客园(cnblogs.com)Delphi的DateTimePicker组件有一个CalColors属性,可以设置DropDown打开的日历节目的风格。但如果不使用Delphi自带的Style,在这里设置属性看不到期望的效果。而使用了delphi自带的st......
  • delphi cxGrid做一个空白的出/入库单
    效果图: 实现的原理:1.在数据库建一个表,然后绑定到cxgrid上面.数据表各字段的数据类型,按你的业务需求来设置,同时要允许空值,因为我们必须让它们保持空值,这样在绑定到cxgrid时,才会是空白的,然后再弄个自增的主键ID.下面这张图是我研究时截的图,不想改了,凑合着用吧2.绑......
  • ExtJS 4 Beta 2预览:Ext.Brew包
       我们还没有介绍过ExtJS4众多特性之一的新Ext.Brew包。这是独一无二的Javascript框架,Ext.Brew是采用Sencha独特技术酿造的的一杯完美的茶。   使用新数据包的强大功能,可在任何时候构建一个生成一致均衡的茶的应用程序。开始之前,首先定义一个部件之间用于交互的模型。Ex......
  • Ext JS 4倒计时:开发者预览版
         作为ExtJS团队的代表,我很高兴地宣布第一个ExtJS4开发者预览版发布了。ExtJS4是到目前为止,我们所做的改动最大,有史以来最先进的Javascript框架。从生成HTML代码到类系统,框架的每一个领域几乎都被更新了。我们统一了Api,添加了令人难以置信的新功能和改进了整个框架......