0

我有一个带有参数学生姓名和学生 ID 的下拉菜单。当我选择学生姓名时,会出现如下文本框并具有提交按钮:

在此处输入图像描述

单击学生 ID 时,报告参数显示如下:

在此处输入图像描述

对于学生姓名和学生 ID,我正在使用数据集 StudentDetails。当报告运行时,如果未找到学生姓名的值,则应显示消息“未找到学生姓名”,如果学生 ID 不正确,应显示消息“未找到学生 ID”。
在报告中,我添加了一个文本框来显示消息,其表达式如下:

在此处输入图像描述

=SWITCH(
        First(Fields!StudentName.Value, "StudentDetails")=""," Student Name not found ",
        First(Fields!StudentId.Value, " StudentDetails ")=""," Student Id not found ")

当输入错误的学生姓名时,消息会正确显示,但是,对于错误的学生 ID,仍然会显示相同的消息“未找到学生姓名”</p>

感谢您的帮助

4

1 回答 1

0

您要么需要像这样嵌套 IIF 语句

=IIF(
    First(Fields!StudentName.Value, "StudentDetails")="","Student Name not found",
    IIF(
        First(Fields!StudentId.Value, "StudentDetails")="","Student Id not found"
        ,"")) 

或使用通常更易于阅读的 SWITCH 语句。

=SWITCH(
        First(Fields!StudentName.Value, "StudentDetails")="","Student Name not found",
        First(Fields!StudentId.Value, "StudentDetails")="","Student Id not found"
        )

从 OP 更新后编辑

SWITCH将在第一个为真的表达式处停止,因此如果您想报告两者都是空的,那么您需要在 SWITCH 语句中添加另一个表达式

=SWITCH(
        First(Fields!StudentName.Value, "StudentDetails")="","Student Name not found",
        First(Fields!StudentId.Value, "StudentDetails")="","Student Id not found",
        First(Fields!StudentName.Value, "StudentDetails")="" AND First(Fields!StudentID.Value, "StudentDetails")="","Student Name AND ID not found"
        )

如果这不起作用,则添加文本框以调试每个表达式,例如 StudentID 可能是数字数据类型,因此您必须调整测试以适应(例如= Nothing

于 2021-05-20T08:33:59.867 回答