NotesDocument打开两次

问题描述 投票:1回答:1

我有一个应用程序,使用2个服务器和2个数据库.服务器1--主应用程序服务器2--日历

在主应用程序中启动文档时,我有一个链接到日历条目。 这将打开日历服务器上的日历条目。 在日历条目中有一个链接,可以在主应用程序中启动文档。

这个操作是使用Notesuiworkspace.editDocument函数执行的。

我的问题是,在上面的场景中,我在应用程序中打开了主文档(1个文档)。 然后我点击按钮来启动日历条目(我现在有2个文档打开,主应用程序中的文档和相应的日历条目)。 如果我再点击打开主文档按钮,它就会打开主文档的另一个副本。 如果用户不知道他们就会造成保存冲突。

这种情况已经发生在几个版本的Notes上,目前在10上。

从主应用程序服务器1 docuemnt到打开日历条目的代码。

Set uidoc = ws.CurrentDocument
Set doc = Srv1.GetDocumentByUNID(uidoc.FieldGetText("CalenderUNID")
If Not (doc Is Nothing) Then
  Set uidoc = ws.EditDocument(True, doc)
End If      

从日历条目到服务器1上的主文档的代码。

sID = uidoc.FieldGetText("MainUNID")
Set doc = Srv1.GetDocumentByUNID(sID)
If Not (doc Is Nothing) Then
  Call uidoc.Close(True)
  Set uidoc = ws.EditDocument(True, doc)
End If
lotus-notes lotus
1个回答
2
投票

请检查 文件 对于NotesUIWorkspace中的 "EditDocument",设置notesUIDocument = notesUIWorkspace .EditDocument( [editMode],[notesDocument],[notesDocumentReadOnly],[documentAnchor$],[returnNotesUIDocument]。

Set notesUIDocument = notesUIWorkspace .EditDocument( [editMode] , [notesDocument] , [notesDocumentReadOnly] , [documentAnchor$] , [returnNotesUIDocument] , [newInstance] )

你看,有一个可选的参数 "newInstance"。如果你进一步阅读,它说:"newInstance "是一个可选的参数。

newInstance

布尔型。可选。如果为真(默认),在用户界面中打开一个新的NotesDocument(参数2)实例。如果为False,则改变焦点到现有的NotesDocument实例(如果存在),或者改变焦点到一个新的实例(如果不存在)。如果没有指定noteDocument或者文档有目标框架,这个参数不适用。

只要相应地修改你的代码即可。

Set uidoc = ws.EditDocument(True, doc,False,"",True,False)

但要注意: "newInstance "标志有一个(小)错误。如果你创建了一个新的主文档并保存它。然后打开日历文档并点击链接回到主文档,那么总是会出现第二个主文档的窗口,除非你在此期间关闭并重新打开主文档...... 保存后没有关闭和重新打开的 "新 "文档是不被newinstance标志识别的...

© www.soinside.com 2019 - 2024. All rights reserved.