DEFINE FIELD . . . COMPUTED 命令
概念信息
在 Analytics 表布局中定义计算域。
语法
要定义计算域,请执行以下操作:
DEFINE FIELD 域名称 COMPUTED 表达式
要定义具有可选参数的计算域,请执行以下操作:
DEFINE FIELD 域名称 COMPUTED
<IF 测试> <STATIC> <PIC 格式> <AS 显示名称> <WIDTH 字符数> <SUPPRESS> <域说明>
表达式
要定义条件计算域,请执行以下操作:
DEFINE FIELD 域名称 COMPUTED
*** BLANK_LINE ***
值 IF 条件
<值 IF 条件>
<...n>
默认值
要使用可选参数定义条件计算域:
DEFINE FIELD 域名称 COMPUTED
<IF 测试> <STATIC> <PIC 格式> <AS 显示名称> <WIDTH 字符数> <SUPPRESS> <域说明>
值 IF 条件
<值 IF 条件>
<...n>
默认值
说明
多行语法的结构必须完全如上述通用语法和下面的示例中所示。
参数
| 名称 | 描述 |
|---|---|
| 域名称 |
计算域的名称。 说明 域名称被限制为不超过 256 个大小写字母数字字符。该名称可以包括下划线字符 ( _ ),但不能包括其他特殊字符或任何空格。该名称不能以数字开头。 Analytics 具有多个保留关键字,这些字不能用作域名称。要获取完整列表,请参阅 保留关键字。 |
| 表达式 | 一个有效的 Analytics 表达式,它定义计算域的值。 |
| IF 测试 可选 |
一个条件表达式,它必须为真以便处理每个记录。仅对满足条件的那些记录执行该命令。 说明 在应用任何范围参数(WHILE、FIRST、NEXT)之后,仅针对表中的剩余记录评估 IF 条件。 |
|
STATIC 可选 |
该域在该表的每个行上显示相同的值,直至遇到一个新值为止。 例如,如果在源数据中有一个姓氏域,其中:
在此例中,"Smith" 显示在六个连续行上,然后 "Wong" 显示在第七行上。 |
| PIC 格式 可选 |
说明 只适用于数值域。 Analytics 视图和报告中数值类型值的显示格式。 必须将格式放在引号中。 |
|
AS 显示名称 可选 |
视图中的域的显示名称(备选列标题)。如果您希望显示名称与域名称相同,请不要使用 AS。 请将显示名称指定为带引号的字符串。如果您希望列标题包含换行符,请在单词之间使用分号 (;)。 |
| WIDTH 字符数 可选 |
该域的显示宽度(单位为字符)。 指定的值控制 Analytics 视图和报告中的域的显示宽度。显示宽度永远不会改变数据,但是,如果它比域长度短,则可能隐藏数据。 显示宽度不能小于域名称或显示名称的长度。 如果您省略 WIDTH,则显示宽度被设置为域长度(单位为字符)。 说明 WIDTH 所指定的字符为固定宽度字符。每个字符都被分配相同的空间量,而无论实际字符的宽度如何。 默认情况下,Analytics 中的视图使用不与固定宽度字符间距相对应的比例宽度字体。 如果您希望在 WIDTH 值和视图中的字符数之间建立一对一对应关系,则可以将选项对话框中的比例字体设置更改为固定宽度字体,如 Courier New。 |
|
SUPPRESS 可选 |
只适用于数值域。 禁止对 Analytics 报告中的数值计算域进行自动合计。 合计某些数值域是不适当的。例如,单位成本域或折扣率域。 |
|
域说明 可选 |
被添加到表布局中的域定义的域说明文本。 域说明必须是最后一个参数,位于所有其他必需的和可选的参数之后。该文本不能包含多行。不需要使用引号。 |
| 值 IF 条件 |
仅限条件计算域。
|
| 默认值 |
仅限条件计算域。 当没有任何条件评估为真时要在计算域中使用的值或表达式。 说明 所有数值类型计算值的小数精度都由默认值的精度控制。例如,如果您指定默认值 0.00,则所有计算值都被计算至两个小数位,并且被根据需要四舍五入。若要获得更高的精度,请增加默认值中的小数位数。 |
示例
定义一个计算域
您定义一个名为 Value 的计算域,它是 Cost 域和 Quantity 域的乘积:
DEFINE FIELD Value COMPUTED Cost * Quantity
使用选项定义计算域
您使用多个已定义的选项定义一个名为 Value_03 的计算域。您包括一个 IF 条件,以限制哪些记录由该计算域处理:
DEFINE FIELD Value_03 COMPUTED
IF Product_Class = "03" PIC "($9,999,999.99)" AS "Value Prod Class 3" 值为成本乘以数量
成本 * 数量
定义一个条件计算域
您定义一个名为 Sales_tax 的条件计算域,该域根据交易发生的州计算不同的销售税。在这三个州以外发生的交易的默认销售税为 $0.00。
说明
必须将第二行保留为空白,因为没有可选参数。
DEFINE FIELD 销售税 COMPUTED
.0750 * 销售数量 IF 州 = "CA"
.0400 * 销售数量 IF 州 = "NY"
.0625 * 销售数量 IF 州 = "TX"
0.00
使用选项定义一个条件计算域
您定义一个名为 Sales_tax_100 的条件计算域,该域根据交易发生的州计算不同的销售税。该域只对 $100 或更大的金额计算税额。
在这三个州以外发生的交易的默认销售税为 $0.00。
说明
当您指定可选参数时,请不要将任何行保留为空白。
DEFINE FIELD Sales_tax_100 COMPUTED
IF Sale_amount >= 100
.0750 * 销售数量 IF 州 = "CA"
.0400 * 销售数量 IF 州 = "NY"
.0625 * 销售数量 IF 州 = "TX"
0.00
备注
有关此命令工作方式的详细信息,请参见定义计算域。
两个类型的计算域
有两个类型的计算域:
- 标准计算域
标准计算域对表中的每个记录执行相同计算。
例如,在“库存”表中,您可以创建一个计算域,将“成本”域中的值乘以“数量”域中的值以计算每个记录的“库存成本价值”。
- 条件计算域
条件计算域能够基于您指定的一组条件对表中的记录执行不同的计算。对某个记录执行的计算取决于该记录满足哪个条件。
例如,在“交易”表中,您可以创建一个条件计算域,以使用基于发生交易的州而调整的税率来计算销售税。诸如 IF 州 = "CA" 和 IF = "NY" 之类的条件可测试每个记录以识别要使用的税率。
有关创建条件计算域的准则
说明
在定义条件计算域时,如果您不在第二行上指定任何可选参数,则必须将第二行保留为空白。
条件计算域除了需要一个默认值之外,还需要至少一个条件值。您必须使用以下多行语法来定义条件计算域:
- 可选参数出现在第二行上
- 如果没有可选参数,则必须将第二行保留为空白
- 第一个条件语句出现在第三个行上
- 每个附加的条件语句都需要单独占一行
- 默认值出现在最后一行上
覆盖域定义
您可以通过定义一个使用与现有域相同名称的域来覆盖表布局中的域定义。
如果 SET SAFETY 为 ON,Analytics 会在覆盖现有域之前显示确认对话框。到避免中断脚本,您可以将 SET SAFETY 设置为 OFF,这样,Analytics 无需确认即覆盖现有域。