2

我想编写一个简单的计算来返回基于字段层次结构的值。

如果第一个字段为空,我希望它返回第二个,如果第二个为空,则返回第三个。我尝试了以下方法,但它只返回第一个值。

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))

我可以使用哪个?这显然是行不通的,因为函数中的参数太多了。

任何帮助将不胜感激!:-)

4

2 回答 2

4

你需要嵌套你的 calc 多一点:

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

在您的示例中,您有IsEmpty (Field1 = 1)which will test Field1=1,它是 True 或 False,但永远不会为空。而 the&是一个连接运算符,如果你想要逻辑然后使用它and

于 2010-01-15T01:13:09.777 回答
0

您可以以更透明的方式重写它:

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

(这在将来会更容易维护/阅读)

于 2012-11-06T12:38:41.800 回答