我试图使用基于某个列的lotus脚本来查找Domino数据库中的条目数。我在下面创建了以下脚本,该脚本运行正常,但消息框总数比脚本结束时显示的对话中的总数少几百。我假设一个包含所有父类别等。如何根据"创建日期"计算视图中的记录数量?列?
我在视图中包含了我想要的总列的图像。
Sub Initialize
Dim db As NotesDatabase
Dim view As NotesView
Dim s As NotesSession
Dim NotesDocColl As NotesDocumentCollection
Dim requestDoc As NotesDocument
Dim lngDocCount As Long
Set s = New NotesSession
Set db = s.CurrentDatabase
Set view = db.GetView("By Category")
Set requestDoc = view.Getfirstdocument()
lngDocCount = 0
Do Until requestDoc Is Nothing
lngDocCount = lngDocCount + 1
Set requestDoc = view.GetNextDocument(requestDoc)
Loop
MessageBox "Number of documents = " & lngDocCount
End Sub
答案 0 :(得分:2)
你想要的是一个NotesViewNavigator对象。这个功能强大的工具允许您利用视图所做的工作来生成总计,计数,计算列值等,而无需实例化每个文档对象。对于您的示例,请尝试以下代码段:
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim nv As NotesViewNavigator
Dim e As NotesViewEntry
Dim dc As NotesDocumentCollection
Set db = session.Currentdatabase
Set view = db.getview("Categories")
Set nv = view.Createviewnav()
Set e = nv.Getfirst()
Dim categcount, totalcount
While Not e Is Nothing
If e.Indentlevel=3 Then
categcount = e.Childcount '<-do something with this value
totalcount = totalcount+categcount
End If
Set e = nv.Getnext(e)
Wend
End Sub
查看NoteviewEntry类的所有属性。你可能会发现一些其他有用的东西,比如.Siblings
答案 1 :(得分:0)
以下代码将为您提供在视图中为所有98个类别创建的&#34;总文档&#34;:
add_of_arr
为了获得每个类别的文档数量,我在视图中添加一个计算为1的列,并使用&#34;隐藏详细信息行&#34;总计(设计器中排序选项卡的底部)。选择。大多数情况下,它是视图中的第一列。
为了以编程方式获取它,我使用NotesViewNavigator并遍历顶级类别。