将文档复制到另一个视图并锁定当前文档

Copy document to another view and lock current document

我对Notes还是个新手,所以对每个功能还不是很熟悉。我将简要说明我的过程。

我在 "List" 查看文档列表。我想将所有当前文档复制到另一个视图,假设 "Batch" 作为一个新文档,并在 "List" 视图上锁定标记所有文档。我将在 "Batch" 中编辑新文档,当我单击保存时,此新文档将另存为新的当前文档,而对于旧的当前文档,它将删除到 "old" 视图。所以我可以看到新编辑文档和旧文档。

至于现在,我发现 this link 用于锁定标志,但我不知道如何为所有文档创建

我的问题是,我是否需要在我的视图上创建一个按钮来将所有文档复制到另一个视图?如何将所有文档复制到新视图并另存为新文档?谁能建议我可以添加到流程中的任何功能?提前致谢!

我会通过首先将 viewList.refresh 设置为 false 来解决这个问题:这会阻止视图索引在您循环浏览视图时刷新,尤其是当您进行编辑更改选择公式中的某些内容时。

遍历每个文档,document.copy通过设置 Form 参数创建存档。

在循环结束时,在终止事件 and/or 错误处理程序中,再次将 viewList.refresh 设置回真。

这样,如果您要编辑原始文档,您只需锁定原始文档,最好在循环内完成最短持续时间,而不是尝试在循环期间锁定所有文档。如果你走这条路,在终止事件 and/or 错误处理程序中也有一个文档解锁。

理论上我建议的终止事件和错误处理程序的操作不需要重复:只是我的谨慎本性。

Function CopyDoc( docOld As NotesDocument, dbThis As NotesDatabase) As NotesDocument
    Dim docNew As NotesDocument
    On Error GoTo Handler

    Set docNew  = docOld.copyto(dbThis)
    Call docOld.lock()
    docOld.Form = "Archive"
    Call docOld.Save(True,True)
    Call docOld.unlock()
    'docNew Edits You Want To Make
    Call docNew.Save(True,True)
    Set CopyDoc = docNew
e:  Exit Function

Handler:
    Call docOld.unlock()
    'additional logging for diagnostics
    Resume e
End Function