如何获取Notes count列的值

How to obtain value of Notes count column

我创建了一个视图,其中列出了具有特定承包商 ID 的合同的文档数量。一列是计数列,未分类,硬编码为“1”的公式,并设置为总计。第二列是 ContractorID 设置为字段 ContractorID 并且已分类。到目前为止这很好,但我希望输出具有相同 ContractorID 的文档。我尝试使用 "Count" 列上的计数修改视图,但没有成功。我还尝试按降序对 "Count" 列进行排序,以在顶部显示使用相同 ContractorID 的文档,但这似乎也不起作用。最后,我尝试使用代理来确定 "Count" 列的值,但这似乎只能识别“1”的值。如何让代理确定值是否不是“1”或进一步过滤视图以仅显示计数大于“1”的视图?

这是代理代码的摘录;

Dim columnCount As Integer

Set requestDoc1 = viewContractors.GetFirstDocument
Do Until requestDoc1  Is Nothing
columnCount = requestDoc1.Columnvalues(0)
strContratorID = requestDoc1.getitemvalue("ContractorID")
    If columnCount <> 1 Then
    ..... Add strContratorID to list to output
    End if
Set requestDoc1 = viewContractors.Getnextdocument(requestDoc1)
Loop

这是我希望进一步过滤或代理操作的视图的屏幕转储

您需要使用 NotesViewNavigator 和 NotesViewEntry- 对象。

NotesDocument 始终代表视图中的文档(单行),但从不代表类别本身。这就是您需要 NotesViewentries 的原因:它们还可以表示类别行。

要获取所有 "duplicate" 文件的列表,您可以这样做:

Dim viwNav As NotesViewNavigator
Dim veCat As NotesViewEntry

Set viwNav = viewContractors.Createviewnav()
Set veCat = viwNav.Getfirst()

While Not veCat Is Nothing
    If veCat.Columnvalues(0) > 0 Then
        strContratorID = veCat.Columnvalues(1)
        '- ..... Add strContratorID to list to output
    End If
    Set veCat = viwNav.Getnextcategory( veCat )
Wend

不幸的是,总计 - 列不能按总值排序,也不能过滤。所以你真的需要走 "code"- 路。

1)我认为你应该改变两列的位置:

2) 这是您的代理的改编代码:

    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim viewContractors As NotesView
    Dim viewNavigator As NotesViewNavigator
    Dim viewEntry As NotesViewEntry

    Dim contractorID As String
    Dim columnCount As Integer

    Set db = session.CurrentDataBase
    Set viewContractors = db.getView("Contractors")

    Set viewNavigator = viewContractors.CreateViewNav()

    Set viewEntry = viewNavigator.Getfirst()
    While Not(viewEntry Is Nothing)
        If viewEntry.Iscategory Then
            contractorID = viewEntry.Columnvalues(0)
            columnCount = viewEntry.Columnvalues(1)
        End If
        Set viewEntry = viewNavigator.Getnextcategory(viewEntry)
    Wend