创建具有各种字段的Crystal Reports公式,这些字段可以包含NULL值

问题描述

我想创建一个包含各种数据库字段的地址字段。但是,当这些值之一为NULL时,该NULL值之后的字段将不再显示。

例如,在我的公式中,字段BlockS为NULL。因此,不再显示CountryS字段中的值。我该如何确保尽管有NULL值,但所有确实具有值的字段都会显示出来?

  IF ISNULL({Header.StreetS}) OR {Header.StreetS} = "" THEN "" ELSE {Header.StreetS} & CHR(13)
& IF ISNULL({Header.ZipCodeS}) OR {Header.ZipCodeS} = "" THEN "" ELSE {Header.ZipCodeS} & ' '
& IF ISNULL({Header.CityS}) OR {Header.CityS} = "" THEN "" ELSE {Header.CityS} & CHR(13)
& IF ISNULL({Header.BlockS}) OR {Header.BlockS} = "" THEN "" ELSE {Header.BlockS} & CHR(13)
& IF ISNULL({Header.CountryS}) OR {Header.CountryS} = "" THEN "" ELSE {Header.CountryS}

enter image description here

解决方法

我已经看过很多次了。

问题在于您无法在同一ISNULL({Column})条款中评估{Column} = ""IF
因为{Column} = ""将被评估,即使ISNULL已返回True

这应该有效:

  IF ISNULL({Header.StreetS}) THEN "" ELSE IF {Header.StreetS} = "" THEN "" ELSE {Header.StreetS} & CHR(13)
& IF ISNULL({Header.ZipCodeS}) THEN "" ELSE IF {Header.ZipCodeS} = "" THEN "" ELSE {Header.ZipCodeS} & ' '
& IF ISNULL({Header.CityS}) THEN "" ELSE IF {Header.CityS} = "" THEN "" ELSE {Header.CityS} & CHR(13)
& IF ISNULL({Header.BlockS}) THEN "" ELSE IF {Header.BlockS} = "" THEN "" ELSE {Header.BlockS} & CHR(13)
& IF ISNULL({Header.CountryS}) THEN "" ELSE IF {Header.CountryS} = "" THEN "" ELSE {Header.CountryS}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...