Funktionen

Mit dieser Anweisung legen Sie eine neue Methode an, die entweder lokal sein kann (nur in dem Code gültig, in dem sie deklariert wird) oder global (wenn Sie sie unter Optionen/Globale Funktionen eintragen).

Der Rückgabewert der Funktion hängt – wie bei jedem linearen Code – von der letzten Anweisung der Funktion ab, also derjenigen unmittelbar vor dem end:

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

var b := InitB(true);

Parametertypen

Folgende Parametertypen lassen sich deklarieren:
text, number, date, datetime, time, timeinterval, appointment, boolean, html, color, icon, email, phone, location, file, user und any.

Tabellennamen als Parametertyp

Sie können auch einen Parameter deklarieren, dessen Typ ein Tabellenname ist. Der Parameter lässt sich dann als Datensatz dieser Tabelle verwenden:

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

total(first(select Invoice));

Arrays in Funktionen

Ein Array lässt sich einer Funktion nicht unmittelbar übergeben. Sie können dafür jedoch ein JSON-Objekt (any) verwenden:

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

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