我有一个称为PC检查的过程。当进行复制检查时,每次检查都会更改批号。并且有一个称为EmpPCSpec的pc检查表。它将从计算机文档中复制数据。
我可以创建批处理,但是只能为一个选定的文档创建。
以下是Lotusscript代码,用于设置新批次并创建pc检查表。
usrIpt[0] != '+' || usrIpt[0] != '-'
如何通过循环获取状态为“活动”的所有文档?任何帮助将不胜感激。谢谢!
答案 0 :(得分:4)
此代码存在很多问题:应避免使用getNthDocument,因为这是性能的杀手和不良做法-至少对于较大的集合而言,因为代码每次使用getNthDocument都会重新计算文档的位置。请改用getFirstDocument和getNextDocument。 goto的逻辑也是如此。这很难阅读,理解,特别是难以维护。我建议您创建这样的逻辑:
Set collection = db.UnprocessedDocuments
set doc = collection.getFirstDocument()
while not doc is nothing
if doc.status(0) = "Active" then
<your logic goes here>
end if
//next doc for processing
set doc=collection.getnextdocument(doc)
wend
除了上述问题,我认为您的代码存在的问题是您没有在所有选定文档中建立任何类型的循环-getNthDocument()仅执行一次,因此仅触摸了一个文档。但是正如我已经说过的,由于使用goto,很难理解和理解代码在运行时何时何地跳转到何处。