Sql 编辑参数字段是否为非值的水晶报告?

Sql 编辑参数字段是否为非值的水晶报告?,sql,crystal-reports,crystal-reports-10,Sql,Crystal Reports,Crystal Reports 10,在Crystal Reports中,我想添加一个WHERE字段date,以从我的报告中的数据库中筛选出具有NULL值的日期 我在后台使用一个遗留的FoxPro数据库,它从我的报告中生成一个SQL语句,但似乎没有在生成的语句中添加WHERE子句 当直接访问FoxPro后端时,psudo空值的日期为1899-12-30,但当通过Crystal从FoxPro中提取日期时,它们显示为12/30/99(可能与刚刚以MM/DD/YY格式显示的日期相同) 我注意到报告中有一个现有的参数字段,提示用户将原始查询

在Crystal Reports中,我想添加一个
WHERE字段date
,以从我的报告中的数据库中筛选出具有
NULL
值的日期

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

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

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

离散的

  • 接受单个和离散值
范围

  • 接受上下限值以选择此范围内的所有内容
离散和范围

  • 以上两者的结合

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

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

// 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}
//删除实际空值
AND Not(Isnull({table.date_field}))
//删除旧日期
和{table.field}日期(1899,12,30)
//删除不在选择参数值中的日期
和{@date_参数}中的{table.field}

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

所以我需要做的是:

  • 在报告中选择要筛选的字段(在
    详细信息部分)
  • 单击
    专家
    工具栏上的
    选择专家
    按钮
  • 选择专家
    对话框中,字段名称应显示在选项卡中
  • 在下面,您可以选择用于筛选记录的
    WHERE
    标准

  • 数据是否将显示在表中?如果是这样的话,我相信你可以做一个过滤器,在其中显示与此匹配的行。是的,它将显示在一个表中的详细信息,这就是你的意思吗?如果你想做的只是排除空日期,你会想使用选择专家而不是参数。参数用于为最终用户提供可供选择的选项,选择专家是源数据的过滤器。它有很多选择,包括编写一个自定义公式来过滤数据。您需要在报表的选择公式中添加类似于
    {table.field}date(1899,12,30)
    的内容。是的。如果我对Crystal记忆犹新,您应该能够通过右键单击表或分组并在实际细节上添加可见性设置或过滤器来打开表的属性。很抱歉,没有提供详细信息,我面前没有水晶的副本,无法向您提供更多详细信息。然而,鲍勃所说的也应该起作用。记录选择公式在哪里?在边栏上?在公式下?如何判断哪个是记录选择公式?在
    fieldexplorer->fields->Database fields->p_active
    中的一个字段旁边实际上有一个绿色的复选标记,当我查看Crystal Reports生成的SQL语句时,它有一个NOT条件。我如何访问它?