Var i let
Tant var com let es poden fer servir per declarar una variable. A diferència del que passa en JavaScript, a Ninox no hi ha cap diferència d'abast entre let i var.
El tipus de la variable depèn del tipus del valor que se li assigna:
var t := "my text";
var b := false;
var n := 10;
Una variable es pot declarar diverses vegades dins d'un mateix codi. En aquests casos, la variable conservarà el tipus i el valor que se li han assignat fins que s'arribi a la declaració nova:
var b := true;
dialog("Message 1", "Value of b: " + b, ["ok"]);
var b := 12;
dialog("Message 2", "Value of b: " + b, ["ok"]);
Confusió entre noms de variable i identificadors de taula o de camp
Ninox desa el codi en un format una mica diferent del que es mostra a la pantalla. Concretament, els noms dels camps i de les taules se substitueixen pels seus identificadors, que són lletres.
Per exemple, l'script següent, que calcula la suma dels articles venuts:
sum('Invoice Items'.Total)
Es desarà al codi de sistema d'aquesta manera, on D és l'identificador de la taula 'Invoice Items' i E és l'identificador del camp Total:
sum(D.E)
En aquest context, si es crea una variable D, pot confondre el compilador, ja que amb el codi de sistema següent no quedaria clar si D.E fa referència a una taula o a la variable D declarada abans:
(var D := "hello"; sum(D.E))
Per evitar aquestes confusions, cal donar a les variables noms que difícilment coincideixin amb identificadors de taula o de camp, ni amb noms de taula o de camp. Per això sovint les variables reben noms curts en minúscula (per exemple, a, b o c), per evitar que es confonguin amb identificadors.
