SSRS - 条形图 - 条形颜色标度取决于值

时间:2013-04-16 08:38:07

标签: reporting-services colors charts scale bar-chart

我创建了一个条形图,其中包含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(Fields!proc_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

1 个答案:

答案 0 :(得分:0)

我刚刚发现错误,返回的颜色值在开头缺少'#'。其余的工作完全正常。

我的问题已经解决了,但无论如何我都会发布这个问题以防万一有人想在将来使用这个问题而且我没有在谷歌上找到任何关于此主题的内容。