我的SSRS主报告中有两个数据集和一个子报告。
我需要创建第三个-总计表或矩阵,以从每个数据集和子报表中返回一个字段。
看起来像这样(开始)
首先,我建立了一个表并添加了一个列以使用以下值对此进行测试。 (在“总计总计”行中),每个元素单独位于相应的行中。
=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样本,希望能帮助您理解-列将继续来自一个数据集的第一行数据。来自另一个等的第二个和“总计”将值相加在一起得出“总计”。
答案 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