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
在 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