Использование функции IsEmpty в расчете FileMaker Pro (v9) с несколькими полями - PullRequest
2 голосов
/ 15 января 2010

Я хочу написать простое вычисление для возврата значения, основанного на иерархии полей.

Если первое поле пустое, я хочу, чтобы оно возвращало второе, а если второе пустое, третье. Я пробовал следующее, но он возвращает только первое значение.

If (IsEmpty (Field1 = 1) ; Field2;
If (IsEmpty (Field2 = 1); Field3; Field1))

Мне удалось отобразить первое или третье значение с помощью:

If (IsEmpty (Field1) &
If (IsEmpty (Field2); Field3; Field1))

Но, конечно, это вообще не показывает Field2.

Есть ли что-то вроде:

If (IsEmpty (Field1) &
If (IsEmpty (Field2); Field3; Field1, Field2))

который я могу использовать? Это, очевидно, не работает, потому что в функции слишком много параметров.

Любая помощь будет принята с благодарностью! : -)

Ответы [ 2 ]

4 голосов
/ 15 января 2010

Вам нужно больше вложить свой кальций:

Case ( 
IsEmpty ( Field1 & Field2 ) ; Field3 ;
IsEmpty ( Field1 ) ; Field2 ;
Field1
)

В ваших примерах у вас был IsEmpty (Field1 = 1), который будет проверять Field1=1, который является либо Истинным, либо Ложным, но никогда не пустым. И & является оператором конкатенации, если вы хотите логически, а затем вместо него используйте and.

0 голосов
/ 06 ноября 2012

Вы можете переписать это более прозрачным способом:

Case(
    not isEmpty(Field1); Field1;
    not isEmpty(Field2); Field2;
    Field3
)

(это будет намного легче поддерживать / читать в будущем)

...