Lotus notes 在LotusDomino中获取组成员

Lotus notes 在LotusDomino中获取组成员,lotus-notes,lotus-domino,lotusscript,lotus-formula,Lotus Notes,Lotus Domino,Lotusscript,Lotus Formula,我使用公式从组中检索名称,并按以下方式将它们放在类型名称字段中: @Name([CN];NAME) 我想在代码中操作这些数据,但使用Lotusscript。在Google或Lotus Domino的帮助下找不到它。我有办法处理这个问题吗 您可以使用评估方法。它将返回Notes公式的结果: Dim result as Variant formula$ = "@Name([CN];NAME)" result = Evaluate(formula$) 如果需要在文档上下文中计算公式,则可以将该文

我使用公式从组中检索名称,并按以下方式将它们放在类型名称字段中:

@Name([CN];NAME)

我想在代码中操作这些数据,但使用Lotusscript。在Google或Lotus Domino的帮助下找不到它。我有办法处理这个问题吗

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

Dim result as Variant

formula$ = "@Name([CN];NAME)"
result = Evaluate(formula$)
如果需要在文档上下文中计算公式,则可以将该文档作为第二个参数传递给该方法


在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挂件是什么。

请尝试下面的建议,从组中获取人名列表

首先需要检查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

我试图在MessageBox中显示结果值,但出现类型不匹配错误。怎么了?Evaluate返回一个数组,而不是字符串,因此您需要处理结果(0)--假设您一次只使用一个名称。但是如果我正确阅读了您的问题--我不确定我是否正确--可能有一种方法可以使用NotesName类而不是使用Evaluate来完成您想要的操作。此问题的标题似乎与您要问的不匹配。为什么不显示LotusScript以便我们可以看到你真正想做的就是我想要的完美