IsNull Crystal Reports的麻烦

时间:2012-05-23 15:10:37

标签: crystal-reports crystal-reports-12

我正在使用Crystal Reports 12.3和Peachtree Accounting 2012来管理某些数据库。我现在的任务就是制作一份报告,其中包含过去30天内未下订单的客户。我是新手,所以我请你帮忙。

我的第一次尝试是使用这个公式(我在公式编辑器中执行所有操作 - >记录选择):

not ({Customers.LastInvoiceDate} in Aged0To30Days)

除了null值之外,一切似乎都很好。我需要在包含空值的报告记录中包含。所以我将公式重写为:

not ({Customers.LastInvoiceDate} in Aged0To30Days) OR IsNull({Customers.LastInvoiceDate})

但是在Peachtree Accounting 2012中,我看到一个客户的空白LastInvoiceDate字段不在报告中。

我的上一个公式中是否有某种错误?或者DateTime类型是否有一些“其他”黑色值?

2 个答案:

答案 0 :(得分:4)

您应该首先检查空值,因此请尝试将第二个公式转换为

isnull({Customers.LastInvoiceDate}) or not({Customers.LastInvoiceDate} in Aged0To30Days)

如果Crystal遇到null并且没有先显式处理,那么公式的其余部分将废弃而不进行评估。解决这个问题的另一种方法是告诉Crystal在Formula Workshop中使用'Nulls的默认值'而不是'Nulls的例外'(这是Formula Workshop工具栏中的下拉设置)。

答案 1 :(得分:1)

length(trim({Customers.LastInvoiceDate}))= 0

一个不需要isnull函数和OR运算符的语句。