2014-04-10 75 views
1

我有一个多值字段,用户可以输入多个值。该字段是用于保存用户电子邮件地址的名称值字段。我希望将电子邮件地址列为用户的互联网地址,而不是其组织单位/组织地址。 最初显示为“Jane Doe/Sales/USA”,我希望将其列为[email protected]Lotus Notes中的公式列表 - 尝试更新每个元素

此字段将包含多值,因此可以是Jane Doe/Sales/USA; Fred Smith/Sales/KNC;汤姆琼斯/会计/ ING

首先,有没有办法让网址从名称字段列出?我尝试了一些本来可以显示互联网地址的东西,但它不起作用。

我有一个以前的单值字段,并使用以下公式将其显示为互联网地址: 这里是我使用的公式。保留名称列出用户名称作为他们的名字和姓氏。

HoldingLeft := @Left(HoldName; " "); 
HoldingRight := @Right(HoldName; " "); 
CompleteName := (HoldingLeft + "." + HoldingRight + "@newplace.com"); 
CompleteName 

因为我不熟悉公式语言中的列表,得到我想要的结果的最佳方法是什么。

您的意见非常感谢。 谢谢你,让

回答

3

这是一种方式来转换完全合格的名称到的电子邮件地址:

@If(FieldWithNames = ""; 
    ""; 
    @Replace(@Name([CN]; FieldWithNames); " "; ".") + "@newplace.com") 

假设名称字段称为FieldWithNames那么我们首先测试它是否是空的。如果是,我们返回一个空字符串。如果否,我们将完全限定名称列表仅转换为名称列表。然后我们用“。”替换所有空格。并添加域。我们很幸运,因为@Name和@Replace可以处理列表。

这是一种方法,从目录中读取互联网电子邮件地址,完全合格的名称:

@If(FieldWithNames = ""; 
    ""; 
    @NameLookup([Exhaustive]; FieldWithNames; 'InternetAddress')) 

我们很幸运再次为@NameLookup接受作为第二个参数列表。它从目录中读取每个条目的互联网电子邮件地址并将结果作为列表返回。

其他的情况下,您可能需要分别处理列表中的每个条目。然后你可以使用@Transform(list; "variable"; [code doing stuff with variable])

+0

Tack FIELD FieldWithNames:=到Knut的第二个公式的前面,这是@formula代码的一行中的完整解决方案。 –

+0

这样,你的代码更加稳定 –

+2

如果多值字段包含空白条目,即使它也包含一些非空行,FieldWithNames =“”返回true。应该使用@Trim删除这些,或者测试!(FieldWithNames!=“”) –