水晶报表 - 当子报表存在时,如何抑制主报表中的页眉

4

大家好。

我正在运行Crystal Reports 9。

我有一个报告列出了一堆记录,然后有一个只包含图表的子报告。 我想抑制主报告的页面标题,在显示子报告(图表)的页面上。

我似乎无法想出一个公式来测试图表/子报告是否存在,以便抑制主报告中的页面标题。

任何建议都将不胜感激。


你能澄清一下你的问题吗?你的报告要么有子报表,要么没有 - 为什么需要测试是否存在一个子报表?(除非子报表是有条件显示的,在这种情况下,您只需要使用相反的条件来显示页眉。) - user359040
我的子报表总是被显示出来。(图表包含在子报表中)。但它所显示的页面编号是可变的,我只想在该页面上抑制主报表的页眉。希望这足以澄清问题。 - Daniel Retief Fourie
4个回答

10
在“专家”页面中,将以下内容作为“抑制(无钻取)”的公式放置在您想要隐藏的页眉下方:
whileprintingrecords;
global booleanvar no_header;

然后在页脚部分嵌入子报表的位置,将此公式放置于“重叠以下部分”中:

whileprintingrecords;
global booleanvar no_header:= true

这样,它将隐藏页面标题,当子报告开始时,您不希望其出现。

我希望这会有所帮助... :)


1
谢谢!非常有效。 - Daniel Retief Fourie

9
希望子报表/图表在它自己的部分中?
  • 在报表的第一部分(报表标题a)中插入一个新公式:global booleanvar no_header := false;
  • 在子报表部分上方插入一个有效高度为0的新部分。
  • 在此部分中插入一个新公式:global booleanvar no_header := true;
  • 在子报表部分中插入一个新公式:global booleanvar no_header := false;
  • 在您的页面标题条件抑制公式中输入公式:global booleanvar no_header;

您可能需要在所有这些公式前加上whileprintingrecords;

您可能需要稍微调整我的建议,但希望您能明白意思?


这肯定会抑制子报表后的所有页面的页眉,而不仅仅是带有子报表的页面? - user359040
不会想到这样...第四个要点应该能确保吧? - Lee Tickett
啊,是的 - 但是,如果在0高度部分和子报表部分之间立即有分页符,那么bp4将立即覆盖bp3,因此页面标题将永远不会被抑制? - user359040
我(可能错误地)假设子报表部分已经勾选了“前面新建页面”。 - Lee Tickett
@RetiefFourie:你能给些建议吗? - user359040
1
我已经尝试了这个解决方案,它对我需要做的事情有效,谢谢大家的建议。我确实不得不勾选“前面加新页面”才能使其完全工作。 - Daniel Retief Fourie

0

我的建议:

  • 设置一个公式(命名为类似于ChartPage的名称)来确定子报表将显示在哪个页面上。
  • 使用类似于如下条件公式来抑制 PageHeader 部分:PageNumber={@ChartPage}

0

步骤1:

创建公式fPh(只是为了标识“公式页标题”),但您可以给它任何名称。

next({Command.PolicyID}) //which is any existing field from Main report

保存并退出。

步骤2:

进入报表,然后选择区域专家并选择页眉

单击常规选项卡下抑制旁边的公式按钮X-2,并输入以下内容。

PageNumber > 1 and isnull({@fPh})

保存后,你就完成了...享受吧


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接