在lotusscript中使用evaluate

在lotusscript中使用evaluate,lotusscript,evaluate,Lotusscript,Evaluate,我尝试使用Lotus脚本获取当前用户角色。我用“Evaluate”方法得到它,这样我可以和公式语言一起使用。下面是代码 Dim test as Variant test = Evaluate("@UserRoles") If test = "[Administrator]" Then Print "admin" Else Print "Not admin" End If 但是,当我试图运行代码时,出现了以下错误

我尝试使用Lotus脚本获取当前用户角色。我用“Evaluate”方法得到它,这样我可以和公式语言一起使用。下面是代码

Dim test as Variant 

test = Evaluate("@UserRoles")       

If  test = "[Administrator]" Then                   
     Print "admin"
Else
     Print "Not admin"
End If  
但是,当我试图运行代码时,出现了以下错误:“方法CheckOperator中的类型不匹配:找到未知,预期未知”


Lotus脚本专家能告诉我您的想法吗?

Evaluate正在返回一个数组,因此您需要相应地执行检查

Dim roles as Variant 
roles = Evaluate("@UserRoles") 
Forall r in roles
    If r = "[Administrator]" Then
        Print "Admin"
    End If
End ForAll

Evaluate返回一个数组,因此需要相应地执行检查

Dim roles as Variant 
roles = Evaluate("@UserRoles") 
Forall r in roles
    If r = "[Administrator]" Then
        Print "Admin"
    End If
End ForAll

您也可以在evaluate语句中进行检查,以获得更简洁的测试,例如hasAdminRole=infrade(evaluate(|@Contains(@UserRoles;“[Administrator]”))@Jon:True,但我确信在实际应用程序中,您需要检查几个不同的用户角色,这样我的代码就更灵活了。当然,如果您要查找两个或三个以上的值,则Select Case语句比if-Then语句更好。您还可以在evaluate语句中进行检查,以获得更简洁的测试,例如hasAdminRole=introde(evaluate(|@Contains(@UserRoles;“[Administrator]”)@Jon:True,但我确信在实际应用程序中,您需要检查几个不同的用户角色,这样我的代码就更灵活了。当然,如果要查找两个或三个以上的值,Select Case语句比if Then语句更好。