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