使用 BIDS 2005 创建 rdl 报告。我想让报告聚合数据组中的所有字符串。我一直在寻找类似 Concatenate(Fields!CompanyName.Value, ",") 或 Join 或等效的东西。但它必须遍历给定范围内的所有记录。
我正在以日历格式创建用户活动的报告(看起来像谷歌的月视图日历)但是如果用户在一天中有多个活动,我希望所有活动都显示在同一个“日框”中。这是需要聚合的问题还是有其他方法可以让 SSRS 报告执行此操作,我试图想办法让矩阵为我做这件事,但我碰壁了。
使用 BIDS 2005 创建 rdl 报告。我想让报告聚合数据组中的所有字符串。我一直在寻找类似 Concatenate(Fields!CompanyName.Value, ",") 或 Join 或等效的东西。但它必须遍历给定范围内的所有记录。
我正在以日历格式创建用户活动的报告(看起来像谷歌的月视图日历)但是如果用户在一天中有多个活动,我希望所有活动都显示在同一个“日框”中。这是需要聚合的问题还是有其他方法可以让 SSRS 报告执行此操作,我试图想办法让矩阵为我做这件事,但我碰壁了。
在 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”,如果它是您在报告中创建的第一个表和第一个组,并且您没有指定不同的名称。
有一种更简单的方法可以通过分组值将值连接在一起。使用类似这样的表达式:
=Join(LookUpSet(Fields!GroupField.Value, Fields!GroupField.Value, Fields!ConcatField.Value, "DataSet1"), ",")