Как задать согласованные цвета для нескольких фигурных диаграмм (построитель отчетов 2.0)
На нефигурных диаграммах новые цвета выбираются из палитры, основанной на индексе рядов в диаграмме. Например, первый ряд в диаграмме соответствует первому цвету палитры. Однако в фигурных диаграммах используется другой принцип. В фигурных диаграммах каждый цвет палитры соответствует точке данных в наборе данных. Так, точка данных 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)
См. также