2012-06-12 12 views
6

In un report, ho un set di dati con un filtro (basato su un parametro MultiValue).Servizi di report: Unisci tutti i campi di un set di dati

Questo set di dati contiene due campi: ID e Nome.

ho bisogno per visualizzare qualche parte la concatenazione di tutti i nomi:

Name1/Name2/Name3 

Il problema è che il metodo join funziona solo su array, e quindi non può specificare un set di dati in valore.

Ho cercato anche un codice personalizzato, ma non ho trovato nulla che funzioni.

Come devo fare?

risposta

2

SSRS-2008 R2 e più elevati ...

1. Uso LookupSet
Se siete al di là della versione OP 2008 è, esiste una buona soluzione:

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

Il credito per questa risposta utilizzando the LookupSet solution va interamente a @urbanhusky's answer.


SSRS-2008 e inferiore ...

mi tengo questa risposta, però, perché aggrega @ soluzione urbanhusky con le soluzioni disponibili per povere anime bloccato con la versione del PO di SSRS e al di sotto.

In SSRS 2008 ci sono solo tre "opzioni" per quanto posso vedere, ognuna con il proprio lato negativo. Il primo è probabilmente il meno hacker.

2. parametro Extra
Creare un parametro interno (ad esempio, "NameParameter", vedere this SO answer o MSDN) con consentire più valori. Impostare il valore predefinito del parametro sul campo Name dal set di dati. Quindi utilizzare la funzione =Join(Parameters!NameParameter.Value, "/") per visualizzare i nomi uniti in una casella di testo.

Questa potrebbe essere la soluzione migliore, ma se ci sono molti valori il parametro potrebbe non funzionare molto bene.

3. Utilizzare un elenco
Crea una lista e drag/drop il campo nome. Se necessario, raggruppa anche il nome.

Lo svantaggio è che (AFAIK) non è possibile visualizzare l'elenco in orizzontale.

4. Utilizzare una matrice
Oh ragazzi, di questo vero e proprio brutto. Tuttavia, ecco qui: creare una matrice, trascinare il campo Nome sull'intestazione della colonna e nascondere la prima colonna e la seconda riga (per visualizzare i dati).

Lo svantaggio principale è che si tratta di un hack (e piuttosto un po 'eccessivo), inoltre sarà necessario tagliare manualmente l'ultimo carattere separatore con un'espressione.

+0

purtroppo non posso: 1. ricevo solo il ID dal mittente, 2. Devo mettere questo in modo orizzontale, 3. Ho già provato, ma devo specificare la larghezza di ogni colonna :( – J4N

+0

Con l'opzione 1 intendevo un parametro * interno *, non uno il l'utente deve riempire ma uno che è riempito dal set di dati – Jeroen

+0

Oh? Non conosco questo tipo di "parametro interno" hai qualche informazione su questo? – J4N

15

io possa essere un po 'tardi per questo, ma per tutti coloro che è interessato a questo, c'è un modo piuttosto facile di fare questo in SSRS:

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

'LookupSet' non disponibile in ssrs-2005. Qualunque soluzione simile? – maxx777

+0

Mi dispiace, non conosco nessun altro metodo. – urbanhusky

+0

Legenda, LookupSet è piuttosto scarsamente documentato - i primi due parametri sono 1 il trucco qui. – meataxe

Problemi correlati