SQL SSRS中的VB if语句问题

时间:2015-04-20 13:44:46

标签: sql-server vb.net reporting-services

我正在使用SSRS运行SQL Server 2008 R2。

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

我的vb代码只是将单元格更改为红色,橙色或绿色,具体取决于单元格中的数字。它适用于0和3,但不是因为某些任意原因而不适用于数字....

我的代码如下:

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)

如果需要其他信息,请与我们联系。

1 个答案:

答案 0 :(得分:1)

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

你需要把它放在"填充"表达式在文本框属性中。

=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

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

enter image description here