自定义函数的 Basic 语法

Basic 语法中自定义函数的语法与 Visual Basic 中函数的语法非常相似。

Functionname [(argList)] [ As type]

[语句]

[名称=表达式]

[ Exit Function]

...

End Function

name 必选。这是函数的名称。它必须与函数创建时所用的名称相同。该名称不能以数字开头,并且不能包含任何空格或除下划线以外的标点符号。另外,该名称也不能与 Basic 或 Crystal 语法中的关键字相同。
类型 可选。表示函数返回的数据值的类型。可以是任何简单的 Crystal Reports 类型(数字、货币、字符串、布尔值、日期、时间以及日期时间)或者范围类型(数字范围、货币范围、字符串范围、日期范围、时间范围以及日期时间范围)。如果返回类型被省略,则它将由第一次给名称赋值时表达式的类型推导出(隐式类型)。
Note注意

如果需要一个数组返回类型,则必须使用隐式类型,因为此类型没有显式表示法。

表达式 将表达式赋给名称以指定函数返回的值。如果指定了类型,则此选项为可选;否则,它是必选的,这样 Crystal Reports 才能通过隐式类型来确定函数的返回类型。

Exit Function 语句导致 Crystal Reports 立即从函数中退出。您可以在函数体中的任意位置使用此语句,次数不限。

Note注意

可以放在函数起首之前或函数声明结束之后的唯一一种语句是注释(撇号或 Rem 语句)。

argList 语法

[ Optional] varName [()] AsvarType [= defaultValue]

  • Optional

    可选。表示当调用自定义函数时该参数可以省略。如果某个参数为可选,则所有随后的参数也必须为可选。如果您为一个可选参数提供值,则必须为前面的每个参数提供值。

  • varName

    必选。指定表示参数的变量的名称。

  • ()

    可选。如果存在,则表示参数变量是数组变量。

  • varType

    必选。表示参数变量的类型。它可以是前面 argList 说明中提到的七种简单类型或六种范围类型中的任何一个。如果存在可选的 (),则该类型为其元素皆为 varType 类型的数组类型。

  • = defaultValue

    对于可选参数是必需的。defaultValue 是常量或常量表达式,也就是可在编译时简化为常量值的、不涉及变量的表达式。如果在调用函数时将某个可选参数省略,则将使用该参数的默认值。

    Note注意

    与 Visual Basic 不同,如果某个参数为可选,则必须提供默认值。

通过值传递

所有参数都通过值传递。在 Visual Basic 中,参数可以通过值或通过引用传递,默认情况下通过引用传递。但是,自定义函数不支持引用参数。