SSRS - 如果为 null,则表达式返回错误

SSRS - Expression returning error if null

我希望只有名字出现在日历上,如果它们存在,则什么也没有。

我创建了一个表达式,其中 returns 仅使用逗号作为分隔符的人的姓氏。

我现在的表情:

=iif(IsNothing(Fields!EmployeeName.Value), nothing, Left(Fields!EmployeeName.Value,-1 + InStr(Fields!EmployeeName.Value, ",")))

如果名称不存在则出现#Error 的当前结果:

发生错误是因为您将小于 0 的数字传递给左侧函数。当您的字符串中没有逗号时,您将传入 -1。

为了处理这个问题,我在表达式中添加了两个 if 语句。如果第一个逗号的索引为 0,第一个将 return 整个字符串。第二个检查 -1 条件并在出现时将 0 传递给左侧函数。

=
iif(
    IsNothing(Fields!EmployeeName.Value), 
    nothing, 
    iif(
        InStr(Fields!EmployeeName.Value, ",") = 0, 
        Fields!EmployeeName.Value, 
        Left(Fields!EmployeeName.Value,iif(-1 + InStr(Fields!EmployeeName.Value, ",") < 0, 0, -1 + InStr(Fields!EmployeeName.Value, ",")))
        )
    )