Procédure : spécifier des couleurs cohérentes pour plusieurs graphiques à base de formes

Sur les graphiques qui ne sont pas à base de formes, une nouvelle couleur est sélectionnée dans la palette en fonction de l'index de la série dans le graphique. Par exemple, la première série sur votre graphique sera associée à la première couleur dans la palette. Toutefois, ce comportement diffère pour les graphiques à base de formes. Sur les graphiques à base de formes, chaque couleur de la palette est associée à un point de données dans le dataset. Par exemple, le point de données 1 est associé à la première couleur de la palette, le point de données 2 est associé à la deuxième couleur et ainsi de suite.

Si un point de données n'a pas de valeur, il n'apparaît pas sur l'affichage du graphique à base de formes. Le point de données n'est alors pas mappé à une couleur de la palette. Par exemple, si le point 2 a la valeur zéro, le point 1 sera mappé à la première couleur de la palette et le point 3 sera mappé à la deuxième couleur de la palette. Cette approche est utile car les points vides dans le dataset d'un graphique à secteurs n'utilisent pas inutilement une couleur de la palette lorsque le point vide ne doit pas être dessiné.

En corollaire, lorsque plusieurs graphiques à secteurs sont affichés dans un rapport, les graphiques à secteurs peuvent afficher des couleurs différentes pour des points de données correspondant aux mêmes regroupements de catégories. Pour pallier cet inconvénient, vous devez définir des couleurs individuelles associées à un groupe de catégories et non à des valeurs de données individuelles.

La légende est liée à la série, donc toute couleur que vous spécifiez pour la série sera automatiquement utilisée pour la légende.

Pour spécifier des couleurs cohérentes pour plusieurs graphiques à base de formes

  1. Cliquez avec le bouton droit à l'extérieur du corps du rapport, puis sélectionnez Propriétés du rapport.

  2. Dans Code, tapez le code suivant dans la zone de texte.

    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

    [!REMARQUE]

    Vous devez remplacer les chaînes "Color1" par vos propres couleurs. Vous pouvez utiliser des couleurs nommées, par exemple "Rouge", ou vous pouvez utiliser valeur hexadécimale de six chiffres qui représente la couleur, par exemple "#FFFFFF" pour le noir. Si plus de trois couleurs sont définies, vous devez étendre le tableau de couleurs afin que le nombre de couleurs dans le tableau corresponde au nombre de points de votre graphique à base de formes. Vous pouvez ajouter de nouvelles couleurs au tableau en spécifiant une liste séparée par des virgules de valeurs de chaîne qui contiennent des couleurs nommées ou des représentations hexadécimales de couleurs.

  3. Cliquez sur OK.

  4. Cliquez avec le bouton droit sur le graphique à base de formes, puis sélectionnez Propriétés de la série.

  5. Dans Remplir, cliquez sur le bouton Expression (fx) pour modifier l'expression pour la propriété Couleur.

  6. Tapez l'expression suivante, où "MyCategoryField" est le champ affiché dans la zone de dépôt de la catégorie :

    =Code.GetColor(Fields!MyCategoryField)