我有一个多值字段,用户可以在其中输入多个值。该字段是名称值字段,用于保存用户的电子邮件地址。我希望将电子邮件地址列为用户的互联网地址,而不是其组织单位/组织地址。 最初它出现在" Jane Doe / Sales / USA"我希望将其列为Jane.Doe@crown.com
此字段将包含多个数据,因此可以是Jane Doe / Sales / USA; Fred Smith / Sales / KNC;汤姆琼斯/会计/ ING
首先,是否有办法从名称字段中列出要列出的互联网地址?我尝试了一些据说会显示互联网地址的东西,但它没有用。
我有一个前一个单值字段,并使用以下公式将其显示为互联网地址: 这是我使用的公式。保留名称列出了用户名作为其名字和姓氏。
HoldingLeft := @Left(HoldName; " ");
HoldingRight := @Right(HoldName; " ");
CompleteName := (HoldingLeft + "." + HoldingRight + "@newplace.com");
CompleteName
由于我不熟悉公式语言中的列表,获得我想要的结果的最佳方法是什么。
您的意见表示赞赏。 谢谢, 让
答案 0 :(得分: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])