报告字段以在 ssrs 中显示正确的错误消息

问题描述

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

enter image description here

点击学生 ID 后,报告参数显示如下:

enter image description here

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

enter image description here

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

当输入不正确的学生姓名时,消息显示正确,但是,对于不正确的学生 id 仍然显示相同的消息“找不到学生姓名”

感谢您的帮助

解决方法

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

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

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

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

从 OP 更新后编辑

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

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

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