Как задать согласованные цвета для нескольких фигурных диаграмм
На нефигурных диаграммах новые цвета выбираются из палитры, которая создана на основе индекса рядов в диаграмме. Например, первый ряд в диаграмме сопоставляется с первым цветом палитры. Однако в фигурных диаграммах используется другой принцип. Каждый цвет палитры в них сопоставляется с точкой данных в наборе данных. Так, точка данных 1 сопоставляется с первым цветом палитры, точка данных 2 — со вторым цветом палитры и т. д.
Если точка данных не имеет значения, то она не отображается на фигурной диаграмме. В результате такая точка данных не сопоставляется с цветом палитры. Например, если значение точки 2 равно нулю, то точка 1 будет сопоставляться с первым цветом палитры, а точка 3 — со вторым цветом палитры. Такой подход удобен, поскольку пустые точки набора данных круговой диаграммы не обязательно используют палитру цветов, когда нет необходимости рисовать пустую точку.
В качестве побочного эффекта при отображении в отчете нескольких круговых диаграмм точки данных одной и той же категории группирования, расположенные в этих диаграммах, могут быть окрашены в разные цвета. Для устранения этой проблемы необходимо задавать отдельные цвета, соответствующие группе категорий, а не отдельным значениям данных.
Условные обозначения связаны с рядом, поэтому любой цвет, заданный пользователем для ряда, будет автоматически отображаться в условных обозначениях.
Задание согласованных цветов в нескольких фигурных диаграммах
Щелкните правой кнопкой мыши область за пределами текста отчета и выберите пункт Свойства отчета.
В текстовом поле Код введите следующий код.
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
ПримечаниеСтроки «Color1» пользователю следует заменить собственными цветами. Можно использовать именованные цвета, например «Красный», или представляющие тот или иной цвет шестиразрядные шестнадцатеричные значения, например «#FFFFFF» для черного цвета. Если задано более трех цветов, то массив цветов необходимо расширить, чтобы количество цветов в массиве соответствовало числу точек в фигурной диаграмме. В массив можно добавлять новые цвета. Для этого нужно составить разделенный запятыми список строковых значений с именованными цветами или шестнадцатеричными представлениями цветов.
Нажмите кнопку ОК.
Щелкните правой кнопкой мыши на фигурной диаграмме и выберите пункт Свойства ряда.
В меню Заливка нажмите кнопку Выражение (fx) и измените выражение для свойства Цвет.
Введите следующее предложение, где «MyCategoryField» — это поле, отображаемое в области добавления категории:
=Code.GetColor(Fields!MyCategoryField)
См. также