编辑参数字段Crystal报告是否为NOT值?

时间:2013-03-12 18:10:00

标签: sql crystal-reports crystal-reports-10

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

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

当直接访问FoxPro后端时,带有psudo-NULL值的日期的日期为1899-12-30,但是当它们从FoxPro通过Crystal拉出时,它们显示为12/30/99(这可能是同一天只以MM/DD/YY格式显示。

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

离散

  • 接受单个和离散值。

远程

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

离散且远程

  • 上述两者的组合

这些似乎都不能使用WHERE NOT类型的子句过滤查询结果,是否有其他方法可以做到这一点?

2 个答案:

答案 0 :(得分: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}

答案 1 :(得分:0)

我真正需要做的就是在SQL语句的WHERE子句中添加一些标准,在SQL客户端中很简单,但是当你在Crystal Reports v10中这样做时,它有点难以找到,除非你知道你在找什么......

所以我需要做的是:

  1. 在报告中(Details部分)
  2. 中选择要过滤的字段
  3. 点击Select Expert工具栏上的Experts The select Expert Button in the Experts toolbar按钮。
  4. Select Expert对话框中,字段名称应显示在标签中。
  5. 您可以在下面选择用于过滤记录的WHERE条件。