SSRS来自多个数据集和子报告的求和值

时间:2018-12-05 17:35:57

标签: sql reporting-services dataset ssrs-2008 ssrs-2012

我的SSRS主报告中有两个数据集和一个子报告。

我需要创建第三个-总计表或矩阵,以从每个数据集和子报表中返回一个字段。

看起来像这样(开始)

enter image description here

首先,我建立了一个表并添加了一个列以使用以下值对此进行测试。 (在“总计总计”行中),每个元素单独位于相应的行中。

=ReportItems!tps_actual4.Value + ReportItems!Textbox1230.Value

tps_actual4来自一个数据集。 Textbox1230来自不同的数据集。

出现的第一个错误为:

"The value for the DataSetName property is missing"

如果我将代码更改为如下所示

=First(ReportItems!tps_actual4.Value, "Master_Data_Set") + First(ReportItems!Textbox1230.Value, "Secondary_Data")

我收到另一个错误消息:

The value expression for the textrun ''.. uses an aggregate function on a report item. Aggregate functions can be used only on report items contained in page headers and footers. 

这里没有我们要参考的数据集。我不确定如何解决这个问题。

第二个问题是在Textbox1230的情况下,由于有六行数据,它被返回6次。如何在逻辑中指定何时添加Textbox1230

的案例说明

最后,我什至不确定如何引用子报表,因为我们也需要访问子报表中的两个字段。

谢谢。

Grand Total         column1 column2  
Dataset1 Values        a      x  
Dataset2 Values        b      y       … and so on
Subreport Values       c      x  
Grand Total Sums    a+b+c   x+y+z    

上面是一个excel样本,希望能帮助您理解-列将继续来自一个数据集的第一行数据。来自另一个等的第二个和“总计”将值相加在一起得出“总计”。

1 个答案:

答案 0 :(得分:1)

您唯一可以做的就是捕获来自不同Tablix的所有总计并将这些值汇总到单独的Tablix中。但是您无法从子报表中获取值,这仅适用于实际报表中的数据集。如果您还想对子报表值求和,我建议使用@junketsu的解决方案。

假设您的报表中有2个数据集,每个数据集都是另一个Tablix的来源。在每个Tablix中,您需要立即添加总计

'Tablix 1 total
=Sum(Fields!TestValue.Value, "Dataset1")  'This expression is in Textbox1

'Tablix 2 total
=Sum(Fields!TestValue2.Value, "Dataset2")  'This expression is in Textbox2

现在添加第三个Tablix。在第一个文本框中输入以下表达式:

=ReportItems!Textbox1.Value  

在第二个文本框中:

=ReportItems!Textbox2.Value 

在第三个文本框中:

=ReportItems!Textbox1.Value + ReportItems!Textbox2.Value

第三种Tablix的结果将如下所示:

Dataset1 Total Value     11111
Dataset2 Total Value     22222
Overall Total            33333