2012-06-12 17 views
6

En un informe, tengo un conjunto de datos con un filtro (basado en un parámetro MultiValue).Servicios de informes: unir todos los campos en un conjunto de datos

Este conjunto de datos contiene dos campos: Id y Nombre.

tengo que mostrar algún lugar la concatenación de todos los nombres:

Name1/Name2/Name3 

El problema es que el método join sólo funciona en conjunto, y entonces no se puede especificar un conjunto de datos como valor.

Miré en código personalizado también, pero no encontré nada funcionando.

¿Cómo debo hacer esto?

Respuesta

2

SSRS-2008 R2 y mayores ...

1. Uso de LookupSet
Si estás más allá de la versión 2008 ha OP, existe una buena solución:

=Join(LookupSet(1, 1, Fields!Name.Value, "DatasetName"), "/") 

El crédito para esta respuesta usando the LookupSet solution va completamente a @urbanhusky's answer.


SSRS-2008 y menor ...

me quedo con esta respuesta, ya que aunque los agregados @ solución de urbanhusky con las soluciones disponibles para los pobres almas pegadas con la versión de OP de SSRS y por debajo.

En SSRS 2008 solo hay tres "opciones" por lo que puedo ver, cada una con su propio inconveniente. El primero es probablemente el menos hackish.

2. parámetro adicional
Crear un parámetro interno (por ejemplo, "NameParameter", ver this SO answer o MSDN) con permiten múltiples valores. Establezca el valor predeterminado del parámetro en el campo Name de su conjunto de datos. Luego use la función =Join(Parameters!NameParameter.Value, "/") para mostrar los nombres unidos en un cuadro de texto.

Esta puede ser su mejor opción, pero si hay muchos valores, es posible que el parámetro no funcione muy bien.

3. Uso de una lista
crear una lista y arrastrar/soltar el campo Nombre a ella. Si es necesario, agrupe también en el Nombre.

La desventaja aquí es que (AFAIK) no se puede hacer que la lista se muestre horizontalmente.

4. Uso de una matriz
Oh, muchacho, de éste es muy fea. No obstante, aquí va: cree una matriz, arrastre el campo Nombre al encabezado de la columna y oculte la primera columna y la segunda fila (para mostrar los datos).

La principal desventaja es que es un truco (y bastante exagerado), además de que tendrá que recortar el último carácter del separador manualmente con una expresión.

+0

Por desgracia, no puede: 1. Sólo la reciben Identificación del remitente, 2. Tengo que poner esto de manera horizontal, 3. Ya lo intenté, pero tengo que especificar el ancho de cada columna :( – J4N

+0

Con la opción 1 quise decir un parámetro * interno *, no uno el usuario tiene que completar, pero uno que está lleno por el conjunto de datos. – Jeroen

+0

Oh, no sé este tipo de "parámetro interno" ¿tiene alguna información sobre esto? – J4N

15

Puede que sea un poco tarde para esto, pero para cualquier persona que está interesado en esto, hay una manera bastante fácil de hacer esto en SSRS:

=Join(LookupSet(1,1,Fields!Name.Value, "DatasetName"),"/") 
+0

'LookupSet' no disponible en ssrs-2005. ¿Alguna solución similar? – maxx777

+0

Lo siento, no conozco ningún otro método. – urbanhusky

+0

Leyenda, LookupSet está bastante poco documentado: los dos primeros parámetros son 1, es el truco aquí. – meataxe

Cuestiones relacionadas