【问题标题】:SSRS Total from sub-group to parent group从子组到父组的 SSRS 总计
【发布时间】:2014-10-23 11:53:44
【问题描述】:

我正在尝试计算父组中“Anzahl”单元格中过滤的子组的总和。如示例截图所示,子组中有两个数字 15 和 5,父组中的单元格显示 24 而不是 20。

截图:

https://dl.dropboxusercontent.com/u/17838009/screenshot.jpg https://dl.dropboxusercontent.com/u/17838009/screenshot2.jpg

=Countrows("table1_dc_evn_vpkn") 

这会引发错误:“范围参数必须设置为等于包含组名称、包含数据区域名称或数据集名称的字符串常量。”

所有使用=Sum=Count=IIF 查询的尝试都会给出错误的结果,因为它在计算时没有使用子组的过滤器。

我也尝试了一些自定义代码:

Public Total As Integer =0

Public Function Sum(ByVal Value As Integer) As Integer
    Total = Total + Value
    Return Value
End Function

这也没有用。

我正在寻找一种可能性,以便从父组访问子组单元格中的内容。我想到了类似的东西:

=Sum(ReportItems!Textbox90.Value)

这不起作用,因为:“聚合函数只能用于包含在页眉和页脚中的报表项”。

如何计算过滤后的子组的总和?

【问题讨论】:

    标签: reporting-services reporting crm


    【解决方案1】:

    您应该将希望应用于组的聚合函数放在组页眉或页脚内。这样,任何过滤或分组也将应用于它们。此外,您通常应该将聚合函数应用于字段值,而不是报告项目。

    如果您需要将数据放在分组行之外,您可以将聚合函数的范围参数设置为报表中的组名称。范围参数是传递给聚合函数的第二个可选参数。在您的情况下(我认为),该组的名称是“table1_dc_evp_vpkn”。所以你的聚合表达式看起来像:

    =Sum(Fields!FieldName.Value, "table1_dc_evp_vpkn")
    

    范围参数将聚合限制在报告中的范围内。当您想从报告的组或其他过滤部分中引用整个数据集的聚合时,这会派上用场,因为您可以将范围设置为数据集本身的名称,并且它将在没有字段的情况下进行聚合。

    【讨论】:

      【解决方案2】:

      试试 Sum(Max(Fields!FieldNameValue, "childGroupName"))。在 Sum 级别进行分组没有意义。您想在开始求和之前应用此组。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-12
        相关资源
        最近更新 更多