嵌套If多条件的语句

时间:2015-05-25 17:22:30

标签: livecycle

我需要类似于以下脚本的东西(理想情况下,这将进入LiveCycle"计算"事件字段):

if(Subform.TextField1.rawValue !== null && Subform.TextField2.rawValue !== null && Subform.TextField3.rawValue !== null &&

Subform.TextField4.rawValue !== null &&

((TableSubform.Table.Row1.TextField5.rawValue == null && (TableSubform.Table.Row1.TextField6.rawValue == null && (TableSubform.Table.Row1.TextField7.rawValue == null) ||

(TableSubform.Table.Row1.TextField5.rawValue !== null && (TableSubform.Table.Row1.TextField6.rawValue ==  "Yes" && (TableSubform.Table.Row1.TextField7.rawValue == null) ||

(TableSubform.Table.Row1.TextField5.rawValue !== null && (TableSubform.Table.Row1.TextField6.rawValue ==  "No" && (TableSubform.Table.Row1.TextField7.rawValue !== null)) &&

((TableSubform.Table.Row2.TextField5.rawValue == null && (TableSubform.Table.Row2.TextField6.rawValue == null && (TableSubform.Table.Row2.TextField7.rawValue == null) ||

(TableSubform.Table.Row2.TextField5.rawValue !== null && (TableSubform.Table.Row2.TextField6.rawValue ==  "Yes" && (TableSubform.Table.Row2.TextField7.rawValue == null) ||

(TableSubform.Table.Row2.TextField5.rawValue !== null && (TableSubform.Table.Row2.TextField6.rawValue ==  "No" && (TableSubform.Table.Row2.TextField7.rawValue !== null))

)

{

this.rawValue="Complete";

} else {

this.rawValue="Not complete"

基本上,我有一个表格,顶部有四个字段,需要填写。然后,我有一个三列表(第一行是标题),带有两行可填写的文本字段,其中包含以下规则,以便表单被视为完整:

如果TextField5为空,则不需要填写TextField6和Textfield7

如果TextField5不是空白,则需要使用"是"来填充TextField6。或"否"

如果TextField6是"是,"然后TextField7不需要填写

如果Textfield6是"否,"然后TextField7需要填写

请让我知道我的脚本出错了!谢谢!

2 个答案:

答案 0 :(得分:0)

首先,从我看到的这不是嵌套的IF语句,它是和/或的整个命令。当然这样的代码不是优选的,所以首先尝试将你的条件分成这样的:

if(Subform.TextField1.rawValue !== null && Subform.TextField2.rawValue !== null)

  {
   if(another condition)
  }
      if(another condition).....etc

参见,对每个命令执行嵌套的IF语句意味着还有其他选项可以做。

对于条件,如果此语言是JAVA,则需要使用ActionListener

为了编写命令,这意味着例如TextField6是" no",然后使用ActionListener,您将编写需要填写TextField7的命令代码。

答案 1 :(得分:0)

  

如果TextField5为空,则不需要TextField6和Textfield7   填写。如果TextField5不是空白,则需要使用"是"填写TextField6。或"否"。如果TextField6是"是,"然后TextField7不需要填写。如果Textfield6是"否,"然后需要填写TextField7。

根据你的描述,我会制作一组看起来像这样的语句。

if (TextField5.isNull) this.rawValue = "Complete";
else {
  if (TextField6.rawValue == "Yes") this.rawValue = "Complete";
  else {
    if (!TextField7.isNull) this.rawValue = "Complete";
    else this.rawValue = "Not Complete";
  }
}

但实际上,只有一种情况,你可以有一个不完整的形式(似乎):TextField5已填充,TextField6为" No",TextField7为空。因此,您可以将其浓缩为一个语句并标记其他任何完整的语句。

if (!TextField5.isNull && TextField6.rawValue == "No" && TextField7.isNull) this.rawValue = "Not Complete";
else this.rawValue = "Complete";