SSRS Color Gradient

佐手、 提交于 2021-01-29 05:29:13

问题


I've been able to figure out how to make certain values the certain colors I would like. However, I'd really like to be able to create a color gradient so that it's more of a gradual change between each value.

0 = white

from white to green between 1 and 15,

gradient from green to yellow between 16 and 25,

and gradient from yellow to red between 26 and 35,

anything above 35 is red.

This is the code I have in the background fill expression:

=SWITCH(
(Sum(Fields!Total_Transaction_Count.Value) / CountDistinct(Fields!TransUserNumber.Value)) = 0, "White",
((Sum(Fields!Total_Transaction_Count.Value) / CountDistinct(Fields!TransUserNumber.Value)) >= 1 and 
(Sum(Fields!Total_Transaction_Count.Value) / CountDistinct(Fields!TransUserNumber.Value)) <= 15), "Green", 
((Sum(Fields!Total_Transaction_Count.Value) / CountDistinct(Fields!TransUserNumber.Value)) >= 16 and 
(Sum(Fields!Total_Transaction_Count.Value) / CountDistinct(Fields!TransUserNumber.Value)) <= 25), "Yellow", 
((Sum(Fields!Total_Transaction_Count.Value) / CountDistinct(Fields!TransUserNumber.Value)) >= 26 and 
(Sum(Fields!Total_Transaction_Count.Value) / CountDistinct(Fields!TransUserNumber.Value))) <= 35, "Orange", 
(Sum(Fields!Total_Transaction_Count.Value) / CountDistinct(Fields!TransUserNumber.Value)) > 35, "Red")

This is the matrix I have so far


回答1:


Take a look at this answer I wrote a while back. It's for a chart but the principle should be the same.

the basic idea is to calculate the colour in SQL and then use that to set the color properties in SSRS

Applying Custom Gradient to Chart Based on Count of Value


Keeping it all in SSRS


If you want to keep this within the report you could write a function to do the calculation.

For a very simple red gradient, it might look something like this..

Public Function CalcRGB (minVal as double, maxVal as double, actualVal as double) as String

Dim RedValue as integer
Dim GreenValue as integer
Dim BlueValue as integer

RedValue = ((actualVal - minVal) / (maxVal - minVal)) * 256
GreenValue = 0
BlueValue = 0

dim result as string

result = "#" & RedValue.ToString("X2") & greenValue.ToString("X2") & BlueValue.ToString("X2")

Return result

End Function

In this function I have set green and blue to 0 but these could be calculated too based on requirements.

To use this function as a background colour, set the Background Color property to something like

=Code.CalcRGB(
              MIN(Fields!myColumn.Value),
              MAX(Fields!myColumn.Value),
              Fields!myColumn.Value
              )


来源:https://stackoverflow.com/questions/62679854/ssrs-color-gradient

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!