根据百分比输出显示不同的颜色

时间:2018-04-09 14:33:21

标签: reporting-services switch-statement ssrs-2012

我有以下表达式,我想根据输出的百分比以不同的颜色显示结果:

=IIF(isNothing(ReportItems!supply.value) or ReportItems!supply.value="" 
,nothing,
IIF(isNothing(ReportItems!cen.value) or ReportItems!cen.value="",nothing,
round((Cint(ReportItems!Textbox16.value)-Cint(ReportItems!Textbox17.value)) 
* 100 / Cint(ReportItems!Textbox16.Value),2) & "%"))</i>

如何使用这段代码显示不同的颜色?范围如下:

  • 0 - 50是绿色
  • 50 - 70是Black
  • 70 - 100是红色

如果有人可以提供帮助,我会非常感激。

由于

2 个答案:

答案 0 :(得分:1)

对多个条件使用SWITCH语句。添加条件要容易得多,我认为它也更容易阅读。

=SWITCH(Field.Value <= 50, "Green", Field.Value <=70,"Black",Field.Value <= 100,"Red",True,"Blue")

使用第一个真实结果按顺序评估它们。您还应始终捕获所有值以防止出错。在此示例中,我使用了True并将其设置为Blue

答案 1 :(得分:0)

你当然可以动态定义颜色,你只需要正确的语法。 SSRS中的颜色可以通过其十六进制值定义,例如白色为"#FFFFFF"。每对两个十六进制位置对应于颜色的红色,绿色和蓝色部分。

因此,如果我想使用50的数字作为我的颜色的绿色部分,它将如下所示:

="#00" + CStr(50) + "00"

换句话说,我将数字转换为字符串,并将其与所需格式的颜色字符串的其余部分连接起来。如果您愿意,也可以使用Hex函数将整数转换为相应的十六进制值。