我使用FreeReport(来自FastReport),我需要实现这样的代码:
If TOTALPAGES > 1 then Pageheader.visible = false
我不知道,在哪里写这段代码,我试着把一个pascal代码放进去,它不行。
此记录也不起作用:
[IFF([TOTALPAGES] > 1,'PAGEHEADER.VIBLE=0')]
这样做的正确方法是什么?
答案 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
通常的地方实施报告代码:
答案 1 :(得分:1)
您可以在报告中尝试类似的代码: [if([PAGE#]&lt; [TOTALPAGES],'Ok','Not Ok')]