FreeReport:如何格式化If-Then

时间:2013-10-26 07:36:38

标签: delphi formatting fastreport

我使用FreeReport(来自FastReport),我需要实现这样的代码:

If TOTALPAGES > 1 then Pageheader.visible = false

我不知道,在哪里写这段代码,我试着把一个pascal代码放进去,它不行。

此记录也不起作用:

[IFF([TOTALPAGES] > 1,'PAGEHEADER.VIBLE=0')]

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

通常放置代码的帖子将是 PageHeader 频段的OnBeforePrint(*)事件,这不适用于{{ 1}}

<TotalPages#>

此方法的问题是procedure PageHeader1OnBeforePrint(Sender: TfrxComponent); begin TfrxPageHeader(Sender).visible := (<TotalPages#> = 1); end; 此时不会被评估 这里的第二个问题是显示或隐藏PageHeader可能会影响页面的数量。要获得所需的结果,您必须按<TotalPages#>呈现报告。您可以使用可见的PageHeader和不可见的PageHeader两次执行此操作。报告的每个部分都可以由frxreport1.PrepareReport(true);访问。在使用之前确保已分配 作为旁注,另一个影响打印/预览对象的地方是frxReport组件的frxReport1.FindObject事件,它将在渲染之前为每个对象调用。

OnPrint

通常的地方实施报告代码: enter image description here

答案 1 :(得分:1)

您可以在报告中尝试类似的代码: [if([PAGE#]&lt; [TOTALPAGES],'Ok','Not Ok')]