Procedura: Specifica di colori coerenti in più grafici con forme (Generatore report 2.0)
Nei grafici diversi dai grafici con forme viene selezionato un nuovo colore dalla tavolozza in base all'indice di serie del grafico. Le prime serie sul grafico saranno, ad esempio, mappate al primo colore della tavolozza. Questo comportamento non si verifica nei grafici con forme nei quali ogni colore nella tavolozza è mappato a un punto dati nel set di dati. Il punto dati 1, ad esempio, è mappato al primo colore nella tavolozza, il punto dati 2 è mappato alla seconda tavolozza di colori e così via.
Un punto dati che non presenta valori non viene visualizzato in un grafico con forme. Ciò significa che il punto dati non viene colorato. Se ad esempio il valore del punto 2 è zero, il punto 1 verrà mappato al primo colore della tavolozza e il punto 3 verrà mappato al secondo colore della tavolozza. Questo metodo risulta utile nel caso di punti vuoti nel set di dati di un grafico a torta in quanto impedisce che venga utilizzato inutilmente un colore della tavolozza se non è necessario disegnare il punto vuoto.
Come effetto collaterale, quando in un report sono visualizzati più grafici a torta, potrebbero essere visualizzati colori diversi per i punti dati con lo stesso raggruppamento di categoria. Per risolvere questo inconveniente, sarà necessario definire colori singoli che vengono mappati a un gruppo di categorie anziché valori di dati singoli.
La legenda è collegata alla serie, pertanto qualsiasi colore si specifica per la serie verrà mostrato automaticamente sulla legenda.
Per specificare colori coerenti in più grafici con forme
Fare clic con il pulsante destro del mouse al di fuori del corpo del report e scegliere Proprietà report.
In Codice digitare il codice seguente nella casella di testo.
Private colorPalette As String() = {"Color1", "Color2", "Color3"} Private count As Integer = 0 Private mapping As New System.Collections.Hashtable() Public Function GetColor(ByVal groupingValue As String) As String If mapping.ContainsKey(groupingValue) Then Return mapping(groupingValue) End If Dim c As String = colorPalette(count Mod colorPalette.Length) count = count + 1 mapping.Add(groupingValue, c) Return c End Function
[!NOTA]
Sarà necessario sostituire le stringhe "Color1" con colori personalizzati. È possibile utilizzare colori denominati, ad esempio "Rosso" oppure il valore esadecimale a sei cifre che rappresenta il colore, ad esempio "#FFFFFF" che indica il nero. Se sono stati definiti più di tre colori, sarà necessario estendere la matrice di colori in modo che il numero di colori della matrice corrisponda al numero di punti nel grafico con forme. È possibile aggiungere nuovi colori alla matrice specificando un elenco delimitato da virgole di valori stringa che contengono colori denominati o rappresentazioni esadecimali dei colori.
Fare clic su OK.
Fare clic con il pulsante destro del mouse sul grafico con forme e scegliere Proprietà serie.
In Riempimento fare clic sul pulsante Espressione (fx) per modificare l'espressione per la proprietà Colore.
Digitare l'espressione seguente, in cui "MyCategoryField" è il campo visualizzato nell'area di rilascio dei campi categoria:
=Code.GetColor(Fields!MyCategoryField)
Vedere anche