1

我创建了一个视图,其中第一列可以是表单上三个不同名称中的任何一个。我想让代理浏览视图中的每个文档,并为视图中的每个人创建一封电子邮件,其中包含与该人有关的文档中的信息。每个人可以是表单上三个姓名字段中的任何一个,但他们只能在表单上出现一次,因此如果一个人有 5 个文档,则姓名 a 可能有 3 个,姓名 b 中可能有 1 个,姓名中可能有 1 个。名字 c.

当我尝试获取文档第一列中的值时,我的问题出现了。由于获取第一个文档只会让我得到一个包含 3 个名称的文档,因此我需要知道视图中的列中的名称。因为当我到达其他两个字段中的人员时,我将再次处理此文档,但是我必须按字母顺序执行此操作,并且我必须为一个人完成所有文档,然后才能移动到视图中的下一个人。

这是可以使用此视图完成的事情,还是我必须对每个名称进行搜索并以这种方式获取每个人的文档。我认为有一种简单的方法可以简单地获取视图列值,但是对于我这里的示例,我不确定它是如何工作的。或者这是非常简单的事情,我只是脑抽筋。

提前致谢。

4

2 回答 2

2

如果我没听错的话,您应该能够使用 NotesView 的AllEntries属性遍历视图条目而不是文档。在每个条目(即 NotesViewEntry 对象)中都有一个列值属性,因此您可以获得为该特定条目显示的特定列值。

Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim entry As NotesViewEntry

Dim vc As NotesViewEntryCollection
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set view = db.getView("My View")
Set vc = view.AllEntries

Set entry = vc.GetFirstEntry()
While Not (entry Is Nothing)

    *** Process columns from entry here ***

    Set entry = vc.GetNextEntry()
Wend
于 2012-12-26T16:25:20.613 回答
2

你可以使第一列的公式像这样

(fieldA +"^A") : (fieldB  +"^B") : (fieldC  + "^C')

添加带有标量的列表会将标量附加到列表的每个元素,因此列中的每个名称都将使用原始字段的名称进行标记。你应该得到这样的结果:

Adam Abel^A
Adam Abel^A
Adam Abel^C
Bob Baker^B
Carl Cook^A
Carl Cook^B
David Day^B
David Day^C
David Day^C

然后在遍历列条目时将名称从字段 id 中拆分出来就很简单了。

于 2012-12-26T22:58:11.790 回答