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

类别:.NET开发 点击:0 评论:0 推荐:

注意:    本节假定您熟悉“选择专家”,并正从 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

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

本文地址:http://com.8s8s.com/it/it45271.htm