Функции
Эта инструкция позволяет создать новый метод — либо локальный (доступный только в том коде, где он объявлен), либо глобальный (если поместить его в Options/Global Functions).
Возвращаемое значение функции, как и в любом линейном коде, определяется её последней инструкцией (той, что стоит прямо перед end):
function InitB(initialValue : boolean) do
if initialValue then
"true"
else
"false"
end
end;
var b := InitB(true);
Типы параметров
Можно объявлять параметры следующих типов:
text, number, date, datetime, time, timeinterval, appointment, boolean, html, color, icon, email, phone, location, file, user и 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
});
