Repetir una acció: for i while
Un bucle repeteix una acció: recórrer totes les factures d'un client per sumar-les, crear una línia per mes, comprovar cada registre d'una taula…
Un bucle for es pot fer servir per executar codi i/o retornar una taula de valors. El tipus de la taula retornada correspon al tipus de la darrera instrucció entre do i end.
Bucle For
Recórrer un interval de nombres:
for i from 1 to 10 do
i;
end;Recórrer una taula:
var myArray := [1, 3, 5, 7];
for i in myArray do
i;
end;Recórrer les claus i els valors d'un objecte JSON:
var config := {
sep: ",",
qut: """",
lf: "%0D%0A",
numberFormat: "point",
dateFormat: "locale",
header: true,
sepHeader: false,
encoding: "utf8"
};
for key, value in config do
key + " = " + value;
end;Vegeu com manipular variables JSON a Ninox: Treballar amb dades JSON.
També es pot fer el mateix amb un registre, però cal fer servir NativeJS de Ninext per transformar un registre (nid) en JSON:
var rec := (first(select Customer));
"Transforming a record into a JSON object";
var config := #{:any return rec}#;
for fieldName, value in config do
fieldName + " = " + value;
end;Aquest enfocament pot ser útil per exportar tots els camps d'una taula a formats com ara CSV. Dues precaucions:
- L'objecte obtingut conté, a més dels camps designats per la seva etiqueta, les claus tècniques
Id,ID,idi_node, i els seus valors són en brut (una data, per exemple, hi és un nombre de mil·lisegons). Descarteu aquestes claus per a una exportació. - El bloc
#{ … }#només s'executa al navegador on s'ha carregat Ninext: en undo as servero en un activador de taula (després de crear, després de modificar), no té cap efecte. La pestanya Errors de Ninext ho assenyala.
Bucle While
Els bucles While són simples i no retornen cap valor. Serveixen únicament per fer tasques iteratives i no es poden fer servir per construir taules.
Exemple:
var a := 1;
while a < 10 do
a := a + 1;
end;