在 rdlc 报告中,我想比较整数,例如
if(expression)
{
// do something
}
else if(expression)
{
// do something else
}
这个的语法是什么?
在 rdlc 报告中,我想比较整数,例如
if(expression)
{
// do something
}
else if(expression)
{
// do something else
}
这个的语法是什么?
我更喜欢使用Switch语句,而不是使用嵌套的IIF语句。
从 MSDN...
=Switch(
Fields!PctComplete.Value >= 10, "Green",
Fields!PctComplete.Value >= 1, "Blue",
Fields!PctComplete.Value = 1, "Yellow",
Fields!PctComplete.Value <= 0, "Red"
)
希望它有帮助:)
您必须像这样嵌套 IIF 语句:
= IIF (expression = 1, "Is 1", IIF (expression = 2, "Is 2"))
改用开关。我知道我来晚了,但希望它可以帮助别人。
=Switch(Fields!Parameter.value = 2,"somethingnew", 1=1 ,"somethingelse")
1=1 表示 switch case 中的默认值。
它类似于
if(Parameter.Value == 2)
{
somethingnew
}
else
{
somethingelse
}
这是满足您要求的语法:
=IIf(CInt(Fields!expression1.value)==1,true,IIf(Cint(Fields!expression2.value)==2,true,nothing))
在真实部分,您可以指定要执行的语句。
除了已经说过的内容之外,在大多数情况下,If(condition, true_part, false_part)
三元运算符应该(使用 one I
)优于IIf(condition, true_part, false_part)
函数(使用 two )。I
If()
三元运算符将仅对与条件结果相对应的部分进行短路评估(例如,True
仅评估 的条件true_part
)。
该IIf()
函数将始终评估条件和两个部分,因为它只是一个函数调用,并且函数的所有参数都将在调用之前进行评估。
由于开发人员通常希望在 IF 语句中进行短路评估,因此使用If()
三元运算符应该是默认选择。它允许您运行检查 的表达式,Nothing
如下所示,如果没有延迟评估,它将无法工作:
=If(Fields!Blog.Value IsNot Nothing, Fields!Blog.Value.Name, "Blog is missing")
你也可以试试这个例子
= IIF(Parameters!expression.Value = True, 'somethingnew', 'somethingelse')