Cómo especificar colores coherentes en varios gráficos de formas

En los gráficos que no son de formas, se selecciona un nuevo color de la paleta en función del índice de series del gráfico. Por ejemplo, la primera serie del gráfico se asignará al primer color de la paleta. Sin embargo, este comportamiento varía para los gráficos de formas. En los gráficos de formas, cada color de la paleta se asigna a un punto de datos del conjunto de datos. Por ejemplo, el punto de datos 1 se asigna al primer color de la paleta, el punto de datos 2 se asigna al segundo color de la paleta, etc.

Si un punto de datos no tiene ningún valor, se omite de la presentación en un gráfico de Formas. Como a tal, el punto de datos no está asignado a un color de la paleta. Por ejemplo, si el punto 2 tiene un valor de cero, el punto 1 se asignará al primer color de la paleta y el punto 3 se asignará al segundo color de la paleta. Este método resulta útil porque los puntos vacíos del conjunto de datos de un gráfico circular no usan un color de la paleta innecesariamente cuando no es necesario dibujar el punto vacío.

Como efecto secundario, cuando se muestran varios gráficos circulares en un informe, dichos gráficos pueden mostrar colores diferentes para puntos de datos que tienen la misma agrupación de categoría. Para solucionarlo, deberá definir colores individuales que se asignen a un grupo de categorías en lugar de a valores de datos individuales.

La leyenda está conectada a la serie, de modo que cualquier color que especifique para ésta se mostrará automáticamente en la leyenda.

Para especificar colores coherentes en varios gráficos de formas

  1. Haga clic con el botón secundario fuera del cuerpo del informe y seleccione Propiedades del informe.

  2. En Código, escriba el código siguiente en el cuadro de texto.

    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]

    Deberá reemplazar las cadenas de "Color1" por sus propios colores. Puede usar colores con nombre, por ejemplo "Rojo", o un valor hexadecimal de seis dígitos que represente el color, como "#FFFFFF" para el negro. Si ha definido más de tres colores, deberá extender la matriz de colores para que el número de colores de la matriz coincida con el número de puntos del gráfico de formas. Puede agregar nuevos colores a la matriz especificando una lista de valores de cadena separados por comas que contenga colores con nombre o representaciones hexadecimales de los colores.

  3. Haga clic en Aceptar.

  4. Haga clic con el botón secundario en el gráfico de formas y seleccione Propiedades de la serie.

  5. En Relleno, haga clic en el botón Expresión (fx) para editar la expresión de la propiedad Color.

  6. Escriba la expresión siguiente, donde "MyCategoryField" es el campo que se muestra en la zona de colocación de categorías:

    =Code.GetColor(Fields!MyCategoryField)