Поделиться через


Как задать согласованные цвета для нескольких фигурных диаграмм (построитель отчетов 2.0)

На нефигурных диаграммах новые цвета выбираются из палитры, основанной на индексе рядов в диаграмме. Например, первый ряд в диаграмме соответствует первому цвету палитры. Однако в фигурных диаграммах используется другой принцип. В фигурных диаграммах каждый цвет палитры соответствует точке данных в наборе данных. Так, точка данных 1 соответствует первому цвету палитры, точка данных 2 – второму цвету палитры и т.д.

Если точка данных не имеет значения, она опускается из изображения на фигурной диаграмме. Это означает, что точка данных не включается в число окрашиваемых. Так, если точка 2 имеет значение «ноль», точка 1 будет соответствовать первому цвету палитры, а точка 3 – второму цвету палитры. Такой подход полезен, поскольку пустые точки набора данных круговой диаграммы не обязательно используют палитру цветов, когда нет необходимости рисования пустой точки.

В качестве побочного эффекта при отображении в отчете нескольких круговых диаграмм расположенные в этих диаграммах точки данных одной и той же категории группирования могут отображаться различными цветами. Для решения этой проблемы необходимо определять индивидуальные цвета, соответствующие группе категорий, а не индивидуальным значениям данных.

Условные обозначения связаны с рядом, поэтому любой цвет, заданный пользователем для ряда, будет автоматически отображаться в условных обозначениях.

Указание согласованных цветов в нескольких фигурных диаграммах

  1. Щелкните правой кнопкой мыши область за пределами текста отчета и выберите пункт Свойства отчета.

  2. В текстовом поле Код впечатайте следующий код.

        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" для черного. Если определено более трех цветов, нужно расширить массив цветов, чтобы число цветов в массиве соответствовало числу точек в фигурной диаграмме. Можно добавлять новые цвета к массиву, составив разделенный запятыми список строковых значений, содержащий именованные цвета или шестнадцатеричные представления цветов.

  3. Нажмите кнопку ОК.

  4. Щелкните правой кнопкой мыши на фигурной диаграмме и выберите пункт Свойства ряда.

  5. В меню Заливка нажмите кнопку Выражение (fx) с целью редактирования выражения для свойства Цвет.

  6. Введите следующее предложение, где "MyCategoryField" – это поле, отображаемое в зоне перетаскивания категории:

    =Code.GetColor(Fields!MyCategoryField)
    

См. также

Задания

Справочник

Основные понятия

Другие ресурсы