Fonctions

Cette instruction permet de créer une nouvelle méthode, qui peut être soit locale (limitée au code où elle est déclarée), soit globale (en l'insérant dans Options/Global Functions).

La valeur de retour de la fonction, comme pour tout code linéaire, dépend de sa dernière instruction (celle qui précède immédiatement le end) :

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

var b := InitB(true);

Types de paramètres

Les différents types de paramètres déclarables sont :
text, number, date, datetime, time, timeinterval, appointment, boolean, html, color, icon, email, phone, location, file, user et any.

Utiliser des noms de tables comme paramètres

Il est également possible de déclarer un paramètre dont le type est un nom de table. Le paramètre s'utilise alors comme un enregistrement de cette table :

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

total(first(select Invoice));

Gérer les tableaux avec les fonctions

Il n'est pas possible de passer directement un tableau à une fonction. Vous pouvez en revanche utiliser un objet JSON (any) pour cela :

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

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