如何在RDLC表达式中检查多个条件

8

我曾经只在rdlc表达式值中使用过两个可能的值,就像这样:

=iif((Fields!Gender.Value="1"),"Male","Female")

这里我只能处理两个可能性。但如果我想检查三个或更多的条件,该怎么办?


1
请您标记正确答案以帮助其他人找到解决方案? - Muhammad Omar ElShourbagy
@MuhammadOmarElShourbagy 很有趣,这个问题是在2012年提出的,这个人上周还活跃着,但仍然没有“找到解决方案”。 - KZander
4个回答

13

如果你有更多条件, 使用Switch语句会更易读。

=Switch(
    Fields!Gender.Value = 1, "Male", 
    Fields!Gender.Value = 2, "Female"
    )

rdlc表达式 iif 使用?


9
您可以使用报表的 Code 属性。在报表外的空白处单击右键,然后单击 报表属性 或单击报表菜单并单击报表属性。

单击“代码”选项卡,并输入以下条件检查语句:

Public Function GetGender(ByVal val as String) As String
   Dim retVal as String = ""

   If(val = "1")
    retVal = "Male"
   Else If (val = "2")
    retVal = "???"
   Else If (val = "3")
    retVal = "???"
   Else
    retVal = "???"
   End If

   Return retVal

End Function

然后在文本框表达式中调用该函数。
= Code.GetGender(Fields!Gender.Value)

嘿,这是在报告中编写代码的非常好的选项。谢谢。我发现使用类似于iif的switch语句的其他解决方案也可以起作用。 - Zara
你的意思是在表达式框中一行代码里使用 IIf 吗?那样虽然难以调试,但也很有用。 - codingbiz

6

尝试这个:

=iif(Fields!Gender.Value="1","Male", iif(Fields!Gender.Value="2","Female","Undefined"))

格式如下:

=iif(expression=value, true, false)

您可以使用以下方式进行更改:

=iif(expression=value, true, iif(expression2=value2, true, false))

3

Switch和自定义代码看起来很不错,谢谢你们。

但是如果你坚持使用iif()条件语句,则:

=iif( (Fields!Gender.Value="1"), "Male", iif( (Fields!Gender.Value="2"), "Female", "Something Else" ) )

好的,再见


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