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

SSRS summing values from multiple data sets and sub reports

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

我需要创建第三个 - 总计 table 或矩阵 returns 来自每个数据集和子报告的字段。

看起来像这样(开始)

首先,我构建了一个 table 并添加了一列以使用以下值对其进行测试。 (这是在总计行中)每个元素单独在各自的行中。

=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行数据,返回了6次。我如何在我的逻辑中指定一个 case 语句何时添加 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 采样,希望它有助于理解——列将继续第一行数据来自一个数据集。来自另一个等的第二个和总计将这些值加在一起作为总计。

您唯一能做的就是捕获来自不同 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