2

我正在构建一个报告,我正在尝试为变量(而不是参数)编写表达式。我计划创建多个变量,每个变量都引用来自不同数据集的金额的 SUM(SUM())。然后,我计划在单个文本框中引用这些变量中的每一个来进行计算。这是为了规避 SSRS 在单个 tablix/matrix 中使用多个数据集的限制。

我需要一些语法帮助。当我单独使用 SUM 时,报告运行良好,我可以毫无问题地对这些值执行计算。例如,这很好用:

变量1:

=SUM(Fields!Amount.Value, "DataSet1")

变量2:

=SUM(Fields!Amount.Value, "DataSet2")

文本框1:

=Variable1.Value - Variable2.Value

但是在尝试将其修改为以下内容时出现错误(这是我真正需要的):

变量1:

=SUM(SUM(Fields!Amount.Value, "DataSet1"))

我收到一条错误消息,提示“报表‘正文’的变量表达式使用没有范围的聚合表达式。除非报表只包含一个数据集,否则在数据区域之外使用的所有聚合都需要范围。” 我有一种预感,我的语法/括号放置有问题。我尝试再次添加“,DataSet1”,最后(SUM(SUM(Fields!Amount.Value,“DataSet1”),“DataSet1”)但收到有关递归嵌套问题的错误。有什么建议吗?

4

1 回答 1

4

我猜你在哪里分配变量,它没有这些列组的概念,所以唯一的选择是对整个数据集求和。

我认为您可以尝试以下方法之一:

  1. 从 tablix 中分配值(如果允许,您可能需要聚合然后设置变量的自定义代码)
  2. 在条件总和中再次指定分组条件,如SUM(IIF(Fields!Location.Value = TheLocationValueForTheColumnYouNeed, Fields!Amount.Value, 0))
于 2012-09-06T02:42:07.547 回答