【问题标题】:Count all pages in FastReport programmatically using Delphi使用 Delphi 以编程方式计算 FastReport 中的所有页面
【发布时间】:2021-10-01 21:07:08
【问题描述】:

我在 Delphi 10.4 中使用 FastReport。在第一页我需要告诉用户报告的页数。当然,这个数字不是固定的——它可以是任何一个:

这份报告有 12 页。

这份报告有 23 页。

此报告有 1 页。

这是我的报告结构:在第 1 页有字段mmoTermoAberturaDescricao,这是我需要显示页数的地方。

这是我设置文本对象显示文本的代码:

procedure ShowReport(frxReport: TfrxReport);
var
  AText: string;
begin
  AText := 'This report has 12 pages...';
  TfrxMemoView(frxReport.FindComponent('mmoTermoAberturaDescricao')).Text := AText;
  frxReport.ShowReport();
end;

但是我怎样才能显示实际的页数呢?它必须是某种我需要访问的变量...

【问题讨论】:

    标签: delphi fastreport


    【解决方案1】:

    You can use system variables in your text object,例如[TOTALPAGES#](或[TOTALPAGES])。无论是在设计器中,还是通过代码:

      AText := 'This report has [TOTALPAGES#] pages...';
    

    【讨论】:

    • 我如何防止This report has 1 pages... 的措辞不好?如何访问实际变量以便我能够在单数和复数之间进行选择?
    • 好吧,在我的情况下,总页数的最小数量是 3,因此这对我来说不是问题。当只有一页时,计数也没有意义。但是,不知道该怎么做,因为它仅在打印完所有页面后才完成对总页数的计数,因此,我们可能需要OnAfterPrint 或我想象的类似的东西。
    • 只需执行“此报告有 [TOTALPAGES] 页”
    • 或者,也许是“此报告中的页数:[TOTALPAGES]”
    猜你喜欢
    • 1970-01-01
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    • 2019-01-12
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    相关资源
    最近更新 更多