8

Uso de BIDS 2005 para crear informes rdl. Quiero que el informe agregue todas las cadenas en un grupo de datos. Estaba buscando algo parecido a Concatenate (Fields! CompanyName.Value, ","), o Join, o equivalente. Pero tendría que iterar sobre todos los registros en el alcance dado.Agregación de cadenas en SSRS 2005

Estoy creando un informe de las actividades de un usuario en un formato de calendario (pareciendo el calendario de vista de mes de Google) Pero si un usuario tiene múltiples actividades en un solo día, quiero que todas aparezcan en el mismo día caja'. ¿Es este un problema que necesita agregación o hay alguna otra manera de obtener un informe de SSRS para hacer esto, he intentado encontrar una manera de hacer que la matriz lo haga por mí, pero estoy llegando a las paredes.

+0

Gracias Joel por las correcciones de etiquetas, me aseguraré de utilizarlas la próxima vez. – David

Respuesta

8

La forma habitual de hacer la concatenación agregada en SSRS es con código personalizado. Vea aquí un ejemplo:

http://blogs.msdn.com/suryaj/archive/2007/08/11/string-aggregation.aspx

Aquí está el código personalizado en forma básica:

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 

Seguido de esta expresión en el nivel de agrupación que desea mostrar:

=RunningValue(
    Code.AggConcat(
     Fields!YourFieldToGroupBy.Value 
     , Fields!YourFieldToConcat.Value 
     ) 
    , Last 
    , "YourGroupName" 
    ) 

"YourGroupName" es típicamente "table1_Group1", si es la primera tabla y el primer grupo que ha creado en el informe, y si no especificó un nombre diferente.

+1

¡Eso ha funcionado hasta ahora, gracias! Este es un enfoque del que había leído, pero también había leído que usar las variables compartidas (CurrGroupBy y ConcatVal) era una mala idea, ya que se comparten entre todas las instancias del informe. Algo malo que hacer en un servidor web. ¿Sabes si esto es verdad? – David

+0

Eso puede ser cierto, no sé. Si lo descubre, publique algo aquí, y voy a wikify la respuesta. –

+0

Esto es de gran ayuda. Ninguno de los ejemplos en los documentos parece mostrar llamar a una función personalizada para RunningValue. –

Cuestiones relacionadas