首页 > 解决方案 > SSRS 表达式 IIF() 和 sum

问题描述

我在尝试运行报告时弹出此错误消息。它是 Dynamics AX 2012 的 SSRS 报告。

System.Web.Services.Protocols.SoapException:文本框“Textbox183”的 Visibility.Hidden 表达式具有对聚合函数无效的范围参数。范围参数必须设置为字符串常量,该常量等于包含组的名称、包含数据区域的名称或数据集的名称。在 Microsoft.ReportingServices.Library.ReportingService2005Impl.CreateReport(String Report, String Parent, Boolean Overwrite, Byte[] Definition, Property[] Properties, Guid batchId, Warning[]&Warnings) 在 Microsoft.ReportingServices.WebServer.ReportingService2005.CreateReport(字符串报告、字符串父级、布尔覆盖、字节 [] 定义、属性 [] 属性、警告 [] 和警告)*

下面的这个表达式是在文本框的可见性上设置的。

Format(sum(IIF(Fields!InventOnHand.Value <= Parameters!CutOff.Value, Sum(Fields!InventOnHand.Vallue), 0 )), "#, ##0.00")

请帮助我理解为什么上面显示的错误以及如何修复这个表达式。

标签: reporting-servicesssrs-2012ssrs-expression

解决方案


你想什么时候看到你的文本框?您的表达式正在计算美元金额,而不是导致需要Visibility的 True/False 条件。

由于错误询问您的数据集,我假设它不在表格中 - 表格中的文本框不需要数据集,因为表格与数据集相关联。

假设您只想在 Inventory 的 SUM 大于 CutOff 参数时查看文本框,您需要:

=IIF(SUM(Fields!InventOnHand.Value, "Dataset1") <= Parameters!CutOff.Value, True, False) 

推荐阅读