0

I retrieve names from a group using formula, and put them in a field of type Names this way:

@Name([CN];NAME)

I want to manipulate this data in my code, but using Lotusscript. Can't find it at Google or Lotus Domino's Help. Is there a way I can handle this?

4

3 回答 3

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

于 2013-06-11T03:29:31.060 回答
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
于 2013-06-11T12:07:18.147 回答
1

您可以使用该Evaluate方法。它将返回一个注释公式的结果:

Dim result as Variant

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

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

更多信息在这里

于 2013-06-10T19:51:01.293 回答