在 QueryPaste 期间检索 NotesDocumentCollection

Retrieving NotesDocumentCollection during QueryPaste

这在笔记中可行吗?我目前使用的是版本 11。 我有一个带有嵌入式视图的表单。此视图在 QueryPaste 函数中有代码。 例如它有代码:

Sub Querypaste(Source As Notesuiview, Continue As Variant)
    Dim ndcRegel As NotesDocumentCollection
    Dim docRegel As NotesDocument

    Set ndcRegel = source.Documents
    Msgbox "1"
    Msgbox source.Documents.Count
    etc...

在嵌入视图中复制和粘贴文档时,它首先触发 Msgbox 1,然后计数我得到结果 0。虽然嵌入视图中有文档。

当我在视图本身中复制粘贴时,它可以正常工作并确实找到了 ndc 集合..

为什么会这样?这可以解决吗?因为我想阻止我的用户在嵌入式视图中复制粘贴文档。

@Teleman 的评论将是我的反应,但 QueryPaste 仅为视图定义,而不是为表单或嵌入式视图定义。无论如何,至少在 R9 中是这样。

无论如何,QueryPaste 的源参数是 NotesUIView object, and the Documents property 定义为包含 selected 文档的集合,我怀疑在粘贴操作期间实际上,没有选定的文件。事实上,文档是这样说的:

In the QueryPaste event, Documents does not contain a list of the documents being pasted. You can use the Documents property in the Postpaste event to access thelist after the documents are pasted, or you can create an agent to process pasted documents.

在 Notes 客户端中复制的文档放置在本地数据库中,文件名为“~clipbrd.ncf”。
我不记得我是在哪里找到这些信息的,但它是在互联网上的某个地方。

在视图的 QueryPaste 事件中,您可以获得该数据库,其 AllDocuments 属性 包含要粘贴的文档。

我只将它用于 Notes 8.5.x 和 9.0.x 客户端,以及 嵌入的视图,因此一定要测试再依赖它。

示例代码:

Sub Querypaste(Source As Notesuiview, Continue As Variant)
    Dim clipDb As New NotesDatabase("","~clipbrd.ncf")
    Dim dc As NotesDocumentCollection

    Set dc=clipDb.AllDocuments
    ' dc now contains copied documents.
End Sub