如何根据运行计数结果来抑制组头?

时间:2010-05-16 16:50:35

标签: crystal-reports

我试图抑制组头当在另一以下组没有详细结果。我已经手动运行计数总被示出正确的数字相加(例如0时,没有记录显示在报告上)。我已经采取了这种方法,因为我有详细的区间内抑制各种项目,不想让他们为计数的一部分。

我试图在不示出的报头是否有在详细视图,示出没有相应的记录头的话。但是,它不起作用。当我说抑制显示计数是否为0时,它会抑制所有标题而不仅仅是需要显示的标题。我该如何修复它?

修改

我自己想出来了...... 我需要创建主报告的子报告。然后我添加了一个共享变量,该变量仅在主报表在组头上方的部分中具有子报表时才有效,该子报表需要传递给该组的值。诀窍是不要使用子报表来抑制该节,并确保子报表位于同一组标题中(只是要分组的同一字段的单独部分)。

Crystal在放置时非常温和,如果子报表被抑制,Crystal版本10将不会传递共享变量。

2 个答案:

答案 0 :(得分:3)

试试这个, 转到部分专家并选择要抑制的部分。转到公式部分“Supress(No Drill-Down)”并输入以下公式。

计数({LIB_MARC_DETAILS.MARC_DATA},{LIB_BIBLIO.RSN})< 2

第一个字段是要计数的字段。第二个字段是用于分组的字段。最后抑制的条件(在这种情况下,它将抑制包含少于2个记录的任何组的那个部分)

答案 1 :(得分:1)

这是报告处理方式的问题。

Crystal Report从上到下运行,因此如果您在标题字段中有运行总计,则该点的总计不会是报表到达组页脚时的总计。当您将suppress语句放入。

时,这可能就是为什么所有组标题都会消失的原因

我能想到两种选择。您可以尝试限制数据,以便您可以使用标准摘要而不是运行总计,或者您可以滚动自己的运行总计。

如果您可以以允许使用标准计数的方式限制数据(右键单击该字段并选择“插入/摘要”),则可以引用该组中字段的计数。这种方法将按您期望的方式工作。

否则我相信你必须像你提到的here一样滚动你自己的跑步总数。在这里,他们获取数据并将其放在一个全局变量中,然后使用“WhilePrintingRecords”显示数据,或者在您的情况下使用它在抑制公式中。

希望这有帮助。

根据您的回答/编辑进行编辑: 仔细查看我发送的链接。它使用WhileReadingRecords收集所需的信息,然后使用值WhilePrintingRecords。如果您打算使用此方法,我认为您需要创建自己的运行总计,而不是在计算中使用当前的运行总计。我相信你必须自己增加并重置你的全局变量。希望这会有所帮助。