2013-04-04 98 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不是有效範圍,所以該函數會產生一個錯誤。解決這個問題很簡單:刪除此參數或將其替換爲有效值。

相關問題