函数

这条指令用于创建一个新的方法,它可以是本地的(仅限于声明它的那段代码),也可以是全局的(把它写入选项/全局函数中)。

与所有线性代码一样,函数的返回值取决于函数的最后一条指令(也就是 end 之前的那一条):

function InitB(initialValue : boolean) do
    if initialValue then
        "true"
    else
        "false"
    end
end;

var b := InitB(true);

参数类型

可声明的各种参数类型包括:
textnumberdatedatetimetimetimeintervalappointmentbooleanhtmlcoloriconemailphonelocationfileuser 以及 any

把表名用作参数类型

也可以声明一个类型为表名的参数。此时,该参数可以当作该表的一条记录来使用:

function total(record : Invoice) do
    record.'NET Total'
end;

total(first(select Invoice));

在函数中处理数组

不能把数组直接传给函数。不过,您可以为此使用一个 JSON 对象(any):

function myFunction(t : any) do
    for i in t.array do
        i
    end
end;

var myArray := [1, 3, 5, 6];
myFunction({
    array: myArray
});