reporting-services - 在一个 Tablix 中而不是在另一个 Tablix 中的 TablixCell 错误中使用上一个聚合函数

标签 reporting-services ssrs-tablix

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

=IIF(SUM(Fields!Transactions.Value) >       
           Previous(SUM(Fields!Transactions.Value),"matrix1_Month"), "Green", "Red")

这在第一个 tablix、matrix1 的报告中有效。

我复制了该 tablix,使用了不同的数据集,将其命名为 xForeignCardholders,并使用了以下代码:

=IIF(Fields!Transactions.Value > 
           Previous(Fields!Transactions.Value),"xForeignCardholders_Month", "Green", "Red")

除了 tablix 的名称之外,其他都是相同的。

现在报告给了我错误

"Use of a Previous aggregate function in a TablixCell ..."

为什么它在第一个实例中有效,而在第二个实例中不起作用?该报告只是一个数据单元,没有聚合。在本报告的先前版本中,三个不同的 tablixes(tablii?)都使用了相同类型的代码,没有错误。

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

最佳答案

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

在您的情况下,请确保每个表达式都有正确的组名称,在您的示例中为“xForeignCardholders_Month”。您可能会发现组名称实际上是“xForeignCardholders_Month1”或类似名称。

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

更新:我刚刚发现有时,在复制/粘贴某些单元格后,在验证表达式完全相同后,我仍然会收到此错误。删除单元格的内容,从单元格中的选择器图标中选择 Sum(Field.value),然后编辑相邻单元格上的表达式并插入我的“上一个”表达式,它就会起作用。如果这种行为有充分的理由,那是我无法理解的。看起来像是另一个 VS Bug。 :|

我是自学成才,所以我可能有一些术语错误,但希望无论如何都能传达我的想法。

关于reporting-services - 在一个 Tablix 中而不是在另一个 Tablix 中的 TablixCell 错误中使用上一个聚合函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21634824/

相关文章:

ssrs-tablix - 如何将 tablix 控件添加到报表中?

sql - 根据多值参数中断 SSRS 报告

ssrs-2008 - 通过链接报告中的返回链接按钮返回原始报告,并在主报告中使用多选参数

reporting-services - 在 SSRS 中滚动时卡住列标题

reporting-services - 隐藏一行是一个字段为空

reporting-services - SSRS 自动将数据集中的所有列生成到 tablix (Report Builder 3.0)

mysql - 在我的查询中使用 Point() 会导致奇怪的结果,我使用它是错误的还是这是预期的?

sql-server-2008 - SQL Server 2008 - 报表管理器 URL 显示没有“属性”选项卡的页面

ssrs-2008 - ssrs 报告中的格式编号