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

Reporting services SSRS-如果为null,则表达式返回错误,reporting-services,ssrs-2008-r2,Reporting Services,Ssrs 2008 R2,我希望日历上只有名字,如果它们存在的话,什么也不会出现 我创建了一个表达式,其中使用逗号作为分隔符,只返回一个人的姓氏 我当前的表达方式: =iif(IsNothing(Fields!EmployeeName.Value), nothing, Left(Fields!EmployeeName.Value,-1 + InStr(Fields!EmployeeName.Value, ","))) 当前结果,如果名称不存在,则出现错误: =iif(IsNothing(Fields!EmployeeN

我希望日历上只有名字,如果它们存在的话,什么也不会出现

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

我当前的表达方式:

=iif(IsNothing(Fields!EmployeeName.Value), nothing, Left(Fields!EmployeeName.Value,-1 + InStr(Fields!EmployeeName.Value, ",")))
当前结果,如果名称不存在,则出现错误:

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

发生错误是因为您正在向左函数传递一个小于0的数字。如果字符串中没有逗号,则传递-1

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

=
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, ",")))
        )
    )
=
iif(
IsNothing(字段!EmployeeName.Value),
没有什么,
iif(
InStr(字段!EmployeeName.Value,“,”)=0,
字段!EmployeeName.Value,
左(字段!EmployeeName.Value,iif(-1+InStr)(字段!EmployeeName.Value,“,”)<0,0,-1+InStr(字段!EmployeeName.Value,“,”))
)
)

发生错误是因为您正在向左函数传递一个小于0的数字。如果字符串中没有逗号,则传递-1

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

=
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, ",")))
        )
    )
=
iif(
IsNothing(字段!EmployeeName.Value),
没有什么,
iif(
InStr(字段!EmployeeName.Value,“,”)=0,
字段!EmployeeName.Value,
左(字段!EmployeeName.Value,iif(-1+InStr)(字段!EmployeeName.Value,“,”)<0,0,-1+InStr(字段!EmployeeName.Value,“,”))
)
)