【发布时间】:2012-03-22 11:16:12
【问题描述】:
DocumentCollection 文档 = db.getAllDocuments(); 文档 doc = collection.getFirstDocument();
使用哪种方法来识别文档位置。无论是在收件箱、已发送还是草稿中。
【问题讨论】:
标签: lotus-notes
DocumentCollection 文档 = db.getAllDocuments(); 文档 doc = collection.getFirstDocument();
使用哪种方法来识别文档位置。无论是在收件箱、已发送还是草稿中。
【问题讨论】:
标签: lotus-notes
最安全的方法是使用 db.GetView() 获取每个文件夹的句柄,然后查看文档是否在该文件夹中。为此,您可以使用 db.AllEntries() 方法获取 NotesViewEntryCollection,然后调用 GetEntry 方法查看文档是否在该集合中。
如果您为数据库启用了文件夹引用,则可以使用 Notes 文档的 folderreferences 属性来简化操作。
【讨论】:
收件箱是一个文件夹。已发送和草稿是视图。这是一种适用于视图和文件夹的方法:
【讨论】:
这个问题涉及2个方面。文件夹和视图。您可以分两部分完成。首先,您可以查看这个 IBM technote,它解决了您与文件夹相关的问题(即收件箱是一个文件夹)。
“草稿”和“已发送”设计元素是视图,因此必须进行不同的搜索。您可以通过使用 NotesViewEntryCollection 的“contains”方法来完成此操作,如下所示:
Function FindDocument(view As notesView, doc As notesDocument) As Boolean
On Error Goto errHandle
Dim vec As NotesViewEntryCollection
Dim bFound As Boolean
bFound = False
Set vec = view.AllEntries
If vec.Contains(doc) Then
bFound = True
End If
FindDocument = bFound
Exit Function
errHandle:
Print Lsi_info(2) + ":" + Str(Err) + " - " + Error(Err) + _
", at line " + Str(Erl)
Exit Function
End Function
请注意,您可以将此功能用于任何视图,而不仅仅是发送/草稿视图。
【讨论】:
在 Domino Designer 中打开邮件数据库并查看视图和文件夹。如果是一个视图有一个 Select 语句,查看选择了哪些文档。如果是文件夹,则必须知道文档是如何附加到文件夹的。
($Sent) 是一个视图,但 ($Drafts) 和 ($Inbox) 是文件夹。对于后两者,您确实必须使用FolderReferences。
【讨论】: