13

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

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

4

2 に答える 2

16

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」です。

于 2009-06-10T19:45:27.150 に答える
0

グループ化された値によって値を連結するためのより簡単な方法があります。式として次のようなものを使用します。

=Join(LookUpSet(Fields!GroupField.Value, Fields!GroupField.Value, Fields!ConcatField.Value, "DataSet1"), ",")
于 2021-02-26T16:18:52.050 に答える