2015-05-25 1 views
0

мне нужно что-то похожее на следующий сценарий (это было бы идеально идти в 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 делают не должны быть заполнены в

Если поля 5 не является пустым, то поля 6 должен быть заполнен «Да» или «нет»

Если поля 6 «Да», то поля 7 не должны быть заполнены в

Если Textfield6 «Нет», то TextField7 необходимо заполнить в

Пожалуйста, дайте мне знать, где мой скрипт поступил не так! Благодаря!

ответ

0

Во-первых, из того, что я вижу, это не вложенный оператор IF, это целая команда и/или. Конечно, такой код не является предпочтительным, так что сначала попробуйте разделить ваши условия на что-то вроде этого:

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

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

См, делать вложенный IF заявление означает, что для каждой команды, есть другие варианты, чтобы сделать.

Для условий, если этот язык JAVA, то вам нужно использовать ActionListener

Для того, чтобы написать ваши команды в, это означает, что если, например, ваше текстовое поле 6 «нет», то с помощью ActionListener вы будете писать код команды, которые нуждаются в полях 7 для заполнения.

+0

Если я выполняю вложенные выражения IF (согласно вашему примеру), создаст ли он эффект «и»? Например, если (this) И если (this) истинно, тогда this.rawValue будет установлен на «Complete». Например, я хочу, чтобы эти два оператора if были «или»: 'code' if (TableSubform.Table.Row1.TextField5.rawValue == null && TableSubform.Table.Row1.TextField6.rawValue == null && TableSubform.Table. Row1.TextField7.rawValue == null) } if (TableSubform.Table.Row1.TextField5.rawValue! == null && TableSubform.Table.Row1.TextField6.rawValue == "Да" && TableSubform.Table.Row1.TextField7 ,rawValue == null) – hy9fesh

+0

@ hy9fesh Вы можете делать вложенные, если для ваших операторов «AND», но для «ИЛИ» вам нужно сделать это в одной строке, как вы писали. – AMH9

+0

Спасибо за ваш ответ! Поэтому я бы делал что-то вроде этого: 'if ((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 == "Да" && TableSubform.Table.Row1.TextField7.rawValue == null)) ' – hy9fesh

0

Если поля-пусто, то поля 6 и поле-не должны быть заполнено. Если поля-не является пустым, то поля 6 должны быть заполнены «Да »или« Нет ». Если TextField6« Да », то TextField7 не нужно заполнять. Если Textfield6« Нет », то TextFie ld7 необходимо заполнить.

Основываясь на вашем описании, я бы сделал набор утверждений, которые выглядят следующим образом.

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"; 
    } 
} 

Но на самом деле, есть только одно условия, где вы можете иметь неполную форму (кажется): поля 5 заполняются, поля 6 «Нет», и поле 7 пусто. Таким образом, вы можете сконденсировать это вниз в одно утверждение и отметить все остальное.

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

Я также могу иметь неполную форму, если TextField5 заполнен, а TextField6 не заполнен. Тем не менее, я смогу выполнить 'if ((! TextField5.isNull && TextField6.rawValue ==" Нет "&& TextField7.isNull) || (! TextField5.isNull && TextField6.isNull)) this.rawValue =" Not Полный "; else this.rawValue = «Complete»; ' – hy9fesh

+0

Да, это будет часть, которую я пропустил, и должен дать вам рабочий код. – jasotastic

+0

Большое вам спасибо за ваш ответ! Итак, если у меня было две строки, это было бы: 'if ((!! Row1.TextField5.isNull && Row1.TextField6.rawValue ==" Нет "&& Row1.TextField7.isNull) || (! Row1.TextField5.isNull && Row1 .TextField6.isNull)) {if ((! Row2.TextField5.isNull && Row2.TextField6.rawValue == "Нет" && Row2.TextField7.isNull) || (! Row2.TextField5.isNull && Row2.TextField6.isNull)) this.rawValue = "Not Complete"; else this.rawValue = "Complete"; ' – hy9fesh