Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lotus notes 在另一个数据库中设置新文档的文档链接_Lotus Notes_Lotusscript - Fatal编程技术网

Lotus notes 在另一个数据库中设置新文档的文档链接

Lotus notes 在另一个数据库中设置新文档的文档链接,lotus-notes,lotusscript,Lotus Notes,Lotusscript,我在一个数据库中有一个操作,它将在另一个数据库中创建一个新文档。如果(至少)新文档在保存新文档后立即包含指向原始文档的文档链接,那么这将非常方便 为此,我在新文档的表单上创建了一个计算RT项,并通过脚本在Querysave事件中插入一个文档链接。但是RT项总是空的。让这项工作正常运行的基本步骤是什么 (Notes 8.5)一个选项是将旧文档中的NotesDocumentUNID、数据库路径和服务器保存在新文档的三个字段中 然后在新文档的设计中创建一个按钮,通过这两个字段打开旧数据库中的旧文档 创

我在一个数据库中有一个操作,它将在另一个数据库中创建一个新文档。如果(至少)新文档在保存新文档后立即包含指向原始文档的文档链接,那么这将非常方便

为此,我在新文档的表单上创建了一个计算RT项,并通过脚本在Querysave事件中插入一个文档链接。但是RT项总是空的。让这项工作正常运行的基本步骤是什么


(Notes 8.5)

一个选项是将旧文档中的NotesDocumentUNID、数据库路径和服务器保存在新文档的三个字段中

然后在新文档的设计中创建一个按钮,通过这两个字段打开旧数据库中的旧文档

创建新文档

Dim workspace As New NotesUIWorkspace
Dim session As New NotesSession
Dim oldDB As NotesDatabase
Dim oldDoc As NotesDocument
Dim newDoc As NotesDocument
Dim newDB As NotesDatabase

Set oldDB = session.CurrentDatabase
Set oldDoc = workspace.CurrentDocument.Document
Set newDB = session.GetDatabase("SERVER", "FILE")
Set newdoc =newdb.CreateDocument

newdoc.oldDocUNID= olddoc.UniversalID
newdoc.oldDBpath=oldDB.FilePath
newdoc.oldDBServer = oldDB.Server

Call newdoc.save(True,False,True)
“创建”按钮以打开oldDoc

Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Dim session As New NotesSession
Dim newdoc As notesdocument
Dim oldDB As notesdatabase
Dim oldDoc As notesdocument


Set newdoc = workspace.CurrentDocument.Document
Set oldDB = session.GetDatabase(newdoc.oldDBServer(0),newdoc.oldDBpath(0))
Set oldDoc = oldDB.GetDocumentByUNID(newDoc.oldDocUNID(0))
Call workspace.EditDocument(True,oldDoc)


End Sub
DocLink选项

Dim workspace As New NotesUIWorkspace
Dim session As New NotesSession
Dim oldDB As NotesDatabase
Dim oldDoc As NotesDocument
Dim newDoc As NotesDocument
Dim newDB As NotesDatabase
Dim rtitem As NotesRichTextItem

Set oldDB = session.CurrentDatabase
Set oldDoc = workspace.CurrentDocument.Document
Set newDB = session.GetDatabase("SERVER", "FILE")
Set newdoc =newdb.CreateDocument

Set rtitem = newdoc.CreateRichTextItem("body")
Call rtitem.AppendDocLink(olddoc, "title")


Call newdoc.save(True,False,True)

您可以使用
rtitem.AppendDocLink(doc,“Title”)
创建所需的文档链接

  • rtitem
    是新创建文档的RichText项

  • doc
    是第一个数据库中当前选定的文档,该数据库具有用于创建新文档的按钮

要得到一个令人满意的解决方案有一点挑战。如果我们将以下行放入创建新文档的按钮中

Dim workspace As New NotesUIWorkspace
Dim session As New NotesSession
Dim oldDB As NotesDatabase
Dim oldDoc As NotesDocument
Dim newDoc As NotesDocument
Dim newDB As NotesDatabase

Set oldDB = session.CurrentDatabase
Set oldDoc = workspace.CurrentDocument.Document
Set newDB = session.GetDatabase("SERVER", "FILE")
Set newdoc =newdb.CreateDocument

newdoc.oldDocUNID= olddoc.UniversalID
newdoc.oldDBpath=oldDB.FilePath
newdoc.oldDBServer = oldDB.Server

Call newdoc.save(True,False,True)
。。。
设置docSelected=session.DocumentContext
Set docNew=dbTarget.CreateDocument()
设置rtitem=docNew.CreateRichTextItem(“Doclink”)
调用rtitem.AppendDocLink(docSelected,“Title”)

调用docNew.Save(True,True)'是的,我以前有过这个,但是用户喜欢有一个文档链接。我想如果新文档还没有保存,这将不起作用。我的意思是,新文档已打开,但用户可能会关闭而不保存。您必须将此代码放入创建新文档的按钮中。这样,RichText中的链接在您打开新文档之前就准备好了。很好,
DocLink
是在新文档上创建的,但我无法将其可视化。我在新文档表单上创建了一个RT。只需将此RichText字段添加到表单中,而无需任何其他公式或脚本代码。当你打开新的文档链接时,它会显示在这个RichText字段中。我不是这样理解的。这是一个本地客户端应用程序,而不是web应用程序。如果你能显示你的代码,它将非常有用。