使用 If 语句的 SSRS 表达式

3
我在进行SSRS报告的报告工作。如果提供了不同的输入参数,我需要编写一个表达式来显示文本框。我已经尝试编写表达式,但无法使其完美。这里我提供了一段示例代码,我需要在SSRS格式中提供相同的表达式。请帮助我提供相同的表达式。

代码

If(Parameters!FromCreationdate.Value !=null && Parameters!ToCreationdate.Value !=null)
{
  "Created Date:"+ Parameters!FromCreationdate.Value + "To Created Date:"+Parameters!ToCreationdate.Value;
}
else if(Parameters!FromCreationdate.Value !=null)
{
  "Created Date:"+ Parameters!FromCreationdate.Value;
}
else if(Parameters!ToCreationdate.Value !=null)
{
 "To Created Date:"+ Parameters!ToCreationdate.Value;
}

表达式

=IIf(isnothing(Parameters!FromCreationdate.Value),"", "From Creation Date:"+Parameters!FromCreationdate.Value, iif(isnothing(Parameters!FromCreationdate.Value)),"", "To Creation Date:"+Parameters!FromCreationdate.Value)

谢谢


我没有看到你设置TextBox的值属性。请发一下你的代码? - andrewb
2个回答

4
请参考“表达式示例(Report Builder 和 SSRS)”,特别是其中的SWITCH部分。

当您需要测试三个或更多条件时,Switch 函数非常有用。Switch 函数返回与一系列表达式中第一个为 true 的表达式相关联的值。

因此,您可以像这样使用它:

=SWITCH(
TEST_CONDITION_1,VALUE_1,
TEST_CONDITION_2,VALUE_2,
TEST_CONDITION_3,VALUE_3,
....
TEST_CONDITION_N,VALUE_N
)

2

使用SWITCH是更好的方法,但如果你仍然因为某些原因需要/想要嵌套你的IIF语句,那么像这样:

=IIF(Not IsNothing(Parameters!FromCreationdate.Value) And Not IsNothing(Parameters!   ToCreationdate.Value),
    "Created Date: " + Parameters!FromCreationdate.Value +
    " To Created Date: " + Parameters!ToCreationdate.Value,
    IIF( Not IsNothing(Parameters!FromCreationdate.Value),
        "Created Date: " + Parameters!FromCreationdate.Value,
        IIF( Not IsNothing(Parameters!ToCreationdate.Value),
            "To Created Date: " + Parameters!ToCreationdate.Value,
            ""
            )
        )
    )

或者,您也可以这样做:

=IIF( Not IsNothing( Parameters!FromCreationdate.Value ),
    "Created Date: " + Parameters!FromCreationdate.Value,
    "" ) +
IIF( Not IsNothing( Parameters!FromCreationdate.Value ) AND
    Not IsNothing ( Parameters!ToCreationdate.Value ),
    " ", "" ) +
IIF( Not IsNothing( Parameters!ToCreationdate.Value ),
    "To Created Date: " + Parameters!ToCreationdate.Value,
    "" )

如果您使用SSRS 2005创建报告并部署到2008,可能需要将空字符串("")更改为Nothing。在某些导出格式(或可能是某些浏览器)中这样做会导致空字符串在文本字段上设置为粗体时看起来像破折号。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接