如何识别文档是使用Notes API在Lotus Notes中的收件箱/草稿/发送?

时间:2012-03-21 10:46:37

标签: lotus-notes

DocumentCollection documents = db.getAllDocuments(); 文档doc = collection.getFirstDocument();

用于识别文档位置的方法。无论是收件箱还是已发送或草稿。

4 个答案:

答案 0 :(得分:1)

最安全的方法是使用db.GetView()获取每个文件夹的句柄,然后查看文档是否在该文件夹中。为此,您可以使用db.AllEntries()方法获取NotesViewEntryCollection,然后调用GetEntry方法以查看该文档是否在该集合中。

如果您为数据库启用了文件夹引用,则可以使用Notes文档的folderreferences属性来简化操作。

答案 1 :(得分:1)

收件箱是一个文件夹。已发送和草稿是视图。这是一种对视图和文件夹都有相同方法的方法:

  • 使用View myView = Database.getView获取($ Inbox),($ Sent)或($ Drafts)视图。
  • 创建一个空的NoteCollection对象
  • 使用NoteCollection.add(doc)将文档放入集合
  • 然后使用NoteCollection.intersect(myView)。
  • 如果NotesCollection.Count!= 0,您的文档仍在NoteCollection中,因此它位于您正在测试的视图或文件夹中。

答案 2 :(得分:1)

这个问题涉及两个方面。文件夹和视图。您可以分两部分完成。首先,您可以检查解决与文件夹相关的问题的IBM technote(即收件箱是文件夹)。

"草案"和"已发送"设计元素是视图,因此必须以不同方式进行搜索。您可以使用" contains"来完成此操作。 NotesViewEntryCollection的方法如下:

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

请注意,您可以将此功能用于任何视图,而不仅仅是发送/草稿视图。

答案 3 :(得分:0)

在Domino Designer中打开邮件数据库,然后查看视图和文件夹。如果是视图,则有一个Select语句,查看选择了哪些文档。如果它是一个文件夹,您必须知道如何将文档附加到该文件夹​​。

($ Sent)是一个视图,但($ Drafts)和($ Inbox)是文件夹。对于后两者,你确实必须使用FolderReferences。