【发布时间】:2010-11-03 05:54:13
【问题描述】:
在 rdlc 报告中,我想比较像
这样的整数if(expression)
{
// do something
}
else if(expression)
{
// do something else
}
这是什么语法?
【问题讨论】:
标签: rdlc
在 rdlc 报告中,我想比较像
这样的整数if(expression)
{
// do something
}
else if(expression)
{
// do something else
}
这是什么语法?
【问题讨论】:
标签: rdlc
我更喜欢 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)三元运算符应该(有一个I)优于IIf(condition, true_part, false_part)函数(有两个I's) 在大多数情况下。
If() ternary operator 将仅评估与条件结果相对应的部分(例如,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')
【讨论】: