公式运算符和函数I(详情)
IF
描述: |
|
使用: |
IF(逻辑测试, value_if_true, value_if_false),用要计算的表达式替换 逻辑测试,用您希望当表达式为真时所返回的值替换 value_if_true,用您希望表达式为假时所返回的值替换 value_if_false。 |
公式字段示例: |
付款逾期 IF(AND(Payment_Due_Date__c < TODAY(),Payment_Status__c =“UNPAID”) , “PAYMENT OVERDUE”, null) 此公式确定付款到期日期是否已过,以及付款状态是否为“UNPAID”(未付)。如果是,则返回文本“PAYMENT OVERDUE”(付款逾期);如果不是,则保持该字段为空。本示例使用名为 Payment Due Date(付款到期日期)的自定义日期字段和一个名为 Payment Status(付款状态)的自定义文本字段。 插入税率 使用该默认值公式可根据用户所在城市设置资产的税率。使用以下默认值创建自定义百分比字段: IF($User.City = "Napa", 0.0750, IF($User.City = "Paso Robles", 0.0725, IF($User.City = "Sutter Creek", 0.0725, IF($User.City = "Los Olivos", 0.0750, IF($User.City = "Livermore", 0.0875, null ) ) ) ) ) |
IF(Sample.BillingCountry = "US", "http://maps.google.com/maps?q="&Sample.BillingStreet& "+"&Sample.BillingCity&"+"&Sample.BillingState&"+"&Sample.BillingCountry, (IF(Sample.BillingCountry = "UK", "http://maps.google.co.uk/maps?q="&Sample.BillingStreet &"+"&Sample.BillingCity&"+"&Sample.BillingCountry, } 本示例使用 IF 函数来确定地址是在美国还是在英国,以便它可以使用相应类型的 Google 地图来显示地址。 |
|
技巧提示: |
请确保您的 value_if_true 和 value_if_false 表达式属于相同的数据类型。 在使用包含 $Profile.UserType 变量的 IF 函数来确定登录用户所拥有的 Salesforce 用户许可证类型时,请使用下列值: Standard(用于 Salesforce) PowerPartner(用于 PRM 用户) CustomerSuccess(用于客户入口网站用户) PowerCustomerSuccess(用于客户入口网站管理员) 例如,使用下列公式可以确定登录用户是否具有引号中的许可证类型: IF(ISPICKVAL($Profile.UserType ,"Standard"), 100, 0.1) IF(ISPICKVAL($Profile.UserType ,"PowerPartner"), 100, 0.1) IF(ISPICKVAL($Profile.UserType ,"CustomerSuccess"), 100, 0.1) 备注:只有在 Enterprise、Unlimited、Performance 和 Developer Edition 中才能使用 $Profile 合并字段。 |
IMAGE
描述: |
|
使用: |
IMAGE(image_url、alternate_text、height、width) 并使用图像的完整路径替换 image_url。使用您想要在图像因为一些原因无法显示时显示的文本字符串替换 alternate_text。屏幕阅读器软件可使用此文本。使用图像的垂直尺寸(用像素表示)替换高度。使用图像的水平尺寸(用像素表示)替换宽度。 对于报表,图像不会自动调整大小以适合报表列。使用高度和宽度参数显式调整图像的大小,使其适合列而不被部分截断。 |
示例: |
HYPERLINK("ymsgr:sendIM?"&Yahoo_Name__c, IMAGE("http://opi.yahoo.com/online?u=" & Yahoo_Name__c & "&m;=g&t;=0", "Yahoo")) 该公式显示可单击的 Yahoo! Messenger 图标,指明用户是否已经登录该服务。用户可以单击该图标以启动与该用户的 Yahoo! Messenger 会话。本示例对联系人使用一个名为 Yahoo Name(Yahoo 名称)的自定义文本字段,您可以在该字段中存储联系人的 Yahoo! Messenger ID。 |
技巧提示: |
高度和宽度参数是可选的。 可以用文本字符串替换图像 url 和备用文本参数。请用引号引起每个文本字符串。 可用使用数字来替换高度和宽度参数。 如果您希望将图像显示在别处,请将它们添加到“文档”选项卡中。例如,可以将产品图像存储在文档文件夹中,将该图像的 URL 复制到文档中,并将该 URL 粘贴到“产品”选项卡上公式字段中的图像 url 参数中。 如果您使用的是 Internet Explorer,有时,您必须更改安全设置,以便在图像使用 HTTP 协议时 Explorer 不会显示警告提示。有关更改安全设置的说明,请参阅 Internet Explorer 的联机帮助。 IMAGE 函数中不能包含 GETSESSIONID 函数作为其参数之一。 IMAGE 函数仅可用于公式字段和电子邮件模板。 如果联系人是通过个人客户引用的,则不能在自定义公式字段中显示与该联系人相关的图像。 |
IMAGEPROXYURL
描述: |
|
使用: |
<apex:image value="{!IMAGEPROXYURL("http://exampledomain.com/pic.png")}"/>,并使用图像替换 http://exampledomain.com/pic.png。 |
示例: |
<apex:image id="salesforce-twitter" value="{!IMAGEPROXYURL("https://pbs.twimg.com/profile_images/1014182734606897153/JfveQU3Z_400x400.jpg")}" alt="Salesforce on Twitter" /> 此 IMAGEPROXYURL 函数检索,并显示来自外部源 Twitter 图像主机的图像。此函数会通过 HTTPS 加载 Salesforce Twitter 简档图像。此函数也阻止图像未经授权地请求用户凭据。 |
技巧提示: |
对于托管在服务器上您无法控制的所有图像,使用 IMAGEPROXYURL。 渲染图像 URL 可随时更改。请勿随处复制并粘贴。 请勿在 Salesforce 外部使用渲染的图像 URL。 |
INCLUDE
描述: |
|
使用: |
{!INCLUDE(源代码, [inputs])},用要引用的 S-Control 代码片断替换源代码。用需要传递到该代码片断的任何信息替换输入。 |
包括页眉代码片断 <html> <body> {! INCLUDE($SControl.Header_Snippet, [title ="My Title",theme = "modern"])} </body> </html> 本示例所引用的代码片断为您创建并在 Web 选项卡中显示的页面提供页眉。本示例显示页标题“My Title”(我的标题)。使用 $SControl 全局变量可以引用 Custom S-Control。 包括输入参数 通过下面的两个示例可以了解如何创建可重复使用的代码片断并将其包括在 S-Control 中。 <h2 class=”{!$Request.titleTheme}.title”>{!$Request.titleText}</h2> 此片段需要两个输入参数:titleTheme 和 titleText。它是一个可重复使用的 HTML 标记,用来基于输入参数显示页标题和主题。接着,将创建一个包括此代码片断的 S-Control: <html> <head> </head> <body> {!INCLUDE($SControl.Title_Snippet, [titleTheme = "modern", titleText = "My Sample Title"]) } ... Insert your page specific content here ... </body> </html> 此 S-Control 使用名为 Title_Snippet 的代码片断来显示页面标题“My Sample Title”(我的示例标题),并使用“modern”(现代)显示风格。用您自己的 HTML 内容替换Insert your page specific content here(在此插入页面特定内容),并将该 S-Control 用作 Web 选项卡的源代码,以便在 Salesforce 中创建自己的页面。 |
|
技巧提示: |
由于此函数只是引用 S-Control 代码片断,而不是复制它,因此它始终运行 S-Control 代码片断的最新内容。请记住,对 S-Control 代码片断进行更改会对所有引用该代码片段的 INCLUDE 函数都将受到影响。 使用 $Request 全局变量可以访问该代码片断内的任何信息。 此函数仅对自定义按钮、链接和 S-Control 可用。 |
INCLUDES
描述: |
|
使用: |
INCLUDES(multiselect_picklist_field, text_literal),用多选选项列表的合并字段名替换 multiselect_picklist_field(多选选项列表字段),用您希望匹配的以引号括起的多选选项列表值替换 text_literal(文字表示值)。 |
示例: |
如果爱好自定义多选选项列表字段中选择的某个值是“高尔夫”,则 INCLUDES(Hobbies__c, "Golf") 将返回 TRUE(真)。 |
技巧提示: |
text_literal(文字表示值)表达式必须为文本类型,且应当放在引号内。它不能是一个合并字段或函数的结果。 如果出现以下任何情况中的一种,Salesforce 将返回错误: 您没有提供 text_literal(文字表示值)表达式。 您提供了空的 text_literal(文字表示值)表达式,如 "" 或 " "。 使用 ISBLANK 决定多选选项列表字段是否为空。 使用 INCLUDES 函数内包括的 PRIORVALUE 函数检查多选选项列表字段的上一个值是否包括特定值。例如: INCLUDES( PRIORVALUE(multiselect_picklist_field),text_literal ) |
ISBLANK
描述: |
|
使用: |
|
示例: |
(IF(ISBLANK(Maint_Amount__c), 0, 1) + IF(ISBLANK(Services_Amount__c), 0,1) + IF(ISBLANK(Discount_Percent__c), 0, 1) + IF(ISBLANK(Amount), 0, 1) + IF(ISBLANK(Timeline__c), 0, 1)) / 5 此公式可提取一组字段,并计算人员所用的百分比。此公式字段检查五个字段以查看它们是否为空。如果为空,则该字段计数为 0。对于任何包含一个值的字段计数“1”,且该总和除以五(计算的字段数)。当显示“高级公式”子选项卡时,此公式需要您选中“空白字段处理”下面的将空白字段视为空白选项。 |
技巧提示: |
在新公式中使用 ISBLANK 替代 ISNULL。ISBLANK 与 ISNULL 功能相同,但还支持文本字段。Salesforce 将继续支持 ISNULL,您不需要更改任何现有公式。 如果字段包含字符、空白或零,则则字段不为空。例如,如果字段包含使用空格键插入的空格,则该字段不为空。 如果字段没有值,则使用 BLANKVALUE 函数返回指定字符串;如果您只想检查字段是否有值,则使用 ISBLANK 函数。 如果您对数值字段使用该函数,则字段没有值且未配置将空白字段处理为零时,该函数只返回 TRUE。 如果您通过选项列表使用此函数,则使用 ISBLANK(TEXT(<picklist>)),以将选项列表项目转换为文本值。 |
ISCHANGED
描述: |
将字段的值与上一个值相比较,如果二者不相等,则该函数返回 TRUE(真)。如果二者相等,则该函数返回 FALSE(假)。 |
使用: |
|
验证规则示例: |
下面的验证规则可禁止用户更改已经创建的目标名称:ISCHANGED(Name)。 NOT(AND( ISCHANGED( Priority ), ISPICKVAL( Priority , "Low") ) ) 验证规则可确保,如果用户更改了个案的 Priority(优先级),更改后的新优先级不能为“Low”(低)。 NOT(AND(ISCHANGED(CloseDate),OR(MONTH(CloseDate)<> MONTH(TODAY()),YEAR(CloseDate) <> YEAR(TODAY())),$Profile.Name <> "Sales Manager")) 为验证规则,可禁止用户将业务机会的结束日期更改为当前月份和年份以外的日期,除非该用户具有“销售管理员”简档。 备注:只有在 Enterprise、Unlimited、Performance 和 Developer Edition 中才能使用 $Profile 合并字段。 |
技巧提示: |
分配规则 验证规则 字段更新 工作流规则(如果评估条件设置为当记录为以下各项时评估规则:创建以及每次编辑。 用于在进程构建器中执行操作的公式条件。 使用 NOT 函数可以将返回值(TRUE(真)和 FALSE(假))反向。 在计算新建的记录上的任何字段时,此函数返回 FALSE(假)。 如果某文本字段以前为空,当该字段包含有值时,此函数返回 TRUE(真)。 对于数字、百分比或货币字段,在以下情况下,此函数返回 TRUE(真): 该字段以前为空,且现在包含有值 该字段以前为零,而现在为空 该字段以前为零,且现在包含其他任意值 |
ISCLONE
描述: |
|
使用: |
|
验证规则示例: |
使用 (ISCLONE(),以在对象上创建验证规则,并查找其他记录复制的记录。 |
技巧提示: |
此函数不得与字段连用。 使用 NOT 函数可以将返回值(TRUE(真)和 FALSE(假))反向。 |
ISNEW
ISNULL
重要:在新公式中使用 ISBLANK 替代 ISNULL。ISBLANK 与 ISNULL 功能相同,但还支持文本字段。Salesforce 将继续支持 ISNULL,您不需要更改任何现有公式。
ISNUMBER
ISPICKVAL
描述: |
|
使用: |
ISPICKVAL(picklist_field, text_literal),用选项列表的合并字段名替换 picklist_field(选项列表字段),用以引号括起的选项列表值替换 text_literal(文字表示值)。文字表示值不能是一个合并字段或一个函数的结果。 |
示例: |
合同启用 IF(ISPICKVAL( Status , "Activated"), NOW()-ActivatedDate, null) 计算自合同被启用以来的天数。如果合同状态不是“Activated”,则此字段为空。 佣金金额 IF(ISPICKVAL(StageName, "Closed Won"), ROUND(Amount *0.02, 2), 0) 本示例计算处于“Closed Won”(已结束并赢得客户)阶段的任何业务机会的佣金金额。该字段的值将是任何已结束/赢得客户的业务机会的金额乘以 0.02。对于未处理或已丢失的业务机会,佣金值为零。 竞争对手触发的工作流 ISPICKVAL(Stage, “Closed Lost”) && INCLUDES(Competitor__c, “Acme”) 在工作流规则或进程中,如果在已失去的业务上的竞争对手多选选项列表字段是 Acme,此公式配置 Salesforce 触发相关联的操作。 |
技巧提示: |
用属于选项列表类型的自定义或标准字段替换 picklist_field。 您的文字表示值表达式必须属于文本类型,而且应当放在引号内。它不能是一个合并字段或函数的结果。 使用 CASE 函数可以确定选项列表值是否等于特定的值。 在使用 ISPICKVAL 函数返回选项列表字段以前的值时,请在 ISPICKVAL 函数内部包括 PRIORVALUE 函数,如下面的示例所示: ISPICKVAL(PRIORVALUE (picklist_field), text_literal) |