Reporting services 在一个tablix而不是另一个tablix中的TablixCell错误中使用以前的聚合函数

Reporting services 在一个tablix而不是另一个tablix中的TablixCell错误中使用以前的聚合函数,reporting-services,ssrs-tablix,Reporting Services,Ssrs Tablix,我有一个SSRS报告,它可以很好地使用此代码检查tablix中的前一个单元格: =IIF(SUM(Fields!Transactions.Value) > Previous(SUM(Fields!Transactions.Value),"matrix1_Month"), "Green", "Red") 这在第一张表格matrix1的报告中起作用,很好 我复制了tablix,使用了不同的数据集,称之为xforeigncardings,并使用了以下代码:

我有一个SSRS报告,它可以很好地使用此代码检查tablix中的前一个单元格:

=IIF(SUM(Fields!Transactions.Value) >       
           Previous(SUM(Fields!Transactions.Value),"matrix1_Month"), "Green", "Red")
这在第一张表格matrix1的报告中起作用,很好

我复制了tablix,使用了不同的数据集,称之为
xforeigncardings
,并使用了以下代码:

=IIF(Fields!Transactions.Value > 
           Previous(Fields!Transactions.Value),"xForeignCardholders_Month", "Green", "Red")
除了tablix的名称外,其他内容都是相同的

现在报告给了我错误

“在TablixCell中使用以前的聚合函数…”

为什么它在第一种情况下有效,而在第二种情况下无效?报告只是一个数据单元,没有聚合。在本报告的前一个版本中,三个不同的表格(tablii?)都使用了相同类型的代码,没有错误


我可以在SQL中解决这个问题,但它确实会给本来应该非常简单的东西增加很多复杂性。

我认为问题在于,在第一个实例中,您使用了agregate函数,而在第二个实例中,您使用了值本身,没有聚合,比较:

IIF(SUM(Fields!Transactions.Value)>上一个(SUM(Fields!Transactions.Value),“matrix1\u月”),“绿色”,“红色”)

=IIF(字段!交易.Value>以前的(字段!交易.Value),“xforeigncardens\u月”、“绿色”、“红色”)

致以最良好的祝愿


~Alexey

我的情况虽然相似,但并不完全相同-所以可能不是您遇到的情况,但我得到了确切的错误,这是因为我的分组发生了变化-也就是说,每个分组都有一个唯一的名称,所以如果您要将表达式从一个表复制到另一个表,您必须确保已在“Previous”表达式中更新组名。我在两个表中都使用了一个名为“Year”的字段,但似乎不能在一个表中的另一个表中重复一个组。因此,当我复制我的单元格(以及其中的表达式)时,目标分组是“Year1”或“Year2”等。表达式必须相应地更新

在您的示例中,请确保每个表达式都有正确的组名,例如“xforeigncardens\u Month”。您可能会发现组名实际上是“XForeignCardingers_Month1”或类似的名称

我还发现,当我将表达式从一个单元格复制/粘贴到另一个单元格时,它会删除大部分表达式。您必须编辑原始表达式,复制它,然后在新单元格中编辑表达式,然后粘贴它。这似乎只有在使用一个小的报告代码脚本calculate YoY delta时才会发生,而且在复制时,“code.getDeltaperEntage”之后的所有内容都会从表达式中删除。只是一些需要注意的事情

更新:我刚刚发现,有时候,在复制/粘贴某些单元格后,在验证表达式是否完全相同后,我仍然会遇到此错误。删除单元格的内容,从单元格中的选择器图标中选择总和(Field.value),然后编辑相邻单元格上的表达式并插入我的“Previous”表达式,这样就可以了。如果这种行为有很好的理由,那我就无能为力了。似乎是另一个VS错误:|


我是自学成才的,所以我可能有一些术语错误,但希望这能让大家理解我的想法。

我尝试过使用SUM,也尝试过不使用SUM。同样的错误。令人困惑和恼火。弄清楚了信息和Alexey的答案在做什么。tablix单元格已分组,因此前一个参数需要聚合,否则实际上是将一组单元格值传递给前一个函数,而不是单个标量值。与其他人一样,我已通过使用基础SQL查询提供包含前一个月数据的列来修复此问题。我只是好奇为什么以前的汇总有时被忽略,有时被强制执行。