rdlc表达iif使用?

时间:2009-06-16 06:39:17

标签: rdlc

在rdlc报告中,我想比较像

这样的整数
if(expression)
{
     // do something
}
else if(expression)
{
     // do something else
}

这是什么语法?

6 个答案:

答案 0 :(得分:39)

我不喜欢使用嵌套的 IIF 语句,而是更喜欢 Switch 语句。

来自MSDN ......

=Switch(
    Fields!PctComplete.Value >= 10, "Green", 
    Fields!PctComplete.Value >= 1, "Blue", 
    Fields!PctComplete.Value = 1, "Yellow", 
    Fields!PctComplete.Value <= 0, "Red"
    )

希望它有助于:)

答案 1 :(得分:7)

你必须像这样嵌套IIF语句:

 = IIF (expression = 1, "Is 1", IIF (expression = 2, "Is 2"))

答案 2 :(得分:1)

这是您要求的语法:

=IIf(CInt(Fields!expression1.value)==1,true,IIf(Cint(Fields!expression2.value)==2,true,nothing))

在实际部分中,您可以指定要执行的语句。

答案 3 :(得分:1)

请改用开关。我知道我来到这里很晚,但希望它可以帮助别人。

=Switch(Fields!Parameter.value = 2,"somethingnew", 1=1 ,"somethingelse")

1 = 1表示交换机情况下的默认值。

类似于

if(Parameter.Value == 2)
{
somethingnew
}
else
{
somethingelse
}

答案 4 :(得分:0)

您也可以尝试以下示例

= IIF(Parameters!expression.Value = True, 'somethingnew', 'somethingelse')

答案 5 :(得分:0)

除了上面所说的之外,If(condition, true_part, false_part) 三元运算符应该(带有一个 I)优于 IIf(condition, true_part, false_part) 函数< /em>(带有两个 I)在大多数情况下。

If() ternary operator 将仅对与条件结果对应的部分进行短路评估(例如,True 的条件将仅评估 true_part)。

IIf() 函数将始终评估条件和两个部分,因为它只是一个函数调用,函数的所有参数都将在调用之前评估。

由于开发人员通常期望在 IF 语句中进行短路评估,因此使用 If() 三元运算符应该是默认选择。 它允许您运行检查 Nothing 的表达式,如下所示,如果没有惰性求值就无法工作:

=If(Fields!Blog.Value IsNot Nothing, Fields!Blog.Value.Name, "Blog is missing")