Basic 语法中自定义函数的语法与 Visual Basic 中函数的语法非常相似。
Functionname [(argList)] [ As type]
[语句]
[名称=表达式]
[ Exit Function]
...
End Function
| name | 必选。这是函数的名称。它必须与函数创建时所用的名称相同。该名称不能以数字开头,并且不能包含任何空格或除下划线以外的标点符号。另外,该名称也不能与 Basic 或 Crystal 语法中的关键字相同。 | ||
| 类型 | 可选。表示函数返回的数据值的类型。可以是任何简单的 Crystal Reports 类型(数字、货币、字符串、布尔值、日期、时间以及日期时间)或者范围类型(数字范围、货币范围、字符串范围、日期范围、时间范围以及日期时间范围)。如果返回类型被省略,则它将由第一次给名称赋值时表达式的类型推导出(隐式类型)。
|
||
| 表达式 | 将表达式赋给名称以指定函数返回的值。如果指定了类型,则此选项为可选;否则,它是必选的,这样 Crystal Reports 才能通过隐式类型来确定函数的返回类型。 |
Exit Function 语句导致 Crystal Reports 立即从函数中退出。您可以在函数体中的任意位置使用此语句,次数不限。
注意 |
|---|
可以放在函数起首之前或函数声明结束之后的唯一一种语句是注释(撇号或 Rem 语句)。 |
argList 语法
[ Optional] varName [()] AsvarType [= defaultValue]
Optional
可选。表示当调用自定义函数时该参数可以省略。如果某个参数为可选,则所有随后的参数也必须为可选。如果您为一个可选参数提供值,则必须为前面的每个参数提供值。
varName
必选。指定表示参数的变量的名称。
()
可选。如果存在,则表示参数变量是数组变量。
varType
必选。表示参数变量的类型。它可以是前面 argList 说明中提到的七种简单类型或六种范围类型中的任何一个。如果存在可选的 (),则该类型为其元素皆为 varType 类型的数组类型。
= defaultValue
对于可选参数是必需的。defaultValue 是常量或常量表达式,也就是可在编译时简化为常量值的、不涉及变量的表达式。如果在调用函数时将某个可选参数省略,则将使用该参数的默认值。
注意与 Visual Basic 不同,如果某个参数为可选,则必须提供默认值。
通过值传递
所有参数都通过值传递。在 Visual Basic 中,参数可以通过值或通过引用传递,默认情况下通过引用传递。但是,自定义函数不支持引用参数。