【发布时间】:2013-03-14 21:18:50
【问题描述】:
在 Crystal Reports 中,我想添加一个 WHERE field <> date 以在我的报表中从我的数据库中过滤掉具有 NULL 值的日期。
我在后端使用的是旧版 FoxPro 数据库,它从我的报告中生成一条 SQL 语句,但似乎没有在生成的语句中添加 WHERE 子句。
当直接访问 FoxPro 后端时,具有 psudo-NULL 值的日期的日期为 1899-12-30,但是当它们通过 Crystal 从 FoxPro 中拉出时,它们显示为 12/30/99(这可能与刚刚显示在 @ 中的日期相同) 987654326@ 格式)。
我注意到报告有一个现有的参数字段,提示用户将原始查询过滤到特定日期范围。我尝试在参数字段之外添加自己的,但发现我需要的 WHERE field <> date 不是可用选项,因为主要只有 3 种类型的字段参数:
离散
- 接受单个和离散值。
远程
- 接受一个下限值和一个上限值以选择此范围内的所有内容。
离散和远程
- 以上两者的结合
这些似乎都不能使用WHERE NOT 类型的子句过滤查询结果,是否有其他方法可以做到这一点?
【问题讨论】:
-
数据会显示在表格中吗?如果是这样,我相信您可以对显示的行进行过滤以匹配此内容。
-
是的,它会在详细信息中显示在表格中,是这个意思吗?
-
如果您只想排除 NULL 日期,您需要使用选择专家而不是参数。一个参数用于为最终用户提供可供选择的选项,而选择专家是对源数据的过滤器。它有很多选项,包括编写自定义公式来过滤数据。
-
@EvilBob22 所说的。您需要在报告的选择公式中添加
{table.field} <> date(1899,12,30)之类的内容。 -
是的。如果我对 Crystal 的记忆对我有用,您应该能够通过右键单击表格或分组并在实际细节上添加可见性设置或过滤器来打开表格的属性。抱歉,缺乏细节,我面前没有水晶副本,无法为您提供更多详细信息。不过,EvilBob 说的也应该管用。
标签: sql crystal-reports crystal-reports-10