Eine Aktion wiederholen: for und while
Eine Schleife wiederholt eine Aktion: alle Rechnungen eines Kunden durchgehen, um die Summe zu bilden, eine Zeile pro Monat anlegen, jeden Datensatz einer Tabelle prüfen …
Mit einer for-Schleife führen Sie Code aus und/oder geben ein Array von Werten zurück. Der Typ des zurückgegebenen Arrays entspricht dem Typ der letzten Anweisung zwischen do und end.
for-Schleife
Einen Zahlenbereich durchlaufen:
for i from 1 to 10 do
i;
end;Ein Array durchlaufen:
var myArray := [1, 3, 5, 7];
for i in myArray do
i;
end;Schlüssel und Werte eines JSON-Objekts durchlaufen:
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;Wie man JSON-Variablen in Ninox handhabt, lesen Sie hier: Mit JSON-Daten arbeiten.
Dasselbe ist auch mit einem Datensatz möglich, doch dazu brauchen Sie NativeJS von Ninext, um einen Datensatz (nid) in JSON umzuwandeln:
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;Dieses Vorgehen ist nützlich, um alle Felder einer Tabelle in Formate wie CSV zu exportieren. Zwei Vorsichtsmaßnahmen:
- Das erhaltene Objekt enthält neben den über ihre Beschriftung bezeichneten Feldern die technischen Schlüssel
Id,ID,idund_node, und seine Werte sind roh (ein Datum etwa ist dort eine Anzahl Millisekunden). Lassen Sie diese Schlüssel bei einem Export weg. - Der Block
#{ … }#wird nur in dem Browser ausgeführt, in dem Ninext geladen ist: In einemdo as serveroder in einem Tabellen-Trigger (nach dem Anlegen, nach dem Ändern) bleibt er ohne Wirkung. Der Reiter Fehler von Ninext meldet dies.
while-Schleife
While-Schleifen sind einfach und geben keinen Wert zurück. Sie dienen ausschließlich wiederholten Arbeitsschritten und eignen sich nicht zum Aufbau von Arrays.
Beispiel:
var a := 1;
while a < 10 do
a := a + 1;
end;