我有两个观点,那就是电脑和草稿。我在计算机视图中创建一个按钮,它是创建一个计算机文档的副本来起草视图。
下面是我的按钮代码。当我单击按钮时,它会说“对象变量未设置”。
Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim view As NotesView
Set db = session.CurrentDatabase
Set view = db.GetView( "Draft" )
Set doc = dc.GetFirstDocument()
Set dc = db.AllDocuments
While Not (doc Is Nothing)
Call doc.CopyToDatabase(db)
Set doc = dc.GetNextDocument(doc)
Wend
End Sub有谁可以帮我?我可以问,我是否需要在草案视图中插入任何公式?谢谢你的帮助!
更新问题
我发现了问题并修正了我的代码。但是,当我单击该按钮时,它会复制所有文档并显示在两个视图上。如何在仅选定的文档草稿中复制文档?例如,只使用“活动”文档?谢谢!
发布于 2019-04-18 09:47:04
视图不包含文档。文档在数据库中,视图使用选择公式显示选定的文档。如果您的选择与所有文档匹配,则将显示所有文档。这个公式决定了哪些文档是视图的一部分。
如果视图A包含您的文档,而视图B不包含,则必须调整视图B中的选择公式,使其与文档匹配。
例如,如果希望当前文档显示在视图B中,可以向当前文档添加一个值,如DocumentViews,并将其设置为"B",并将视图B的选择公式设置为选择DocumentViews="B“。
现在,如果您想对当前在视图中选择的文档进行操作,可以使用NotesDatabase.UnprocessedDocuments属性。它包含所有选定文档的列表。
Dim ns As New NotesSession
Dim db As NotesDatabase
Set db= ns.CurrentDatabase
Dim dc As NotesDocumentCollection
Set dc= db.UnprocessedDocuments
Dim doc As NotesDocument
Set doc= dc.GetFirstDocument
Dim newdoc As NotesDocument
Do Until doc Is Nothing
' you might have to check the status of the current document before copying...
Set newdoc= doc.CopyToDatabase(db)
Call newdoc.ReplaceItemValue("Status", "Draft")
Call newdoc.Save(True, False)
Set doc= dc.GetNextDocument(doc)
Loophttps://stackoverflow.com/questions/55740301
复制相似问题