Crystal reports 在crystal报告中,如何使默认值显示在空值上?

Crystal reports 在crystal报告中,如何使默认值显示在空值上?,crystal-reports,null,formula,Crystal Reports,Null,Formula,我用的是VS2010,但我不确定水晶报告上是哪一年。2008年还是2010年?我想在日期字段为空时显示“不适用”。这是我的公式 If isnull({usp_print_get;1.Cit_Date}) then 'its null' else 'not null' 当有日期时,它会打印“not null”,但如果没有日期,它会将空格留空,而不是打印“its null”。我检查了数据库,该记录的日期字段确实为null,而不是空格或空字符串。感谢您的帮助。最后,我想打印空的“N/A”或实际的

我用的是VS2010,但我不确定水晶报告上是哪一年。2008年还是2010年?我想在日期字段为空时显示“不适用”。这是我的公式

  If isnull({usp_print_get;1.Cit_Date}) then 'its null' else 'not null'

当有日期时,它会打印“not null”,但如果没有日期,它会将空格留空,而不是打印“its null”。我检查了数据库,该记录的日期字段确实为null,而不是空格或空字符串。感谢您的帮助。最后,我想打印空的“N/A”或实际的Cit_日期。现在我只是用字符串来测试。

看看你的公式,它应该可以工作,只是语法很奇怪。使用双引号而不是单引号

IF isnull({usp_print_get;1.Cit_Date}) THEN 
  "N/A"
ELSE
  " "
但是,如果要将日期与此公式一起使用,则必须将其转换为字符串。输出必须是相同的数据类型,这会弄乱格式化选项

IF isnull({usp_print_get;1.Cit_Date}) THEN 
  "N/A"
ELSE
  TO_TEXT({usp_print_get;1.Cit_Date}, "MM-dd-yyyy")
以您想要的方式格式化日期

如果正在调试,请将其与公式和日期列并排放在报告中。

更容易检查它是否有效。

看看你的公式,它应该有效,只是语法有点奇怪。使用双引号而不是单引号

IF isnull({usp_print_get;1.Cit_Date}) THEN 
  "N/A"
ELSE
  " "
但是,如果要将日期与此公式一起使用,则必须将其转换为字符串。输出必须是相同的数据类型,这会弄乱格式化选项

IF isnull({usp_print_get;1.Cit_Date}) THEN 
  "N/A"
ELSE
  TO_TEXT({usp_print_get;1.Cit_Date}, "MM-dd-yyyy")
以您想要的方式格式化日期

如果正在调试,请将其与公式和日期列并排放在报告中。

更容易检查它是否工作。

您使用的是SQL命令还是表?usp\u print\u get是一个从SQL Server获取打印信息的存储过程您使用的是SQL命令还是表?usp\u print\u get是一个从SQL Server获取打印信息的存储过程日期实际上是以字符串而不是日期类型输入的,对不起,我没那么说。我在字段的显示字符串公式中有公式,它应该放在那里吗?我尝试将公式放在显示字符串中的空列上,但它不起作用。空值真的会把你的报告搞得一团糟,所以我建议你把它放在一个公式里。显示字符串公式实际上是用来设置列格式的。Crystal甚至没有对空列进行求值,这并不奇怪@ca_wan有一个正确的想法:这个逻辑需要进入它自己的公式。日期实际上是作为字符串而不是日期类型输入的,对不起,我没有这么说。我在字段的显示字符串公式中有公式,它应该放在那里吗?我尝试将公式放在显示字符串中的空列上,但它不起作用。空值真的会把你的报告搞得一团糟,所以我建议你把它放在一个公式里。显示字符串公式实际上是用来设置列格式的。Crystal甚至没有对空列进行求值,这并不奇怪@曹万有一个正确的想法:这种逻辑需要进入它自己的公式。