8

Utilizzo di BIDS 2005 per creare report rdl. Voglio che il report aggreghi tutte le stringhe in un gruppo di dati. Stavo cercando qualcosa sulla falsariga di Concatenate (Fields! CompanyName.Value, ","), o Join, o equivalente. Ma dovrebbe iterare su tutti i record nello scope dato.Aggregazione di stringhe in SSRS 2005

Sto creando un report delle attività di un utente in un formato di calendario (simile al calendario di visualizzazione del mese di Google) Ma se un utente ha più attività in un singolo giorno, desidero che tutti vengano visualizzati nello stesso giorno scatola'. Si tratta di un problema che richiede l'aggregazione o c'è un altro modo per ottenere un rapporto SSRS per farlo, ho cercato di capire come far sì che la matrice lo faccia per me, ma sto colpendo i muri.

+0

Grazie Joel per le correzioni dei tag, sicuramente ne userò la prossima volta. – David

risposta

8

Il metodo normale di concatenazione di aggregati in SSRS è con codice personalizzato. Vedi qui per un esempio:

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

Ecco il codice personalizzato in forma di base:

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 

Seguito da questa espressione a livello di raggruppamento si desidera visualizzare:

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

"YourGroupName" è in genere "table1_Group1", se è la prima tabella e il primo gruppo che hai creato nel report e se non hai specificato un nome diverso.

+1

Questo ha funzionato finora grazie! Questo è un approccio che avevo letto, ma avevo anche letto che usare le variabili condivise (CurrGroupBy e ConcatVal) era una cattiva idea, dicendo che sono condivisi tra tutte le istanze del rapporto. Brutta cosa da fare su un server web. Sai se questo è vero? – David

+0

Potrebbe essere vero, non lo so. Se lo scopri, per favore pubblica qualcosa qui, e io wikify la risposta. –

+0

Questo è di grande aiuto. Nessuno degli esempi nei documenti sembra mostrare la chiamata di una funzione personalizzata per RunningValue. –