2013-10-07 57 views

回答

39
=iif(isNothing(Fields!FV1.Value), Fields!FV2.Value, Fields!FV1.Value) 
+0

感谢您的帮助 –

+0

是 - 上面是非常有益的。非常感谢L –

27

如果你必须这样做了一堆的时候,你也可以做一个可重复使用的功能,避免大量的输入。这里是仿照关SQL's ISNULL功能的解决方案:

  1. 右键单击报告文件,并转到报表属性。

    Report Properties

  2. 导航代码标签,并添加以下功能:

    Public Function IsNull(input As Object, defaultValue As Object) As Object 
        Return IIf(input Is Nothing, defaultValue, input) 
    End Function 
    

    Code
    注意 - 即使自定义代码期待有效的VB.NET代码,你have to use the IIF Ternary operator

  3. 然后你可以在这样一个表达式中使用它:

    =Code.IsNull(Fields!MyField.Value,0) 
    

    Expression

+1

虽然两种答案都是正确的,但我非常喜欢这种解决方案的重复使用潜力。特别是如果你有一个复杂的表达式,你正在聚合一个字段。在这种情况下,这是一个更具可读性和可重用的解决方案。 –

+2

3年后 - 但我发现这是非常有用的。 – MISNole

相关问题