gpt4 book ai didi

reporting-services - 如何将范围分配给 ssrs 2012 中的报告变量

转载 作者:行者123 更新时间:2023-12-04 07:52:12 26 4
gpt4 key购买 nike

我是 SSRS (2012) 的新手,来自使用 BusinessObjects 的 loooong 背景,因此有时我很难知道如何搜索正确的术语。

我有一个这样的报告,其中的部分在 tablix 中,而总计在另一个中。
这种布局是必需的(或者这会更简单一些!)

Section 1
Date 1 Date 2 Date 3 % of Grand Total
Product1 value value Value Value3/GT3 (12%)
Product2 value value Value Value3/GT3 (14%)
Section Total Total1 Total Total3 Value3/GT3 (7%)

Section 2
Date 1 Date 2 Date 3
Product1 value value Value Value3/GT3 (30%)
Product2 value value Value Value3/GT3 (22%)
Section Total Total1 Total 2 Total3 Value3/GT3 (22%)

Grand Total GT1 GT2 GT3 GT3/GT3 (100%)

我很难计算总计的百分比,因为分子和分母不在同一范围内。
我想也许是一个报告变量,但我不知道如何从 BusinessObjects 创建这种公式的等价物 -
=Sum(Value) where (Date = "Date 3")

我想为我的报告变量分配上下文或范围,但我不知道该怎么做,或者它是否会起作用。

我知道我可以通过在引号中包含数据集名称来创建整个报告的范围,但如何限制为其中的一个子集?

谢谢,
点头。

最佳答案

SSRS 中的聚合函数将范围作为第二个参数。该范围参数是一个字符串,它是您的范围的“名称”。如果您希望范围是表组,则可以使用表组的名称。如果您希望范围是整个数据集,则可以使用数据集的名称。您始终可以在属性窗口中看到元素的名称(按 F4)。

根据您完成过滤的方式,您可以使用不同的范围。使用数据集名称将是最直接的方式,但前提是数据集已被过滤到 SQL 中的正确记录。否则,您可能希望使用 tablix 作为您的范围。 (在下面的示例中类似于“Tablix1”而不是“DataSetName”。)

一旦你知道你正在使用哪个范围,你就可以在聚合中使用条件来只查看正确的记录。例如。要在 SSRS 中重写您的 Business Objects 表达式,您将执行以下操作:

=SUM(IIF(Date = "Date 3",Value,0), "DataSetName")

此表达式有效,因为如果日期字段不等于“日期 3”,它将返回零并且不会向您的 SUM 添加任何内容。只有 Date = "Date 3" 所在的行将有他们的 Value包含在 SUM() 中功能。

一些关于 SSRS 作用域和聚合函数的好资源:
  • MSDN:Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)
  • MSDN:Aggregate Function (Report Builder and SSRS)
  • 关于reporting-services - 如何将范围分配给 ssrs 2012 中的报告变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24500703/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com