如何从@Dblookup
返回错误文本?我有类似的查找,我怀疑它返回一个错误,所以我想有一个面板,当发生查找错误时显示。
我有:
var dbpath = @DbLookup("","Setup","Setup","EIDBServerFilename");
var tmp = @DbLookup(dbpath,"FullName",@Name("[ABBREVIATE]" ,getComponent("inputTextEmpName").getValue()),"HRLogonID");
@If(@IsError(tmp),"Error= " + @Text(tmp),"");
但我只是看到“Error =”没有错误文字。
如果我删除@Text
我得到“错误=未定义”。
如果出现错误,如何收到错误消息?
我在帮助中查找了@IsError
和@Dblookup
但是通常情况下,帮助是可怕的,甚至没有提到@Dblookup
可能会返回错误,也不会对此做些什么。
答案 0 :(得分:0)
SSJS中来自@DbLookup的错误是内部捕获的,不会返回。
这是因为它是通过 session.evaluate 实现的,如果你在 session.evaluate 中制作了一个糟糕的@DbLookup,那么完整的评估会失败并且你赢了t收到@DbLookup的错误信息。
如果出现错误的@DbLookup,则返回 null ,这是您使用@IsError测试的内容: tmp null ,这就是你在字符串中得到 undefined 的原因。
如果使用 undefined 值创建@Text,则返回空字符串。
希望这有帮助
斯文
修改强>
如果在evaluate语句中运行代码,则可以收到错误消息。 F.E.此
session.evaluate('lookup:=@DbLookup("";"";"X";"1";1);@if(@isError(lookup);@Text(lookup);lookup)')
会返回错误消息。