函数概述(Crystal 语法)

在公式中使用函数时,键入函数名并提供所需参数。例如,Length 函数需要字符串型参数并计算字符串的长度。以下公式返回“数字”值 5。

Local StringVar x := "hello";
Length (x)

提供的函数所需的参数类型不正确将产生错误。例如,Length 函数不接受数字型参数,因此调用 Length (3) 将产生错误。

函数有时可以接受不同数量或类型的参数。例如,CDate 函数可以接受单个字符串型参数构成日期型值,或接受分别保存年、月和日的三个数字型值,并用它们构成日期型值。请参见 “日期、时间和日期时间(Crystal 语法)”

Local StringVar x := "hello";
Local StringVar y;
//从位置 2 开始,直到字符串的末尾。
y := Mid (x, 2); //y 现在为 "ello"。
//Start at position 2, extract 1 character
y := Mid (x, 2, 1) //y 现在为 "e"。

这些函数类型是:数学、汇总、财务、字符串、日期/时间、日期范围、数组、类型转换、编程快捷方式、求值时间、打印状态、文档属性和附加函数。还有一些函数是条件格式设置公式专用函数。

非报表专用函数(Crystal 语法)

数学、财务、字符串、日期/时间、类型转换和编程快捷方式组主要由非报表专用函数组成,但可以在任何功能全面的编程环境中找到。上述函数中的许多与具有相同或相似名称的 Visual Basic 函数在功能上相似。

注意

Crystal 语法所支持的某些函数没有列在 Crystal 语法函数树中。这是因为它们与已列在函数树中的 Crystal 语法函数等效。

例如,Length 函数是查找字符串的长度的传统 Crystal 语法函数。Crystal 语法还支持 Len 作为 Length 的同义词。Len 是具有同样功能的 Visual Basic 和 Basic 语法函数,包括它是为了给想编写或修改 Crystal 语法公式的用户提供方便。

条件格式设置函数(Crystal 语法)

编写条件格式设置函数时,某些附加的函数出现在函数树的上部以帮助您编写函数。例如,可以设置 {客户.去年销售额} 字段格式,使大于十万美元的销售额用绿色打印,小于一万五千美元的销售额用红色打印,而所有其他销售额用黑色打印。

If {Customer.Last Year's Sales} > 100000 Then
crGreen
Else If {Customer.Last Year
's Sales} < 15000 Then
crRed
Else
crBlack

因为该函数是字体颜色格式设置函数,所以“颜色常量”列表出现在函数树中。该示例使用三种颜色常量:crGreen、crRed 和 crBlack。其实可以改用颜色常量的实际数值。例如,crRed 是 255,crGreen 是 32768。然而,使用颜色常量,公式更容易理解。Crystal 语法中的所有常量函数均可以有“cr”前缀。

Crystal 语法仍支持以前版本中不带“cr”前缀的常量函数。例如,可以使用“Red”而不是“crRed”。然而,建议使用“cr”前缀,因为它可以将常量函数组织起来。

注意

某些格式设置属性不使用常量函数。例如,如果销售额低于五万美元时不希望打印 {客户.去年销售额} 值,则可以编写以下“取消”属性的条件格式设置公式:

If {Customer.Last Year's Sales} < 50000 Then
True // 取消该值。
Else
False
// 不取消该值。
更简单的方法是:
{Customer.Last Year's Sales} < 50000

如果去年的销售额低于五万美元,则表达式

{Customer.Last Year's Sales} < 50000

为 True,因而公式返回 True.另一方面,如果去年的销售额大于或等于五万美元,则

{Customer.Last Year's Sales} < 50000

为 False,因而公式返回 False。

通用条件格式设置函数(Crystal 语法)

有三种通用条件格式设置函数:

  • CurrentFieldValue
  • DefaultAttribute
  • GridRowColumnValue

DefaultAttribute 可用于任何格式设置公式,CurrentFieldValue 可用于设置字段值格式的任何格式设置公式,GridRowColumnValue 可用于设置交叉表或 OLAP 网格中字段值的格式的任何格式设置公式。

利用 CurrentFieldValue 可以根据交叉表或 OLAP 网格单元格的值对其进行条件格式设置。利用 GridRowColumnValue 可以根据行或列的标题值,对交叉表或 OLAP 网格的单元格进行条件格式设置。在公式语言中没有其他方法引用这些字段的某些情况下,这两种函数是必需的。

例如,如果想在值小于 50,000 时抑制显示交叉表单元格:

CurrentFieldValue < 50000
posted on 2011-04-14 15:27  笨笨小媛  阅读(2263)  评论(0编辑  收藏  举报