0

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

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

not ({Customers.LastInvoiceDate} in Aged0To30Days)

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

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

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

我的最后一个公式中是否存在某种错误?还是 DateTime 类型有一些“其他”黑色值?

4

2 回答 2

4

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

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

如果 Crystal 遇到 null 并且没有首先明确处理,那么公式的其余部分将出错并且不计算。解决此问题的另一种方法是告诉 Crystal 在公式工作室中使用“空值的默认值”而不是“空值的例外”(这是公式工作室工具栏中的下拉设置)。

于 2012-05-23T15:25:21.183 回答
1

长度(修剪({Customers.LastInvoiceDate}))= 0

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

于 2013-06-20T01:34:24.097 回答