VB if SQL SSRS 中的语句问题

VB if statement issue in SQL SSRS

我是 运行 SQL Server 2008 R2 with SSRS。

我在简单的 SSRS 报告中嵌入了一些 vb 代码。我的 SSRS 报告中的列详细信息 returns 值为 0,2 或 3。值 2 似乎也每次都变为绿色...

我的 vb 代码只是根据单元格中的数字将单元格更改为红色、橙色或绿色。它适用于 0 和 3 但由于某些任意原因不适用于数字 2....

我的代码如下:

Public Shared Function GetColor(ByVal value as Int32) As String
    If value = 0 Then
    return “Green"
    ElseIf value = 2 Then
    return "White"
    Else
    return "Red"
    End IF
End Function

然后我使用单元格背景颜色的表达式来引用它。使用以下代码:

=Code.GetColor(Fields!status.Value)

如果需要更多信息,请告诉我。

这是一个 switch 语句,它比使用自定义代码简单得多。在处理更复杂的 if else 逻辑时,Switch 语句非常有用,可以让您更轻松地组织结果。如果需要更改某些内容,它也不会让您搜索一堆自定义代码来找到需要工作的表达式。

您需要在文本框属性中输入 "Fill" 表达式。

=switch(fields!status.Value = 0, "green",
fields!status.Value = 2, "orange",
fields!status.Value = 3, "red")

我使用以下数据集对此进行了测试。

SELECT        0 AS Expr1, 'green' AS Expr2
UNION ALL
SELECT        2 AS Expr1, 'orange' AS Expr2
UNION ALL
SELECT        3 AS Expr1, 'red' AS Expr2

使用此开关产生以下结果。