8

BIDS 2005を使用してrdlレポートを作成する。レポートにデータグループのすべての文字列を集約させたい。私は、Concatenate(Fields!CompanyName.Value、 "、")、Join、または同等の行に沿って何かを探していました。しかし、与えられた範囲内のすべてのレコードを反復処理する必要があります。SSRS 2005の文字列集約

Googleのカレンダー形式のカレンダー形式のユーザーのアクティビティレポートを作成しています(Googleの月表示カレンダーのように見えます)。ただし、ユーザーが1日に複数のアクティビティを行っている場合、同じ日にすべてのアクティビティを表示したいボックス'。これは集約を必要とする問題か、これを行うためのSSRSレポートを取得するための他の方法ですが、私はそれを行うためのマトリックスを得る方法を見つけようとしましたが、私は壁にぶつかっています。

+0

タグ修正のためのJoelありがとうございました、私はそれらの次回を必ず使用します。 – David

答えて

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)を使用することは、レポートのすべてのインスタンスで共有されているという悪い考えでした。 Webサーバー上で行うことは悪いことです。これが本当かどうか知っていますか? – David

+0

それは本当かもしれない、私は知らない。あなたが見つけたら、ここに何かを投稿してください。私はその答えを喜ばせるでしょう。 –

+0

これは大きな助けになります。ドキュメント内の例では、RunningValueのカスタム関数を呼び出すようには見えません。 –

関連する問題