Crystal reports 使用布尔值抑制节/字段

Crystal reports 使用布尔值抑制节/字段,crystal-reports,crystal-reports-2008,Crystal Reports,Crystal Reports 2008,好的,首先,以下是我想要实现的目标: 我正在尝试将“条款%条件”部分附加到打印输出。我通过将报表页脚拆分为几个部分来实现这一点。报表页脚的第一部分包含实际的报表页脚数据(美元总额之类的)。其他页面包含条款和条件内容,并设置为在每个页面之前创建一个新页面。我设置了一个页眉,但我不希望所有的页眉都打印在条款和条件页面上,所以我尝试使用布尔变量来确定条款和条件何时开始打印。以下是方法: 在报告标题中,我声明并设置了如下变量: booleanvar TermsStart; TermsStart := f

好的,首先,以下是我想要实现的目标: 我正在尝试将“条款%条件”部分附加到打印输出。我通过将报表页脚拆分为几个部分来实现这一点。报表页脚的第一部分包含实际的报表页脚数据(美元总额之类的)。其他页面包含条款和条件内容,并设置为在每个页面之前创建一个新页面。我设置了一个页眉,但我不希望所有的页眉都打印在条款和条件页面上,所以我尝试使用布尔变量来确定条款和条件何时开始打印。以下是方法: 在报告标题中,我声明并设置了如下变量:

booleanvar TermsStart;
TermsStart := false;
然后在实际报告页脚(含美元总额)中,我将其设置为true,因为报告本身已完成,剩下的只是术语部分:

booleanvar TermsStart;
TermsStart := true;
现在,在标题部分中,我编写了以下内容,以尝试抑制不需要的部分:

booleanvar TermsStart;
TermsStart;

它没有在应该的时候抑制,所以我在整个报告的几个部分打印了TermsStart变量,在每个地方它都打印false,甚至在我将其设置为true的同一部分。设置为true的公式字段实际上打印为true,但变量似乎没有更改或以某种方式重置。有什么想法吗?

这样不行。它不抑制页眉的原因是,在页眉部分,变量仍然是“false”,而在页脚中是“true”。因此,如果在“true”的条件下在标题中放置一个suppress,它将失败。
我建议你试着用页码来代替。我不确定您的报告是如何构造的,但您可以使用TotalPageCount。类似于
PageNumber TotalPageCount
的抑制语句将抑制您的条款和条件,直到最后一页,
PageNumber=TotalPageCount
将抑制最后一页上的标题。

我最初尝试使用
PageNumber
(条款为3页),但还有一个问题(一段时间前的我)这使得它有4个页面,并把我甩了。我还没有解决其他问题,但totalpagecount似乎对这一个有效。也就是说,你说它不起作用的原因是因为页眉首先被解析,变量在页脚之前没有设置为true,这就是为什么抑制页眉的条件失败的原因。这有道理,但没有意义的是,在设置为true的同一部分以及之后的每个页脚部分,为什么打印变量仍然显示为false?有没有办法将文件附加到帖子?我可以附加一份报告副本来向您说明我的意思。嗯,我认为您编写公式的方式不太正确是的。我在一个示例报告中尝试了它,并在两个不同的公式中使用了“shared booleanvar TermsStart;TermsStart:=false;”和“shared booleanvar TermsStart;TermsStart:=true;”。我在标题中加上了“false”和“true”在报表页脚中。我认为错误在您尝试显示值的公式中:它应该是“shared booleanvar TermsStart;TermsStart”。因此,请保留“;”请退出最后一行,再试一次。你是对的。我的公式不太正确。分号没有什么区别,但我注意到你使用的是共享变量,而我使用的是全局变量。一旦我将其更改为共享变量,一切都正常了(包括抑制标题的公式)!谢谢你的帮助!