首页 文章

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

提问于
浏览
1

我正在尝试在另一个后续组中没有详细结果时抑制组头 . 我添加了一个手动运行计数总计,显示正确的数字(例如,当报告中没有显示记录时为0) . 我已采用这种方法,因为我在详细部分中抑制了各种项目,并且不希望它们作为计数的一部分 .

如果在详细部分中没有显示相应的记录,我试图在 Headers 中说不显示 Headers . 但是,它不起作用 . 当我说抑制显示计数是否为0时,它会抑制所有 Headers 而不仅仅是需要显示的 Headers . 我怎样才能解决这个问题?

EDIT

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

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

2 回答

  • 1

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

    计数()<2

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

  • 3

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

    Crystal Report从上到下运行,因此如果您在 Headers 字段中有运行总计,则该点的总计不会是报表到达组页脚时的总计 . 当你把suppress语句放入时,这可能就是为什么所有组 Headers 都会消失的原因 .

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

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

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

    希望这可以帮助 .

    Edit in response to your answer/edit: 仔细查看我发送的链接 . 它使用WhileReadingRecords收集所需的信息,然后使用值WhilePrintingRecords . 如果您打算使用此方法,我认为您必须自己增加并重置您的全局变量 . 希望这可以帮助 .

相关问题