在Crystal Reports XI中基于子报表中可用数据抑制报表标题的问题

时间:2019-01-28 13:40:42

标签: crystal-reports crystal-reports-xi

我的报告包含以下部分。

for i, x in enumerate(list1):
    list1[i] = x ** 2

在页脚#1b中,我放置了一个子报表,并且该子报表通过某些参数与主报表链接。

子报表只有一个需要打印的图像控件,但是它完全是有条件的,这意味着子报表可能没有更改数据,因此不会打印任何图像。为此,我执行以下操作:

在子报表上,我单击“文件” >>“报表选项”,并选中“如果没有记录则禁止打印”复选框,然后在主报表上单击子报表并选择格式报表,然后在“子报表”选项卡中选中“禁止空白子报表”复选框“

对于该部分,我也打开该部分专家,并选中“禁止空白部分”复选框。

通过以上操作,如果没有数据或子报表为空白,则节被抑制,但标题仍来自上一个记录和打印下一个记录。

1 个答案:

答案 0 :(得分:0)

由于没有人回答我的问题,经过几次研发,我找到了解决方案,这是解决方案: 在页面页眉中,我创建了一个共享变量,并检查它是否为真,然后抑制页眉,否则不显示。

然后查看报告的结构,在页脚1中,没有选中“重置页码之后”复选框。

在“组页脚#1a”组中,对“重置页号之后”应用公式,并检查下一个组(即组页脚#1b)的数据是否可用(如果可用),然后返回false作为重置页号,否则返回true以重置页号,在同一部分中,创建另一个公式,在该公式中,我再次创建与页面页眉中相同的共享变量,并根据下一部分的数据是否可用将该变量设置为false或true,并将该公式拖动到Group Footer#1a部分。

在包含子报表的组页脚#1b的最后一步中,我检查共享变量是否为true,然后将其设置为false。这样,在打印完节头之后,就可以再次打印了。

以上所有步骤都可以解决我的问题。