【问题标题】:Crystal reports - running total for specific groupsCrystal 报表 - 特定组的运行总计
【发布时间】:2025-12-24 08:05:10
【问题描述】:

我有 4 个组,我只想对其中的 2 个进行运行总计,并在第二组之后显示总计。有没有办法做到这一点?

组1
详情A
记录...

组2
详情A
记录...


总计 - 总和(记录)

组3
详情A
记录...

组4
详情A
记录......

【问题讨论】:

    标签: crystal-reports report


    【解决方案1】:

    有几种方法可以做到这一点:

    (1) 设置汇总以汇总适当的字段 - 将其添加到组基脚部分,该组基脚部分在组不是 group2 时被抑制。

    (2) 为现有组 1 和 2 为设置为 1 的公式添加更高级别的分组,为组 3 和 4 设置为 2,然后将适当字段的总和添加到组基脚部分公式组(在公式不是 1 的情况下应禁止显示)。这样做:

    • 添加一个名为 TopGroup 的新公式字段(例如)。
    • 给它一个公式:

      if {TableName.GroupField} = Group1 or {TableName.GroupField} = Group2 then 1 else 2(将实际的 Group1Group2 值替换为合适)。

    • 在 TopGroup 上插入一个新组。您可能会发现现在这是最低级别的分组 - 打开 Group Expert 使其成为*别的分组。

    • 右键单击新组标题 #1 并选择抑制。
    • 将要汇总的字段拖放到新的组页脚 #1 中。在页脚中右键单击它并选择 Insert > Summary... ,选择适当的汇总操作(可能是 Sum)和 Summary Location 作为 Group #1,然后单击 OK。
    • 将新的汇总字段拖出它在组页脚 #1 部分中汇总的字段顶部,然后将 未汇总 数据字段替换为适当的文本字段 - 例如。 总计:
    • 进入Section Expert,将组页脚#1 设置为在{@TopGroup} <> 1 处有条件地抑制。如果您现在预览您的报告,您应该会看到 Group2 结束和 Group3 开始之间的所需总数。

    如果事实证明您可能需要在报告的其他地方显示运行总计,那么我会建议第一种方法,否则我个人更喜欢第二种方法。

    【讨论】:

    • 选项 2 听起来很有希望,但我不熟悉如何做到这一点(这里是 CR 新手)。您能否提供更多有关如何执行此操作的详细信息?
    • @dm80 - 添加了对第二个选项的一些解释。