2013-04-04 71 views
2

表达“范围参数对集合函数无效”是什么意思?

=FormatNumber(Avg(CInt(Code.FirstSplit(Fields!AvgLOSC4.Value)), 0), 0)

导致以下错误消息,当我尝试更新我在SSRS经理报告。

“文本框'textbox16'的值表达式的范围参数对集合函数无效。必须将scope参数设置为一个字符串常量,该常量等于包含的组的名称,包含数据区域的名称或数据集的名称(rsInvalidAggregateScope)。“

如何解决此问题以摆脱此消息?我搜索了这条消息,但由于某种原因,搜索结果对我来说没有意义。

更新#1 上述表达这个

=FormatNumber(Avg(CInt(Fields!AvgLOSC4.Value.Split("|"c)(0))), 0) 

之前,我就把它改成了一个解决不同的问题。

+0

您使用的是哪种SSRS版本?我要猜测2005年;我也会打赌你正在使用Matrix报告项目。真正? – 2013-04-05 17:43:12

回答

0

也能正常工作对我来说:

=FormatNumber(Avg(CInt(Code.FirstSplit(Fields!AvgLOSC4.Value))), 0, 0) 

甚至:

=FormatNumber(Avg(CInt(Code.FirstSplit(Fields!AvgLOSC4.Value))), 0) 

只是取决于你的格式要求是什么。

您还可以使用Format属性设置文本框级别的格式,而不是尝试执行表达式。

+1

这个问题明确提出“这是什么意思” – krilovich 2015-10-19 16:00:44

-1

分组'页面'的隐藏表达式的范围参数对聚合函数无效。 scope参数必须设置为一个字符串常量,该常量等于包含的组的名称,包含的数据区域的名称或数据集的名称。

4

什么:

聚合函数指定的范围内计算出自己的价值。所以当你使用Sum函数时,这将回答你获得这些字段集合的问题。范围可以是整个数据集,也可以是Tablix中的一个组。这就是为什么您可以在表格的总计行中以及可能存在的任何小计行中使用诸如=Sum(Fields!Quantity.Value)这样的函数。

聚合函数的第二个参数允许您明确指定希望其操作的范围。因此,在小计中,您可以使用=Sum(Fields!Quantity.Value, "DataSet1")来检索总计,而不是像百分比计算那样。如果您不使用第二个参数,则聚合函数将使用该单元格的默认范围。

有是概括在一些细节表达范围的MSDN文章:当您使用第二个参数为具有聚合函数使用https://msdn.microsoft.com/en-us/library/dd255256.aspx#Anchor_1

错误消息“是无效的聚集函数范围参数”发生无效范围。 SSRS的引擎不知道要在哪些字段上操作,因此无法继续。

为什么:

这是错误消息意味着什么。至于为什么会出现在这里,以及如何解决它在这种特殊情况下,它可能是有用的,错开了表达,并期待在正在使用的参数:

=FormatNumber 
(
    Avg 
    (
     CInt(Code.FirstSplit(Fields!AvgLOSC4.Value)) 
!!  , 0 
    ) 
    , 0 
) 

该表达式使用0作为第二个参数到平均聚合函数。 0不是有效范围,所以该函数会产生一个错误。解决这个问题很简单:删除此参数或将其替换为有效值。

相关问题