我尝试使用QueryNewDocumentEvent执行以下操作:
代码可以执行第4步并在步骤5中提供异常。如果我从postopen事件运行此代码,它运行时没有任何错误但什么都不做。这是QueryNewDocument的代码。
var v:NotesView = database.getView('lastnumber');
var doc:NotesDocument = v.getLastDocument();
var dc1:NotesDocument = database.createDocument();
var tmp=doc.getItemValue('LastNumber')[0]+1;
dc1.replaceItemValue('Form','LastNumber');
dc1.replaceItemValue('LastNumber',tmp);
dc1.save(true,false,true)
currentDocument.setValue('ProjectNumber',"155,"+@Text(tmp));
currentDocument.setValue('LastNumber',@text(tmp));
我尝试用document1替换currentDocument并给出相同的异常。逻辑上有什么不对吗?
答案 0 :(得分:2)
我可以看到两件可能出错的事情:
首先,根据您使用的确切代码是否正确,您的第二个“@Text”调用将被写为“@text”并且将失败,因为JavaScript是一种区分大小写的语言。
此外,我相信currentDocument将不会在queryNewDocument事件中可用(除非,我想,之前已经定义了另一个文档数据源,在这种情况下它可能会引用那个)。 “postNewDocument”事件可能正是您要查找的内容:当您创建新文档时会运行该事件,但在“currentDocument”变量设置为该文档后会运行。
另一方面,“postOpenDocument”可能仅在操作专门用于打开现有文档而不是创建新文档时运行(它不是与表单上的PostOpen直接类似)。