【问题标题】:Crystal Reports XI - Suppress group header based on suppression status of sub-groupsCrystal Reports XI - 根据子组的抑制状态抑制组标题
【发布时间】:2012-08-03 10:24:01
【问题描述】:

我有一个相当简单的问题,尽管我在网上搜索了很多小时,但我还是没能自己锻炼。

我有一份报告,其中包含来自几千台设备(记录器)的时间戳数据,为了以合理的方式呈现数据,我在报告中设置了两个组;记录器和时间戳,因此数据首先按记录器 id 分组,然后按时间戳分组,工作正常

Group 1 Logger 1
  Group 2 Timestamp 01/08/2012
    Data...
    Data...
    Data...
  Group 2 Timestamp 02/08/2012
    Data...
    Data...
Group 1 Logger 2
  Group 2 Timestamp 01/08/2012
    Data...
    Data...
    Data...

现在数据(详细信息)字段对用户隐藏,如果每个 group-2 中有 4 条或更多记录,我只想显示 group-2 的标题。为了实现这一点,我在 group-2 上使用了以下抑制公式

Count ({GMAC_spDg2Report;1.tTimeStamp}, {GMAC_spDg2Report;1.tTimeStamp}, "daily") < 4

诀窍在于,在某些 1 级组中,所有 group-2 标头都被抑制,在这种情况下,我也想隐藏 group-1 标头。 在第 1 组中使用与第 2 组相同的抑制公式并没有产生预期的结果。我还尝试在 group-1 页脚中使用具有不同计数的运行总计(称为 {#Count Unsupressed Days}),并且在每个 group-1 上重置以下公式

Count ({GMAC_spDg2Report;1.strLogger}, {GMAC_spDg2Report;1.tTimeStamp}, "daily") > 4

运行总计完美运行​​,如果该组具有未抑制的子组,则在 group-1 页脚中返回 1,如果所有 group-2 标题都被抑制,则返回 0。

所以这是挑战,我似乎无法使用运行总计的输出在 group-1 的标题中应用抑制规则。 为了演示这个问题,我创建了一个公式字段,其中只包含运行总计的输出,并将其放在 group-1 标题中。 结果至少可以说令人困惑......公式字段显示的值与运行总计不同,因此抑制规则不起作用。

我希望这有点道理......我觉得我已经尝试了一切

【问题讨论】:

  • +1 非常好的问题。问题在于,由于 CR 评估通过的方式,必须在它们计数的记录上或之后使用运行总计。通过将您试图在组标题中隐藏的数据,您可以使用的函数受到限制(没有打印时间公式,没有运行总计,但基本的汇总函数应该可以)。

标签: crystal-reports


【解决方案1】:

我没有明确的解决方案,但使用以

开头的公式字段
WhilePrintingRecords;
...

公式将在读取所有记录后进行处理,因此您可以在节标题中使用它并获得正确的结果。
现在有一个问题是找到一个对您有用的公式逻辑,但也许这第一步可以帮助您朝着正确的方向前进。

【讨论】:

    【解决方案2】:

    我曾经遇到过类似的问题。我记得,诀窍是在每个详细信息部分检查Suppress blank section,并在组标题部分检查一些类似的发音选项Suppress blank group (?)。

    对不起,我不能给你确切的名字,这是很久以前的事了,我用的是德文版本。不过,我知道没有公式也是可能的。

    我认为您不使用子报告。如果你这样做了,请注意这个技巧只有在子报告有选项 Suppress empty report (?) 与我上面写的内容一起检查时才有效。

    【讨论】:

      猜你喜欢
      • 2014-03-31
      • 1970-01-01
      • 2011-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多