【问题标题】:Crystal Reports 2008 - Summary of Non-Additive Formula FieldCrystal Reports 2008 - 非加法公式字段摘要
【发布时间】:2011-01-18 23:48:55
【问题描述】:

如果这个问题已经得到回答,我深表歉意;可能有,但我在 Google 和 SO 搜索一个多小时后都没有找到它。

我有一个非加法公式字段 (Cost / Qty)。它在详细信息行上运行良好,但是当我将它添加到我的组页脚时,它会返回最后一个详细信息行的值,而不是组级计算。我需要做什么才能根据组中的所有行评估公式?我很惊讶这不是将字段添加到组页眉或页脚时的默认行为。

这是我得到的:

Category    Cost Qty Avg Cost
Detail A-1  $100   1 $   100
Detail A-2  $200   3 $    67
Footer A    $300   4 $    67

我希望在页脚中看到 75 美元的平均成本:300 美元/4。如果我使用聚合,我会得到不正确的值(例如,总和为 167 美元,平均为 83 美元)。在 Cognos 中,我会使用“表达式”作为我的聚合公式。

请有经验的 CR 用户告诉我我需要做什么?

【问题讨论】:

  • 仅供参考,如果我将公式更改为“总和(成本)/总和(数量)”,它会在 所有 记录中求和,所以我会重复总平均数每一行,包括细节和摘要。
  • +1 为清楚起见并尝试自己找到答案:)

标签: crystal-reports formula crystal-reports-2008 summary


【解决方案1】:

您必须为报表页脚创建一个新的公式字段。

所以如果你的详细公式是这样的:

{Test.Cost} / {Test.Qty}

然后您需要使用以下内容创建新公式:

Sum ({Test.Cost}) / Sum ({Test.Qty})

并将其放置在报告页脚中。这将返回正确的平均值 (300 / 4 = 75)

编辑:

如果您想为组页脚执行此操作,则适用类似的原则。您必须创建一个新的公式字段并将其添加到组页脚。

例如,如果您按 Category 字段进行分组,那么计算该组平均值的公式将如下所示:

Sum ({Test.Cost}, {Test.Category}) / Sum ({Test.Qty}, {Test.Category})

【讨论】:

  • 确定需要在 Sum([,]) 表达式中指定分组条件,否则对整个报表求和。有关详细信息和语法,请参阅 CR 帮助:)
  • @Arvo - 我已经更新了我的答案。我没有提供将公式添加到报表页脚和组页脚的示例。我早些时候引用了 Group Footer,而实际上它是 Report Footer。谢谢
  • 我同意您编辑的答案。我正要说同样的话。
  • 成功了,谢谢,巴里!我为每个非加法公式创建了三份副本,一份用于详细信息,一份用于组,一份用于报告,它们工作得很好。这是一份简单报告的九个公式。我正在考虑在我的简历上写上“将不再与 CR 合作”。更严肃地说,我认为在 SQL 源代码中添加总计和小计比在报告工具中更容易时,它说明了一些问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-27
  • 1970-01-01
相关资源
最近更新 更多