0

在 Crystal Reports 中,我想添加一个以在我的报表中过滤掉我的数据库中 WHERE field <> date具有值的日期。NULL

我在后端使用了一个旧的 FoxPro 数据库,它从我的报告中生成一条 SQL 语句,但似乎没有向WHERE生成的语句添加子句。

直接访问 FoxPro 后端时,具有 psudo-NULL 值的日期的日期为1899-12-30,但是当它们通过 Crystal 从 FoxPro 中提取时,它们显示为12/30/99(这可能与MM/DD/YY格式中显示的日期相同)。

我注意到该报告有一个现有的参数字段,提示用户将原始查询过滤到特定日期范围。除了参数字段之外,我尝试添加自己的,但发现我需要WHERE field <> date的不是可用选项,因为主要只有 3 种类型的字段参数:

离散的

  • 接受单个和离散值。

远程

  • 接受一个较低和较高的值以选择此范围内的所有内容。

离散和范围

  • 以上两者的结合

这些似乎都无法使用一种WHERE NOT子句过滤查询结果,还有其他方法可以做到这一点吗?

4

2 回答 2

1

将此添加到您的记录选择公式中:

// remove actual nulls
AND Not(Isnull({table.date_field})) 
// remove old dates 
AND {table.field} <> date(1899,12,30) 
// remove dates not in select parameter value
AND {table.field} IN {@date_parameter}
于 2013-03-12T20:21:01.360 回答
0

我真正需要做的就是WHERE在 SQL 语句的子句中添加一些条件,在 SQL 客户端中很简单,但是当您在 Crystal Reports v10 中执行此操作时,它有点难以找到,除非您知道您在寻找什么为了...

所以我需要做的是:

  1. 在报告中选择要过滤的字段(在该Details部分中)
  2. 单击工具栏Select Expert 专家工具栏中的选择专家按钮 上的Experts按钮。
  3. Select Expert对话框中,您的字段名称应出现在选项卡中。
  4. 您可以在下面选择WHERE用于过滤记录的条件。
于 2013-03-14T13:18:50.420 回答