SSRS条件格式

问题描述 投票:2回答:3

我正在研究SSRS排名报告,其中Rank 1应该具有Green的背景,而last Rank应该具有Red的背景。

示例如下:

SSRS Conditional Formatting

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

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

sql-server reporting-services ssrs-2008-r2 conditional-formatting ssrs-tablix
3个回答
2
投票

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

1
投票

您可以从文本框中的单个表达式执行此操作。

设置文本框的BackgroundColour

=iif(Fields!myRank.Value = min(Fields!myRank.Value, "DataSet3"),
    "Green",
    iif(Fields!myRank.Value = max(Fields!myRank.Value, "DataSet3"),
        "Red",
        "White"
    )
 )

会给出结果

enter image description here

这是因为您在整个数据集myRank中搜索myRank的当前值与DataSet3的最大值和最小值。

如果这可以解决您的问题,或者您需要进一步的帮助,请告诉我。


0
投票

我在'Font / FontWeight'属性中使用了这个简单的表达式,以便切换到Bold所有非零值:

=iif(Fields!ingresos.Value > 0, "Bold", "Default" )

有用!

© www.soinside.com 2019 - 2024. All rights reserved.