Var et Let

var et let servent tous deux à déclarer une variable. Contrairement à JavaScript, il n'y a aucune différence de portée entre let et var dans Ninox.

Le type de la variable dépend du type de la valeur qui lui est affectée :

var t := "my text";
var b := false;
var n := 10;

Une variable peut être déclarée plusieurs fois dans un même code. Dans ce cas, elle conserve le type et la valeur qui lui ont été affectés jusqu'à ce que la nouvelle déclaration soit atteinte :

var b := true;
dialog("Message 1", "Value of b: " + b, ["ok"]);
var b := 12;
dialog("Message 2", "Value of b: " + b, ["ok"]);

Confusion entre noms de variables et identifiants de tables ou de champs

Ninox enregistre son code dans un format un peu différent de celui qui s'affiche à l'écran. Plus précisément, les noms de champs et de tables sont remplacés par leurs identifiants, qui sont des lettres.

Par exemple, le script suivant, qui calcule la somme des articles vendus :

sum('Invoice Items'.Total)

sera enregistré dans le code système sous la forme suivante, où D est l'identifiant de la table 'Invoice Items' et E celui du champ Total :

sum(D.E)

Dans ce contexte, si une variable D est créée, elle peut semer la confusion chez le compilateur : dans le code système ci-dessous, on ne sait plus si D.E désigne une table ou la variable D déclarée juste avant :

(var D := "hello"; sum(D.E))

Pour éviter ce genre de confusion, donnez aux variables des noms qui ont peu de chances de coïncider avec des identifiants ou des noms de tables et de champs. C'est pourquoi les variables portent souvent des noms courts, en minuscules (par exemple a, b ou c), pour ne pas être confondues avec des identifiants.