SSRS 条件格式

use*_*587 5 sql-server conditional-formatting reporting-services ssrs-tablix ssrs-2008-r2

我正在制作 SSRS 排名报告,其中排名 1 应具有绿色背景,最后排名应具有红色背景。

下面的例子:

SSRS 条件格式

我尝试使用自定义代码,但这对我不起作用,如下所示:

SSRS 表达式使用如下:

=Code.RankColour(me.value, 1, Fields!RankName.Value)
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

注意:我使用的是 SQL 2008 R2

use*_*587 3

最后,我最终使用了函数调用,因此我可以灵活地在 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
Run Code Online (Sandbox Code Playgroud)

然后在列单元格中使用的表达式如下:

=Code.RankColour(me.value, Min(Fields!AbsenteeismRank.Value, "dataset1"), Max(Fields!AbsenteeismRank.Value, "dataset1"))
Run Code Online (Sandbox Code Playgroud)