创建具有各种字段的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}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...