【问题标题】:Crystal report - Grouping from Formula and Running Totals水晶报表 - 从公式分组和运行总计
【发布时间】:2014-07-11 09:32:16
【问题描述】:

我正在尝试创建一个水晶报表。它具有的参数之一是更改报告分组的布尔标志。 我要做的是从公式中添加 3 个级别的分组。

我写的代码是:

if {?summarized_detailed} = true then
    'Store Code : ' + {SNV_SP_ProfitabilityAndBreakEvenPerStore;1.WhsCode}
else
    if {?season_supplier} = true then
    'Store Code : ' + {SNV_SP_ProfitabilityAndBreakEvenPerStore;1.WhsCode} + ChrW(10) + 'Season : ' + {SNV_SP_ProfitabilityAndBreakEvenPerStore;1.SEASON} + ChrW(10) + 'Brand : ' + {SNV_SP_ProfitabilityAndBreakEvenPerStore;1.BRAND}
    else
    'Store Code : ' + {SNV_SP_ProfitabilityAndBreakEvenPerStore;1.WhsCode} + ChrW(10) + 'Supplier : ' + {SNV_SP_ProfitabilityAndBreakEvenPerStore;1.CardCode} + ChrW(10)  + 'Brand : ' +  {SNV_SP_ProfitabilityAndBreakEvenPerStore;1.BRAND}

{?summarized_detailed} 是参数(分组标志)。 如果他选择true,则报告必须包含列 -> Store CodeSeasonSupplier(它基于另一个标志参数)和 Brand

我拥有的输出层:

Col1 的名称 Col2 的名称 Col3 的名称 商店:商店代码、季节或供应商的价值:季节或供应商的价值、品牌:品牌价值 |总品牌 Col1 总品牌 Col2 总品牌 Col3 ....

有了这个代码,我得到了我想要的结果。所有数据库的行都根据这些组分开。 问题是,我希望报告中的每一列都有总和。但我不能这样做,因为上面的公式只创建了一个联合组。所以,我只能对每个品牌的细节做一个总结。

我想要的输出层:

Col1 的名称 Col2 的名称 Col3 的名称 商店:商店代码的价值 | Seas or Sup:季节或供应商的价值 | 品牌:品牌价值 |总品牌 Col1 总品牌 Col2 总品牌 Col3 //当所有组内的供应商或季节发生变化时(不包括在报告中) -------------------------------------------------- ------------------------------------------ 总供应商或季节:总 Sup/Seas Col1 总 Sup/Seas Col2 总 Sup/Seas Col3 //当所有组中的存储发生变化时(不包括在报告中) 总商店:总商店 Col1 总商店 Col2 总商店 Col3 -------------------------------------------------- ------------------------------------------

total Brand Col1我想对同一品牌的每个字段的所有详细信息行做一个汇总。

对于total Supplier Col1,我想将同一供应商的每个字段的所有品牌总数相加。

对于total Store Col1,我想汇总每个商店每个字段的所有供应商总数。


我如何计算这些总数并仅在季节或供应商发生变化时显示它们,以及当商店发生变化而不考虑工会组的变化时显示它们?

或者有没有一种更简单更好的方法可以根据参数从公式中制作这 3 组,但让它们分开,以便我可以控制它们并进行总结?

【问题讨论】:

  • 您创建了多少组和多少公式?
  • 我创建了一个公式。我在之前的评论中发布的那个。从这个公式中,创建了一个组。我现在的报告是正确的。有了这个,我的意思是分组可以很好地使用这个公式,每个组都有一个特定的商店、一个特定的季节和一个特定的品牌。在每一组中,这些值都在变化。我在之前的评论中写了我想要的布局。
  • 这里只有一条评论....就我理解您的问题而言,您需要创建3个组,其中Store 在一个组中,Supplier 在另一个组中,Brand 在另一个组..如果您将所有组中的所有 3 个混合在一起,那么您将无法满足您的要求。
  • 正是.. 使用我使用的方法,我只创建了一个包含所有 3 个的组(存储 ... 等),所以我不能用总数做我想做的事,之后。

标签: crystal-reports grouping


【解决方案1】:

这就是我处理这类需求的方式:

如果您最多需要 3 个组,但可能更少,那么您需要创建两个不同的公式字段。在报表设计中,您将分组设置为首先在 Store_Code 上分组,然后是其他两个公式字段。

如果刷新/运行时参数在您想要三级分组时为 FALSE,则公式应如下所示:

Group1_Formula1: if {?param} = TRUE then '' else {Season}

然后是下一个:

Group2_Formula: if {?param} = TRUE then '' else {Brand}

如果您想要总计/小计,只需将它们作为汇总字段放在组标题中,并根据需要进行条件显示以抑制它们。

结果将是,即使始终在所有三个级别上进行分组,对于始终处于活动状态的“Store_Code”下方的子组,如果 {?Param} = TRUE,实际上意味着没有发生分组。

一个警告:这假设您没有使用打印时评估,例如打印之前/之后等,在执行分组所需的任何相关公式中。

【讨论】:

  • 非常感谢。我做了我想做的事。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多