获取Lotus Domino中组的成员

时间:2013-06-10 19:15:10

标签: lotus-notes lotus-domino lotusscript lotus-formula

我使用公式从组中检索名称,并将它们放入Names类型的字段中:

@Name([CN];NAME)

我想在我的代码中操作这些数据,但是使用Lotusscript。无法在Google或Lotus Domino的帮助中找到它。有没有办法可以解决这个问题?

3 个答案:

答案 0 :(得分:6)

在LotusScript中,有一个名为“NotesName”的类来执行此类操作。

如果您的文档中有一个名为“NAME”的字段,则代码如下所示:

Dim doc as NotesDocument
Dim nnName as NotesName
'Somehow get the document, using ws.CurrentDocument.document 
'or db.UnprocessedDocments.GetFirstDocument, depends on your situation

Set nnName = New NotesName( doc.GetItemValue("NAME")(0) )
Whatyourlookingfor = nnName.Common

如果NAME是一个多值,那么你必须编写一个循环来获取数组中每个元素的通用名称doc.GetItemValue(“NAME”)

下次有问题时,请查看帮助中的语言交叉引用... 它告诉你,@ Name的LotusScript-Pendant是什么。

答案 1 :(得分:4)

请尝试使用以下建议从组中获取人名列表。

首先需要检查names.nsf上搜索组的可用性(所有组都在“($ VIMGroups)”视图中可用。

如果该组可用,则意味着您需要从“成员”项

获取值列表

成员项具有变量(列表)值。因此需要迭代成员以获取每个值

请参阅以下示例代码:

  Set namesDb=session.GetDatabase(db.Server,"names.nsf")
  Set groupVw=namesDb.GetView("($VIMGroups)")
  Set groupDoc=groupvw.GetDocumentByKey("groupname")
  persons= groupDoc.members
  Forall person In persons
    Msgbox person
  End Forall

答案 2 :(得分:1)

您可以使用Evaluate方法。它将返回Notes公式的结果:

Dim result as Variant

formula$ = "@Name([CN];NAME)"
result = Evaluate(formula$)

如果需要在文档的上下文中评估公式,则可以将该文档作为第二个参数传递给方法。

More info here