Reporting services SSRS-条形图-条形色标取决于数值

Reporting services SSRS-条形图-条形色标取决于数值,reporting-services,colors,charts,scale,bar-chart,Reporting Services,Colors,Charts,Scale,Bar Chart,我创建了一个条形图,它有1个数据系列和大约8个条形图,数值范围在0-100%之间。不久前,我发现了一个关于如何为同一数据系列中的列生成不同颜色的教程,并尝试对其进行修改以满足我当前的需要,但我做了一些错误的事情 同一数据系列中的不同颜色的工作原理如下: 我编辑报告代码以添加以下功能: Private colorPalette As String() = {"Green", "Blue", "Red", "Orange", "Aqua", "Teal", "Gold", "RoyalBlue",

我创建了一个条形图,它有1个数据系列和大约8个条形图,数值范围在0-100%之间。不久前,我发现了一个关于如何为同一数据系列中的列生成不同颜色的教程,并尝试对其进行修改以满足我当前的需要,但我做了一些错误的事情

同一数据系列中的不同颜色的工作原理如下:

我编辑报告代码以添加以下功能:

Private colorPalette As String() = {"Green", "Blue", "Red", "Orange", "Aqua", "Teal", "Gold", "RoyalBlue", "#A59D93", "#B8341B", "#352F26", "#F1E7D6", "#E16C56", "#CFBA9B"} 
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
现在,我有了可公开访问的函数GetColor,我在图表上数据系列颜色的公式中使用了该函数(系列属性“填充”选项卡):

=code.GetColor(字段!proc\u choroby.Value)

我试图修改原始函数,根据序列值返回颜色。我写了这段代码,但显然是错的:

Public Function GetColor(ByVal value As Single) As String
    Dim color As String
    If value < 0.4 Then
    color = "FFFFCC"
    ElseIf value > 0.4 And value < 0.6 Then
    color = "FFFF00"
    ElseIf value > 0.6 And value < 0.7 Then
    color = "FFCC00"
    ElseIf value > 0.7 And value < 0.8 Then
    color = "FF9900"
    ElseIf value > 0.8 And value < 0.9 Then
    color = "993300"
    Else: color = "800000"
    End If
    Return color
End Function
公共函数GetColor(ByVal值为Single)作为字符串
像字符串一样暗淡的颜色
如果值<0.4,则
color=“FFFFCC”
ElseIf值>0.4,然后值<0.6
color=“FFFF00”
ElseIf值>0.6,然后值<0.7
color=“FFCC00”
ElseIf值>0.7,然后值<0.8
color=“FF9900”
ElseIf值>0.8,然后值<0.9
color=“993300”
其他:color=“800000”
如果结束
返回颜色
端函数

我刚刚发现错误,返回的颜色值在开头缺少“#”。其余部分完全按照它应该的方式工作


我的问题已经解决了,但我还是要发布这个问题,以防将来有人想使用这个问题,而我在谷歌上找不到任何关于这个问题的信息。

非常欢迎您发布自己的问答。我只是将您的答案从问题中提取出来,放到您的答案中。另外,请标记您的答案,以帮助其他用户。15个小时后,我才能回答自己的问题。谢谢