[Reporting] Colorare a righe alternate una matrice

Published 10 maggio 07 05.14 | abenedetti

Per colorare a righe alternate un oggetto tabella è sufficiente utilizzare la funzione RowNumber scrivendo, ad esempio:
=iif(RowNumber(nothing) mod 2 = 0, "red", "green")

Nelle matrici la RowNumber non può funzionare... quindi dobbiamo realizzarla "a mano".

Per colorare le righe quindi:

1) ci serve una colonna che, tramite la funzione RunningValue ed il CountDistinct possa farmi contare le righe in maniera univoca e quindi, tramite la classica "... mod 2 = 0 ..." distinguere le righe pari e le righe dispari.

Ad esempio, aggiungo al report una colonna in cui visualizzare (proprietà text):
= iif( RunningValue(Fields!XXXXXX.Value,CountDistinct,Nothing) mod 2 = 0, "#dedede", "#ededed")

Dove XXXXX è il campo che mi da l'univocità di riga.

Se l'univocità di riga la ottengo da più colonne (supponete di fare avere colonne "cognome" e "nome"), il parametro di RunningValue deve essere la concatenazione delle colonne:

= iif( RunningValue( (Fields!cognome.Value & Fields!nome.Value) ,CountDistinct,Nothing) mod 2 = 0,  "red", "green")

2) rendiamo invisibile questa nuova colonna

3) nella riga della matrice impostiamo la proprietà BackgroundColor come:

= ReportItems!YYYYYY.Value

Dove YYYYYY è il nome che abbiamo dato alla nuova cella che abbiamo creato tramite il punto 1

N.B.: se la matrice ha attivi i subtotali e se il background di queste celle è imposato come trasparente, il colore sarà identico a quello dell'ultima riga dati precedente

 

Filed under:

Comments

No Comments

This Blog

Syndication