Libera traduzione dal sito: Chris Hays's Reporting Services Sleazy Hacks Weblog
Come alternare il colore di background delle righe in una matrice?
In una tabella la questione è semplice :
BackgroundColor = Iif(RowNumber(Nothing) Mod 2, "AliceBlue", "LightSteelBlue")
Per le matrici il discorso si complica.
- Primo è necessario inserire un gruppo fittizio all'interno del gruppo più interno (scusate il giro di parole). Tasto destro sul gruppo più interno e selezionare "Insert Group". Il gruppo fittizio deve avere come espressione "=1", questo fa si che ogni riga sia contenuta in un suo gruppo.
- A questo punto è necessario calcolare all'interno dell'intestazione di gruppo il colore desiderato in base alla numero di riga in cui ci troviamo (pari o dispari):
=iif(RunningValue(Fields!RecordType.Value,CountDistinct,Nothing) Mod 2, "AliceBlue", "LightSteelBlue")
Dove RecordType è il campo che viene utilizzato come espressione all'interno del gruppo che contiene il nostro gruppo fittizio. Se le colonne su cui si raggruppa sono più di una è necessario concatenare i campi in formato stringa ed effettuare un count distinct sul risultato (es. Fields!RecordType.Value & CStr(Fields!Year.Value)).
-
Ora è sufficiente inserire come colore di background dei campi della riga il valore calcolato precedentemente, quindi, supponendo di aver chiamato ColorNameTextBox la cella di intestazione del gruppo fittizio:
BackgroundColor = ReportItems!ColorNameTextbox.Value
Se è necessario colorare col medesimo colore anche l'intestazione del gruppo contenitore (per intenderci quello che contiene il nostro gruppo fittizio) bisogna utilizzare nella proprietà BackgroundColor della casella la formula utilizzata all'interno dell'intestazione del gruppo fittizio.
-
Modificare l'intestazione del gruppo fittizio in modo che non sia visibile (eliminando bordi, settando lo sfondo del medesimo colore, rimpicciolendo il font) o meglio ancora modificare l'RDL a mano (tasto destro in "Solution Explorer" e selezionare "View Code") e settare a 0cm la larghezza (Width) dell'intestazione di gruppo (RowGrouping).
Articolo Originale:Green-Bar Matrix
powered by IMHO 1.1 with Emoticon Formatter