Lotus Notes 脚本:创建并打开未保存的克隆文档

Lotus notes script: create and open unsaved clone doc

在 Lotus Notes 6.5.6 中,我有一个文档,里面有一个 "clone doc" 按钮,可以创建 uidoc 的副本并在工作区中打开它。 我的问题是,当在工作区中打开克隆的文档时,它已经保存了,我不想要这个。我已经检查了 "Queryopen"、"Postopen"... 状态,但没有 doc.save 呼叫。那么,如何在不保存的情况下在我的工作区中打开一个新的克隆文档? 这是我的错误代码。

    Dim session As New notessession
    Dim uiw As New notesuiworkspace
    Dim uidoc As notesuidocument
    Dim db As NotesDatabase
    Dim newdoc As NotesDocument
    Dim NewUIDoc As NotesUIDocument
    Dim doc As notesdocument    
    Set uidoc=uiw.currentdocument
    Set db=session.currentdatabase
    Set doc=uidoc.document  
    Set newdoc = db.CreateDocument
    Call doc.CopyAllItems( newdoc)
    Set NewUIDoc = uiw.EditDocument( True ,newdoc)

您 - 错误地 - 假设文档是 "saved",很可能是因为“@IsNewDoc”和 NotesUiDocument.isNewDoc 在 LotusScript 中创建的任何文档上都是 return FALSE在使用 uiw.EditDocument.

打开它之前

这是 Lotus Notes 设计中的一个众所周知的缺陷。您需要自己的功能来检查文档是否是新的。

在公式中,我通常使用一个名为 "IsNewDoc" 的计算显示字段,其中包含公式:

@Modified = @Created

对于 LotusScript,我有一个自己的函数,如下所示:

Function MyIsNewDoc( doc As NotesDocument ) As Boolean
    MyIsNewDoc = (doc.Lastmodified = 0)
End Function