Reporting Services: Righe di colore alternato in una matrice

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. Smile triste

  • 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

Print | posted on martedì 18 gennaio 2005 21:07

Copyright © Gabriele Gaggi

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski