Crystal reports IsNull Crystal报告的问题

Crystal reports IsNull Crystal报告的问题,crystal-reports,crystal-reports-12,Crystal Reports,Crystal Reports 12,我正在使用Crystal Reports 12.3和Peachtree Accounting 2012来管理一些数据库。我现在的任务只是制作一份报告,其中包含过去30天内未下订单的客户。我是新手,所以我请求你的帮助 我的第一次尝试是使用这个公式(我在公式编辑器->记录选择中完成所有工作): 不({Customers.LastInvoiceDate}在0到30天内) 除了空值之外,一切似乎都很好。我需要在报告中包含具有空值的记录。因此,我将公式改写为: not({Customers.LastInv

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

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

不({Customers.LastInvoiceDate}在0到30天内)

除了空值之外,一切似乎都很好。我需要在报告中包含具有空值的记录。因此,我将公式改写为:

not({Customers.LastInvoiceDate}在0到30天内)或IsNull({Customers.LastInvoiceDate})

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


我上一个配方中有什么缺陷吗?或者DateTime类型是否有一些“其他”黑色值?

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

0到30天内为空({Customers.LastInvoiceDate})或不为空({Customers.LastInvoiceDate})


如果Crystal遇到空值,并且没有首先显式处理它,那么公式的其余部分将废弃并不计算。另一种解决方法是告诉Crystal在Formula Workshop中使用“Null的默认值”而不是“Null的例外情况”(这是Formula Workshop工具栏中的下拉设置)。

您应该始终首先检查Null,因此尝试将第二个公式反转为空

0到30天内为空({Customers.LastInvoiceDate})或不为空({Customers.LastInvoiceDate})

如果Crystal遇到空值,并且没有首先显式处理它,那么公式的其余部分将废弃并不计算。另一种解决方法是告诉Crystal在Formula Workshop中使用“Null的默认值”而不是“Null的例外情况”(这是Formula Workshop工具栏中的下拉设置)。

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

一条不需要isnull函数和或运算符的语句。

长度(trim({Customers.LastInvoiceDate}))=0


一条不需要isnull函数和或运算符的语句。

如果您对SQL比CRs更熟悉,我只需在那里编写查询,然后将其粘贴到CR中,那么您就可以轻松处理NULL如果您对SQL比CRs更熟悉,我只需在那里编写查询,然后将其粘贴到CR中,然后您可以轻松地处理空值如果数据源提供空值的默认值,则公式通常应检查空占位符
{customers.LastInvoiceDate}=Date(0,0,0)
。在这种情况下,可能没有必要这样做,因为年龄从0到30天的
日期(0,0,0)应该为false。请先检查空值!谢谢你,我不会猜到的。(我在默认值和null异常之间进行了更改,但这没有帮助。)如果数据源提供null的默认值,则公式通常应检查null占位符
{customers.LastInvoiceDate}=Date(0,0,0)
。在这种情况下,可能没有必要这样做,因为年龄从0到30天的
日期(0,0,0)应该为false。请先检查空值!谢谢你,我不会猜到的。(我在默认值和Null的异常之间进行了更改,但这没有帮助。)