编写高效记录选定公式的策略

原创 2003年11月21日 15:43:00

注意:    本节假定您熟悉“选择专家”,并正从 SQL 数据库制作报表。

创建记录选定公式时请考虑以下几点:

考虑 1
任何完全用“选择专家”生成、而不是自己编写的记录选定公式,都可以下推。

这种情况实际上的根据在于以下几点。但是,使用下面的提示可以编写的记录选定公式类型要比用“选择专家”编写的公式多。要做到这一点,您需要直接用公式工作室编辑记录选定公式,或者在单击“选择专家”中的“显示公式”时出现的文本区域内进行编辑。

若要打开公式工作室修改记录选定,单击“报表”菜单,指向“选定公式”,然后从子菜单中选择“记录”。

考虑 2
任何具有 DataBaseField SupportedOperator ConstantOrParameterExpression 形式的选定公式均可下推。

当然,DataBaseField 只是一个数据库字段。SupportedOperator 是 =、<>、<、<=、>、>=、StartsWith、Like 或 In 之中的任何一个。

ConstantOrParameterExpression 是涉及常量值、运算符、函数和参数字段的任何表达式。它不能包含变量、控制结构或参数字段以外的字段。根据其本身定义,常量表达式和参数表达式可以无须访问数据库而求得。

注意:    常量或参数表达式的求值结果可以是简单值、区域值、数组值或一个区域值数组。这类表达式的举例如下:

{?number parameter} - 3
Year ({?run date})
CurrentDate + 5
DateDiff ("q", CurrentDate, CDate("Jan 1, 1996"))
Month (Maximum ({?date range parameter}) + 15)
["Canada", "Mexico", "USA", {?enter a country}]
1000 To 5000
[5000 To 10000, 20000 To 30000, 50000 To 60000]

一个完整的示例:

{Orders.Order Date} >= CurrentDate - 3

该程序还可下推只包含布尔字段(不包含运算符和常量部分)的表达式。

{订单.已发货}
Not {订单.已发货}

考虑 3
IsNull (DataBaseField) 可以下推。

考虑 4
SqlExpression SupportedOperator ConstantOrParameterExpression 可以下推。

例如,如果 {@ExtendedPrice} = (数量 * 价格),则选定公式 {@ExtendedPrice} > 1000 不能下推。但是,如果用等价的 SQL 表达式代替 @ExtendedPrice,则该选定公式可以下推。

考虑 5
当使用遵循上述考虑因素编写的多个表达式时,将其用 AND 和 OR 分开,也可以使用 NOT。每种表达式可以有多个,并用括号确定优先级。例如:

{Orders.Order ID} < Minimum({?number range}) Or
{订单.订单金额} >= 1000
(IsNull({客户.地区}) Or
{客户.地区} = "BC") And
{客户.去年销售额} > 2000

相关主题
如果记录选定公式未作出预期的响应,请参阅记录选定公式疑难解答。

编写高效记录选定公式的策略

注意:    本节假定您熟悉“选择专家”,并正从 SQL 数据库制作报表。创建记录选定公式时请考虑以下几点:考虑 1任何完全用“选择专家”生成、而不是自己编写的记录选定公式,都可以下推。这种情况实际上...
  • BennyMavis
  • BennyMavis
  • 2004年11月08日 15:31
  • 1292

水晶报表编写高效记录选定公式的策略 -Crystal Reports

http://webloger.blog.hexun.com/7245706_d.html 水晶报表编写高效记录选定公式的策略 -Crystal Reports 注意:    本节假定您熟悉“选择...
  • os005
  • os005
  • 2012年08月11日 15:10
  • 1431

在水晶报表中筛选记录的三种解决方案……

目录:一、解决方案一:报表数据访问使用推模型二、解决方案二:记录选定公式运行时自定义三、解决方案三:将参数合并到记录选定公式----------------------------------解决方案...
  • BennyMavis
  • BennyMavis
  • 2004年11月08日 15:22
  • 1452

好书推荐 | 《PHP精粹:编写高效PHP代码》

本节书摘来自华章社区《PHP精粹:编写高效PHP代码》一书中的目录,作者:(美)  Davey Shafik,更多章节内容可以访问云栖社区“华章社区”公众号查看...
  • CS13522431352
  • CS13522431352
  • 2017年08月17日 14:09
  • 148

写高效的SQL语句

SQL优化总结 1,where的条件顺序影响查询速度 WHERE子句中的连接顺序: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之...
  • reggergdsg
  • reggergdsg
  • 2017年02月19日 17:49
  • 625

编写java高效代码

代码质量所涉及的5个方面,编码标准、代码重复、代码覆盖率、依赖项分析、复杂度分析。这5方面很大程序上决定了一份代码的质量高低。 1:编码标准:这个想必都很清楚,每个公司几乎都有一份编码规范,类命...
  • qq_34523482
  • qq_34523482
  • 2017年04月11日 16:00
  • 1060

如何写出高效C++(实现)

26.尽可能延后变量定义式的出现时间 你不止应该延后变量的定义,直到非得使用该变量的前一刻为止,甚至应该尝试延后这份定义直到能够给它初值实参位置,好处是不仅能够避免构造(和析构)非必要对象,还可以避免...
  • hello_bravo_
  • hello_bravo_
  • 2016年08月15日 17:11
  • 561

21. PHP 表单验证 - 完成表单实例

PHP - 保留表单中的值如需在用户点击提交按钮后在输入字段中显示值,我们在以下输入字段的 value 属性中增加了一小段 PHP 脚本:name、email 以及 website。在 comment...
  • enlyhua
  • enlyhua
  • 2015年08月03日 13:44
  • 224

如何编写高效的SQL查询语句

概述        操作数据库时,我们需要写相应的SQL语句,当然,如果你是使用...
  • jiben2qingshan
  • jiben2qingshan
  • 2014年07月31日 23:55
  • 1962

如何高效编写测试用例

背景介绍   项目要马上上线,功能已完成80%,没在完整的需求文档,只有零散的Story,但由于流程及各种原因,之前一直没有测试人员的介入。现要在短时间内完成测试用例的编写,并要符合常规用例的规范及...
  • qiansanjia
  • qiansanjia
  • 2015年09月14日 16:52
  • 723
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编写高效记录选定公式的策略
举报原因:
原因补充:

(最多只允许输入30个字)