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

时间:2015-07-30 07:10:24

标签: lotus-notes

在莲花笔记6.5.6我有一份文件,里面有一个"克隆文件"用于创建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)

1 个答案:

答案 0 :(得分:3)

您 - 错误地 - 假设文档已“保存”,很可能是因为“@IsNewDoc”和NotesUiDocument.isNewDoc在使用uiw.EditDocument打开它之前在LotusScript中创建的任何文档上都返回FALSE。 / p>

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

在公式I中,通常使用名为“IsNewDoc”的计算显示字段,其中包含公式:

@Modified = @Created

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

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