8

使用BIDS 2005創建rdl報告。我想讓報告彙總數據組中的所有字符串。我正在尋找沿着Concatenate(Fields!CompanyName.Value,「,」)或Join的行或同等的東西。但它必須迭代給定範圍內的所有記錄。SSRS 2005中的字符串聚合

我正在創建日曆格式的用戶活動報告(看起來像谷歌的月視圖日曆)但是,如果用戶在一天中有多個活動,我希望他們都在同一天出現框'。這是一個需要聚合的問題,還是有一些其他方式可以獲得SSRS報告來做到這一點,我試圖找到一種方法讓矩陣爲我做,但我正在打牆。

+0

謝謝喬爾爲標籤更正,我一定會下次使用這些。 – David 2009-06-10 21:10:59

回答

8

在SSRS中執行聚合級聯的常用方法是使用自定義代碼。在這裏看到的例子:

http://blogs.msdn.com/suryaj/archive/2007/08/11/string-aggregation.aspx

下面是基本形式的自定義代碼:

Private CurrGroupBy As String = String.Empty 
Private ConcatVal As String = String.Empty 
Public Function AggConcat(GroupBy as String, ElementVal as String) as String 
    If CurrGroupBy = GroupBy Then 
     ConcatVal = ConcatVal & ", " & ElementVal 
    Else 
     CurrGroupBy = GroupBy 
     ConcatVal = ElementVal 
    End If 
    Return ConcatVal 
End Function 

然後在分組級別這個表達式要顯示:

=RunningValue(
    Code.AggConcat(
     Fields!YourFieldToGroupBy.Value 
     , Fields!YourFieldToConcat.Value 
     ) 
    , Last 
    , "YourGroupName" 
    ) 

「YourGroupName」通常是「table1_Group1」,如果它是在報告中創建的第一個表和第一個組,並且未指定其他名稱。

+1

到目前爲止一直工作謝謝你!這是我讀過的一種方法,但我也讀過使用共享變量(CurrGroupBy和ConcatVal)是一個壞主意,並說它們在報告的所有實例之間共享。在網絡服務器上做壞事。你知道這是真的嗎? – David 2009-06-10 21:08:12