Funzioni

Questa istruzione permette di creare un nuovo metodo, che può essere locale (limitato al codice in cui è dichiarato) oppure globale (inserendolo in Options/Global Functions).

Il valore restituito dalla funzione, come per ogni codice lineare, dipende dall'ultima istruzione della funzione (quella che precede immediatamente end):

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

var b := InitB(true);

Tipi di parametro

I diversi tipi di parametro dichiarabili sono:
text, number, date, datetime, time, timeinterval, appointment, boolean, html, color, icon, email, phone, location, file, user e any.

Usare i nomi di tabella come parametri

È anche possibile dichiarare un parametro il cui tipo è un nome di tabella. In tal caso il parametro può essere usato come un record della tabella:

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

total(first(select Invoice));

Gestire gli array con le funzioni

Non è possibile passare direttamente un array a una funzione. Potete però usare a questo scopo un oggetto 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
});