表达方式
=FormatNumber(Avg(CInt(Code.FirstSplit(Fields!AvgLOSC4.Value)), 0), 0)
当我尝试在 SSRS 管理器中更新报告时,会出现以下错误消息。
“文本框‘textbox16’的值表达式具有对聚合函数无效的范围参数。范围参数必须设置为字符串常量,该常量等于包含组的名称、包含组的名称数据区域,或数据集的名称。(rsInvalidAggregateScope)。”
如何解决问题以消除此消息?我搜索了该消息,但由于某种原因,搜索结果对我来说没有意义。
更新#1
上面的表达是这样的
=FormatNumber(Avg(CInt(Fields!AvgLOSC4.Value.Split("|"c)(0))), 0)
在我更改它以解决不同的问题之前。
What:
聚合函数计算指定范围内的值。因此,当您使用 Sum 函数时,这将回答您要获得这些字段中哪一组字段的总和的问题。范围可以是整个数据集,也可以是 Tablix 中的组之一。这就是为什么您可以使用诸如=Sum(Fields!Quantity.Value)
在表格的总计行以及可能存在的任何小计行中。
聚合函数的第二个参数允许您显式指定您希望它运行的范围。因此,在小计中,您可以使用=Sum(Fields!Quantity.Value, "DataSet1")
而是检索总计,通常用于百分比计算之类的事情。如果不使用第二个参数,聚合函数将使用该单元格的默认范围。
有一篇 MSDN 文章详细概述了表达式范围:https://msdn.microsoft.com/en-us/library/dd255256.aspx#Anchor_1 https://msdn.microsoft.com/en-us/library/dd255256.aspx#Anchor_1
当您使用第二个参数让聚合函数使用无效作用域时,会出现错误消息“作用域参数对于聚合函数无效”。 SSRS 的引擎不知道要操作这些字段中的哪一组,因此无法继续。
Why:
这就是错误消息的含义。至于为什么会出现在这里以及如何在这种特定情况下修复它,交错表达表达式并查看正在使用的参数可能会很有用:
=FormatNumber
(
Avg
(
CInt(Code.FirstSplit(Fields!AvgLOSC4.Value))
!! , 0
)
, 0
)
此表达式使用 0 作为 Avg 聚合函数的第二个参数。 0 不是有效范围,因此该函数会生成错误。解决这个问题很简单:删除此参数或将其替换为有效值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)