【问题标题】:SSRS: Custom colors for the Category axis of a stacked bar chartSSRS:堆叠条形图类别轴的自定义颜色
【发布时间】:2019-02-15 00:07:24
【问题描述】:

我有一个只有 5 个类别的堆叠条形图(但类别的值每年都在变化,这是一个滑动的 5 年窗口)。

我已成功将条形自定义为我想要的颜色。

但是现在我想让每个Category的标签颜色和自定义的bar颜色一样。

有没有办法做到这一点?

【问题讨论】:

    标签: reportbuilder ssrs-2016 ssdt-bi


    【解决方案1】:

    您可以为此使用自定义代码。

    报告属性 | 代码,可以粘贴以下代码:

    Private colourPalette As String() = {"#418CF0", "#FCB441", "#DF3A02", "#056492", "#BFBFBF", "#1A3B69", "#FFE382", "#129CDD", "#CA6B4B", "#005CDB", "#F3D288", "#506381", "#F1B9A8", "#E0830A", "#7893BE"}
    Private count As Integer = 0
    Private mapping As New System.Collections.Hashtable()
    
    Public Function GetColour(ByVal groupingValue As String) As String
    
        If mapping.ContainsKey(groupingValue) Then
                        Return mapping(groupingValue)
        End If
    
        Dim c As String = colourPalette(count Mod colourPalette.Length)
    
        count = count + 1
    
        mapping.Add(groupingValue, c)
    
        Return c
    
    End Function
    

    这将为您提供柔和调色板的选项。如果您想要其他颜色,只需将十六进制颜色代码替换为您选择的值即可。

    要使用它,只需使用以下表达式:

    =Code.GetColour(Fields!Thingy.Value)
    

    在您的系列和标签填充表达式中使用它。这将确保两者显示相同的颜色。如果您有多个具有相同值的图表,这也将确保跨多个图表的相同数据系列始终具有相同的颜色。

    【讨论】:

    • 已经实现了,但是所有的类别标签都是 colourPalette 数组中的第一个颜色。注意:水平轴属性上没有“填充”。我把“=Code.GetColour(...”放在标签字体->颜色表达式和报告上的方法->代码
    • 你在每一个中都用了什么表达方式?
    • "=Code.GetColour(Fields!YearNo.Value)" 不带引号
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    相关资源
    最近更新 更多