Lotus Notes获取特定的视图列值

时间:2012-12-26 15:56:09

标签: lotus-notes

我创建了一个视图,其中第一列可以是表单上三个不同名称中的任何一个。我希望让代理人浏览视图中的每个文档,并为视图中的每个人创建一封电子邮件,其中包含与该人员相关的文档中的信息。每个人都可以是表单上三个名称字段中的任何一个,但是他们只能在表单上一次,所以如果一个人有5个文档,名称中可以有3个,名称中有1个,1个名字c​​。

当我尝试在文档的第一列中获取值时,我的问题就出现了。由于获取第一个文档只能获得一个包含3个名称的文档,因此我需要知道视图中我所在的列中的名称。因为当我找到其他两个领域的人时,我将再次处理这个文件,但是我必须按字母顺序执行此操作,并且我必须为一个人做所有文档,然后再转到视图中的下一个人。

这是可以使用此视图完成的事情,还是我必须搜索每个名称并以此方式获取每个人的文档。我认为有一个简单的方法来简单地获取视图列值,但对于我的例子,我不知道这将如何工作。或者这是一件非常简单的事情,我只是在大脑抽筋。

提前致谢。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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中拆分名称只是一件简单的事。