9

Ho una tabella in un rapporto SSRS che mostra solo un gruppo, non i dettagli della tabella. Voglio trovare il numero di riga per gli elementi che vengono visualizzati in modo che io possa utilizzare le strisce di colore. Ho provato a utilizzare "Rowcount (Nothing)", ma invece ottengo il numero di riga della tabella dei dettagli.RowNumber per il gruppo in SSRS 2005

miei dati sottostante è qualcosa di simile

ROwId Team  Fan 

1  Yankees John 
2  Yankees Russ 
3  Red Socks Mark 
4  Red Socks Mary 
...   
8  Orioles Elliot 
...   
29  Dodgers Jim 
... 
43  Giants Harry 

Il mio tavolo che mostra solo i gruppi si presenta così:

ROwId Team 
2  Yankees 
3  Red Socks 
8  Orioles 
29  Dodgers 
43  Giants 

voglio farlo sembrare come

ROwId Team 
1  Yankees 
2  Red Socks 
3  Orioles 
4  Dodgers 
5  Giants 

risposta

28

Si può fare questo con un'espressione RunningValue, qualcosa di simile:

=RunningValue(Fields!Team.Value, CountDistinct, "DataSet1") 

DataSet1 è il nome del set di dati sottostante.

considera i dati:

enter image description here

Creazione di un report semplice e confrontando gli approcci RowNumber e RunningValue mostra che RunningValue dà i risultati richiesti:

enter image description here

+0

che ha funzionato benissimo. grazie mille. – FistOfFury

6

Si può facilmente ottenere questo con un po 'di vbcode. Vai a Report - Immobili - codice e digitare qualcosa di simile:

Dim rownumber = 0 
Function writeRow() 
    rownumber = rownumber + 1 
    return rownumber 
End Function 

Poi sul tuo cellulare, chiamare questa funzione utilizzando =Code.writeRow()

Non appena si inizia a utilizzare i gruppi all'interno delle tabelle, le funzioni RowNumber e RunningGroup iniziare a ottenere alcuni comportamenti strani, quindi è più facile scrivere semplicemente un po 'di codice per fare ciò che vuoi.

+0

Questo è ottimo, a mio avviso migliore del valore di marcia –

0

non mi convince tutti i suggerimenti sopra forniti sono una soluzione per tutti. Il mio scenario è che ho un raggruppamento che ha più colonne. Non ho potuto utilizzare la soluzione concordata RunningValue perché non ho una singola colonna da utilizzare nella funzione a meno che non combini (diciamo una colonna calcolata) tutte per creare un'unica colonna univoca.

Non ho potuto utilizzare la funzione di codice VBA come per lo stesso motivo e ho dovuto utilizzare lo stesso valore su più colonne e più proprietà per quella materia a meno che non utilizzi qualche altro tipo di intelligenza dove se conoscessi il numero di usa (diciamo N colonne * M proprietà) quindi potevo solo aggiornare il RowNumber su ogni chiamata NxM, tuttavia, non potevo vedere alcuna funzione di conteggio delle colonne, quindi se aggiungessi una colonna avrei anche bisogno di aumentare la mia costante N. Inoltre non volevo aggiungere una nuova colonna come suggerito anche al mio raggruppamento in quanto non riuscivo a capire come nasconderlo e non potevo scrivere un sistema vba in cui potevo chiamare la funzione A che non restituisce nulla ma aggiorna il valore (cioè chiamato solo una volta per riga di gruppo) quindi chiama un'altra funzione GetRowNumber che restituisce semplicemente la variabile Rownumber perché la colorazione è stata eseguita prima della chiamata, quindi ho sempre avuto una colonna fuori sincrono rispetto al resto.

mie uniche altre 2 soluzioni ho potuto pensare è messo colonna combinati come accennato in precedenza nella query od utilizza DENSE_RANK e ordinamento su tutte le colonne di gruppo, ossia

DENSE_RANK() OVER (ORDER BY GroupCol1, GroupCol2, ...) AS RowNumber