代码之家  ›  专栏  ›  技术社区  ›  David

SSRS 2005中的字符串聚合

  •  9
  • David  · 技术社区  · 17 年前

    使用BIDS 2005创建rdl报告。我想让报表聚合数据组中的所有字符串。我一直在寻找连接(Fields!CompanyName.Value,“,”)或连接,或等效的连接。但它必须迭代给定范围内的所有记录。

    我正在创建一个日历格式的用户活动报告(看起来像谷歌的月视图日历),但如果用户在一天内有多个活动,我希望所有活动都显示在同一个“日框”中。这是一个需要汇总的问题,还是有其他方法可以获得SSRS报告来做到这一点,我试图找到一种方法让矩阵为我做到这一点,但我遇到了困难。

    1 回复  |  直到 17 年前
        1
  •  16
  •   Peter Radocchia    17 年前

    在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\u Group1”,如果它是您在报告中创建的第一个表和第一个组,并且您没有指定其他名称。

        2
  •  0
  •   Rono    5 年前

    有一种更简单的方法可以通过分组值将值连接在一起。使用类似这样的表达式:

    =Join(LookUpSet(Fields!GroupField.Value, Fields!GroupField.Value, Fields!ConcatField.Value, "DataSet1"), ",")
    
    推荐文章