我是 SSRS (2012) 的新手,有着使用 BusinessObjects 的悠久背景,因此有时我很难知道如何搜索正确的术语。
我有一个这样的报告,其中各部分位于 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 中重写业务对象表达式,您可以执行以下操作:
=SUM(IIF(Date = "Date 3",Value,0), "DataSetName")
该表达式之所以有效,是因为如果“日期”字段不等于“日期 3”,它将返回零并且不会向 SUM 添加任何内容。仅行Date = "Date 3"
将会有他们的Value
包含在SUM()
功能。
关于 SSRS 范围和聚合函数的一些好资源:
- MSDN: 总计、聚合和内置集合的表达式范围(报表生成器和 SSRS) http://msdn.microsoft.com/en-us/library/dd255256.aspx
- MSDN: 聚合函数(报表生成器和 SSRS) http://msdn.microsoft.com/en-us/library/dd283115.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)