You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 20:27:03