我正在研究SSRS排名报告,其中Rank 1应该具有Green的背景,而last Rank应该具有Red的背景。
示例如下:
我尝试使用自定义代码,但这对我不起作用,如下所示:
SSRS表达式如下:
=Code.RankColour(me.value, 1, Fields!RankName.Value)
和RankColor代码如下:
Public Function RankColourTotals(ByVal Value As Decimal, ByVal MinValue As Decimal, ByVal MaxValue As Decimal) As String
Dim strColor As String
Select Case Value
Case MaxValue
strColor = "Salmon"
Case MinValue
strColor = "LightGreen"
Case Else
strColor = "Gainsboro"
End Select
Return strColor
End Function
注意:我使用的是SQL 2008 R2
最后我最终使用了函数调用,因此我可以灵活地在1个位置更改颜色,而不是在所有颜色中更改表达式(如果业务决定更改颜色)。我的代码如下
Public Function RankColour(ByVal Value As Integer, ByVal MinValue As Integer, ByVal MaxValue As Integer) As String
Dim strColor As String
Select Case Value
Case MaxValue
strColor = "Salmon"
Case MinValue
strColor = "LightGreen"
Case Else
strColor = "White"
End Select
Return strColor
End Function
然后在列单元格中使用的表达式如下:
=Code.RankColour(me.value, Min(Fields!AbsenteeismRank.Value, "dataset1"), Max(Fields!AbsenteeismRank.Value, "dataset1"))
我在'Font / FontWeight'属性中使用了这个简单的表达式,以便切换到Bold所有非零值:
=iif(Fields!ingresos.Value > 0, "Bold", "Default" )
有用!