如何用Delphi编程获取FastReport总页数并在报告首页展示?
FastReport 动态获取报表总页数实现方案
你需要先让FastReport完成全量报表的预渲染,才能拿到正确的总页数数值,修改后的实现代码如下:
procedure ShowReport(frxReport: TfrxReport); var AText: string; TotalPageCount: Integer; begin // 后台预生成全量报表,不显示进度条 frxReport.PrepareReport(False); // 读取已生成报表的总页数 TotalPageCount := frxReport.TotalPages; // 赋值给第一页指定的文本组件 AText := Format('This report has %d pages...', [TotalPageCount]); TfrxMemoView(frxReport.FindComponent('mmoTermoAberturaDescricao')).Text := AText; // 重新生成修改后的报表并预览 frxReport.PrepareReport(False); frxReport.ShowPreparedReport; end;
注意事项
TotalPages属性只有在调用PrepareReport完成全量报表渲染后才会返回正确值,未渲染前读取只会返回0- 如果不需要通过代码动态拼接文本,也可以直接在FastReport设计器中选中
mmoTermoAberturaDescricao组件,将文本内容设置为This report has [TotalPages] pages...,FastReport会在渲染时自动替换内置变量[TotalPages]为实际总页数,无需额外写代码控制。
内容的提问来源于stack exchange,提问作者Soon Santos
相关产品推荐
相关产品推荐

