水晶报告 - 从公式和运行总计分组

时间:2014-07-11 09:32:17

标签: crystal-reports grouping

我正在尝试创建一个Crystal Report。它具有的参数之一是布尔标志,它可以更改报告的分组。 我要做的是从公式中添加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(基于另一个flag-parameter)和Brand

我拥有的输出层:

 
                                                                                                               Name of Col1        Name of Col2        Name of Col3
Store: Value for Store Code, Season or Supplier: Value for Season or Supplier, Brand: Value for Brand |      total Brand Col1     total Brand Col2    total Brand Col3 ....

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

我想要的输出层:

                                                         Name of Col1        Name of Col2        Name of Col3
Store: Value for Store Code                      |
       Seas or Sup: Value for Season or Supplier |
               Brand: Value for Brand            |      total Brand Col1    total Brand Col2    total Brand Col3

//when supplier or season within all groups changes (not included in report)
       --------------------------------------------------------------------------------------------
       Total Supplier or Season:                    total Sup/Season Col1 total Sup/Season Col2 total Sup/Seas Col3
//when store within all groups changes (not included in report)
       Total Store:                                     total Store Col1    total Store Col2    total Store Col3
       ---------------------------------------------------------------------------------------------

使用total Brand Col1我想对同一品牌的每个字段的所有详细信息行进行摘要。

使用total Supplier Col1我想为同一供应商的每个字段汇总所有品牌。

使用total Store Col1我想为每个商店的每个字段总计所有供应商。


如何计算这些总数并仅在季节或供应商更改时显示这些总计,并且当商店更改时没有关于工会组的更改?

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

1 个答案:

答案 0 :(得分:0)

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

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

如果您希望进行三级分组时,refresh / runtime参数为FALSE,则公式应如下所示:

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

然后是下一个:

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

如果您想要总计/小计,只需将它们作为摘要字段放在组标题中,并使用条件显示来根据需要禁用它们。

结果将是,即使总是在所有三个级别上进行分组,对于始终有效的" Store_Code"下面的子组。如果{?Param} = TRUE,则每个子组只有一组所有记录,实际上意味着没有发生分组。

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