控制语句

 条件执行 - If、else if、else

Deluge 中的‘If’结构与其他语言中的结构相同。它根据布尔表达式的值有条件地执行一组语句。

 语法

if(<if-boolean-expression>)
{
<statements>
}
else if(<elseif-boolean-expression-1>)
{
<statements-1>
}
else if(<elseif-boolean-expression-2>)
{
<statements-2>
}
..
..
..
..
else if(<elseif-boolean-expression-n>)
{
<statements-n>
}
else
{
<statements>
}

If 结构应遵循以下规则:

  • 它应有一个‘If’条件
  • 它可以有零个或多个‘else if’条件
  • 它可以有可选的‘else’部分

当在脚本执行过程中遇到 <If Construct> 时,评估 <if-boolean_expression> 指定的条件。如果符合条件,则执行 <if statements> 块中的语句,但如果条件不符合,那么程序流会跳过 <if statements> 块中的语句,并搜索任何 elseelse if 关键词。

当遇到 else if 部分时,评估 <boolean_expression-x> 指定的条件,如果条件评估为 true,则会执行 <elseif statements-x> 块中的语句。如果 <if condition> 和所有 <else if conditions> 失败,则会搜索是否存在 <else>,并执行 <else statements> 块中的语句。

 示例 - 自由流程脚本

1.让我们先拿一个简单的 if 条件做例子。我们有一个表单包含三个字段:Field_1(数字字段类型)、Field_2(数字字段类型)和 Field_3(小数字段类型)。如果 Field_1 和 Field_2 不为空,则 Field_3 应按 ((Field_1*Field_2)/12) 来求值。为达到这个目的,您可以将以下代码添加到所需的表单动作块:

if(input.Field_1 != null && input.Field_2 != null)
{
input.Field_3 == ((input.Field_1 * input.Field_2 ) / 12))
}

2.让我们再举一个招聘应用程序的例子。添加到 New_Applicant 表单的表单动作 -> 添加时 -> 成功时的 Deluge 代码如下所示:

opening = New_Opening [Position_Name == input.Applied_For];
if (opening.Status == "Closed")
{
sendmail
(
To : input.Email_ID
From : zoho.adminuserid
Subject : "Reg application for job posted at recruitment.zohocreator.com"
Message : "The job profile " + input.Applied_For + " for which you have applied
is not currently open "
)
}
else if (opening.Experience == input.Experience)
{
sendmail
(
To : "manager-recruitment@adventnet.com"
From : zoho.adminuserid
Subject : "Applicants resume matches job profile"
Message : input.Applicant_Name + " matches the job profile<br> Contact Info: " +
input.Email_ID
)
}
else
{
sendmail
(
To : input.Email_ID
From : zoho.adminuserid
Subject : "Reg application for job posted at recruitment.zohocreator.com"
Message : "The experience required for the job profile " + input.Applied_For +
"does not match yours"
)
}
 

.

代码说明:

  • 在“成功时”块中,我们先从 New_Opening 表单提取其 Position_Name 与所申请职位匹配的记录。
  • 如果职位的状态为“已关闭”,则执行 if 块中的语句。
  • 如果职位经验与指定的经验相同,则执行 else if 块中的语句。
  • 如果上述两个条件都不满足,则执行 else 块中的语句。

 条件 IF 语句

如果 boolean-expression 为 TRUE,则返回 expression1;否则返回 expression2

<variable> = IF( <boolean-expression>, <expression1>, <expression2>)

示例:

str = IF( input.text=="test", "test-new", " ");

 使用条件 IF 语句进行 Null 检查

对于 NULL 检查,条件 IF 的简化版本如下。如果 expression1 不为空,IFNULL() 返回 expression1 ;否则返回 expression2

<variable> = IFNULL( <expression1>, <expression2>)

示例:

下面的公式表达式可用于检查数值字段是否为空值。如果数值字段的值为空值,则指定 0 值,否则会指定数字字段的值。

(ifnull(input.number_field,0))

 公式字段中的条件表达式

请参阅此帮助主题,了解有关在公式字段中使用条件表达式的更多信息。

 相关链接