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