Crystal reports 创建包含各种字段的crystal reports公式,这些字段可以包含空值

Crystal reports 创建包含各种字段的crystal reports公式,这些字段可以包含空值,crystal-reports,report,formula,Crystal Reports,Report,Formula,我想创建一个包含各种数据库字段的地址字段。但是,当其中一个值为NULL时,该NULL值之后的字段将不再显示 例如,在我的公式中,字段块为空。因此,Country字段中的值不再显示。如何确保显示的所有字段中都显示空值 IF ISNULL({Header.StreetS}) OR {Header.StreetS} = "" THEN "" ELSE {Header.StreetS} & CHR(13) & IF ISNULL({Header

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

例如,在我的公式中,字段块为空。因此,Country字段中的值不再显示。如何确保显示的所有字段中都显示空值

  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}

这是一件我见过很多次的令人讨厌的事情

问题是不能在同一
IF
-子句中计算
ISNULL({Column})
{Column}=”“

因为即使
ISNULL
已返回
True
,也将对
{Column}=”“
进行求值

这应该起作用:

  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}

这是我见过很多次的令人讨厌的事情

问题是不能在同一
IF
-子句中计算
ISNULL({Column})
{Column}=”“

因为即使
ISNULL
已返回
True
,也将对
{Column}=”“
进行求值

这应该起作用:

  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}