我正在与Crystal Reports 2016一起工作。我有一个带有select case
语句的公式,我希望其中一个案例检查null
;我的数据有4个条件,其中一个是null
。但是,要彻底,我也想检查一个空字符串""
。我尝试在最后留下一个Catchall语句,但这并未检测到null
。我已经尝试了isNull
和is isNull
,并遇到了错误的数据类型(预期数字)或我需要一个比较操作员。
这是我要做的:
select ({CRV_RoomAttributeValues.ScaledAnalogValue})
case IsNull: "No Connection"
case 0: "Offline"
case 1: "Partially Online"
case 2: "Online"
default: "No connection";
这是我现在拥有的代码:
select ({CRV_RoomAttributeValues.ScaledAnalogValue})
case is IsNull({CRV_RoomAttributeValues.ScaledAnalogValue}): "No Connection"
case 0: "Offline"
case 1: "Partially Online"
case 2: "Online"
default: "No connection";
我在网上看到几个人建议对null
进行测试,因为Crystal Reports的特质。
在案例语句中如何测试null
?
select
语句执行直接比较,因此每个案例语句的值必须始终与您的选择变量/字段相同的数据类型。IsNull
是boolean
,因此,只有当您的{CRV_RoomAttributeValues.ScaledAnalogValue}
是boolean
类型的情况下,您要做的事情才能起作用。我认为最简单的方法(有很多方法,但是我认为它们都很奇怪,所以我不会在这里包括它们)实现您的目标是在此类似的时候明确进行null
值检查:
If(Isnull({CRV_RoomAttributeValues.ScaledAnalogValue})) Then
"No Connection"
Else
Select {CRV_RoomAttributeValues.ScaledAnalogValue}
case 0: "Offline"
case 1: "Partially Online"
case 2: "Online"
default: "No connection";
在水晶语法中
我在以下操作:
select ({CRV_RoomAttributeValues.ScaledAnalogValue})
case 0: "Offline"
case 1: "Partially Online"
case 2: "Online"
default: "No connection";