笔记文档的收集和查看是否有限制?

Is there a restriction on notes document collection and view?

我尝试使用 NotesView.AllEntries.Count 获取文档总数(总计 = 8,462)

但在我的 for 循环索引中总计

当我打印索引时 ==> 它显示了 10975

程序怎么了?以及如何解决这个问题?

非常感谢


编辑:这是我的代码。

(将当前数据库中的文档移动到数据库历史记录中)

是否与文档冲突有关?

NotesView.GetNthDocument 文档说 "This method accesses only top-level (main) documents in a view; response documents are excluded."

另外,@umeli 是绝对正确的。可以这样想:大多数会读写的人都知道他们字母表的第一个字母和第 26 个数字,他们可以立即告诉你 "H" 后面是什么字母,但他们不知道第 20 个他们头顶上的字母。问他们第 20 个字母,他们必须以您知道的数字开头(例如 "A"),然后数到第 20 步。因此,在人脑中,字母表不是以数组的形式存储的,而是以链表的形式存储的。 NotesView 和 NotesDocumentCollection 是相同的。在大多数情况下,无论视图大小如何,GetNextDocument 都会很快,但 GetNthDocument 一开始会很快,然后越来越慢...... GetNthDocument(1000) 从第一个文档开始并计数到一千......然后当你再次循环时它从第一个数到第 1,001 个...

改为使用以下模式:

Set doc = view.GetFirstDocument
Do Until doc Is Nothing
    'Do your thing here
    Set doc = view.GetNextDocument(doc)
Loop

...或者在你的情况下,如果你想做一些从视图中删除文档的事情...

Set doc = view.GetFirstDocument
Do Until doc Is Nothing
    Set docNext = view.GetNextDocument(doc) 'Get it early!
    'Do your thing here
    Set doc = docNext
Loop

这还有处理响应文档的优势。

不是你问的,但我还建议你写一个函数,它在主文档上工作,然后在它的每个子文档上递归调用它自己,然后让你的视图 only 选择主要文档。这样,您可以更加放心地一次移动响应层次结构。

您可能想要做的另一件事是将 NotesView.AutoUpdate 设置为 False。这将有助于 运行 更快。