我使用公式从组中检索名称,并将它们放入Names类型的字段中:
@Name([CN];NAME)
我想在我的代码中操作这些数据,但是使用Lotusscript。无法在Google或Lotus Domino的帮助中找到它。有没有办法可以解决这个问题?
答案 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$)
如果需要在文档的上下文中评估公式,则可以将该文档作为第二个参数传递给方法。