13

使用 BIDS 2005 创建 rdl 报告。我想让报告聚合数据组中的所有字符串。我一直在寻找类似 Concatenate(Fields!CompanyName.Value, ",") 或 Join 或等效的东西。但它必须遍历给定范围内的所有记录。

我正在以日历格式创建用户活动的报告(看起来像谷歌的月视图日历)但是如果用户在一天中有多个活动,我希望所有活动都显示在同一个“日框”中。这是需要聚合的问题还是有其他方法可以让 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 回答