本示例展示编写可以下推到数据库服务器的记录选定公式的好处。
在 Xtreme 示例数据库的订单表中,有 2192 条记录,其中订单日期在 2001 年以前的有 181 条。假设您只想对这些记录制表。一方面,可以使用下面的记录选定公式:
Year ({订单.订单日期}) < 2001
生成的 SQL 查询会将 2192 条记录全部发送至 Crystal Reports,然后记录选定公式将其减少到 181。要了解这一点,单击“数据库”菜单上的“显示 SQL 查询”,您会注意到 SQL 查询没有 WHERE 子句。这是因为 Crystal Reports 无法下推 WHERE 子句中的 Year ( ) 函数。
另一方面,下面的记录选定公式生成相同的报表:
{订单.订单日期} < #Jan 1, 1997#
上面的第二条公式可在数据库服务器上执行,因此可以下推。所生成的 SQL 查询仅将 181 条记录发送到 Crystal Reports。因此,在由 Crystal Reports 对记录选定公式求值时,无须进一步消除记录。单击“数据库”菜单上的“显示 SQL 查询”,您会注意到所生成的 SQL 查询中有 WHERE 子句。
如本示例所示,在改进记录选定公式后,报表的处理速度提高了。在本例中,两个公式生成相同的报表,但第二个公式利用了数据库服务器在处理其数据时可以使用的功能和优化。
提示: 请参阅题为“记录选定性能提示”一节,了解其他有关信息和设置记录选定请求时的限制。
若要了解更多有关编写高效的记录选定公式的信息,务请阅读本节的其余部分:使用增强的记录选定公式。
注意: 如果您不熟悉记录选定公式,可以先从“选择专家”或记录选定公式示例模板开始学起。有关更多细节以及对记录选定的介绍,请参阅选择记录。