Var y Let
Tanto var como let sirven para declarar una variable. A diferencia de lo que ocurre en JavaScript, en Ninox no hay ninguna diferencia de ámbito entre let y var.
El tipo de la variable depende del tipo de valor que se le asigna:
var t := "my text";
var b := false;
var n := 10;
Una variable se puede declarar varias veces en el mismo código. En ese caso, la variable conserva el tipo y el valor que se le habían asignado hasta que se llega a la declaración nueva:
var b := true;
dialog("Message 1", "Value of b: " + b, ["ok"]);
var b := 12;
dialog("Message 2", "Value of b: " + b, ["ok"]);
Confusión entre nombres de variable e identificadores de tabla o de campo
Ninox guarda su código en un formato algo distinto del que se ve en pantalla. En concreto, los nombres de campo y de tabla se sustituyen por sus identificadores, que son letras.
Por ejemplo, el script siguiente, que calcula la suma de los artículos vendidos:
sum('Invoice Items'.Total)
se guardará en el código del sistema de esta manera, donde D es el identificador de la tabla 'Invoice Items' y E el del campo Total:
sum(D.E)
En este contexto, si se crea una variable D, puede confundir al compilador, porque en el código del sistema siguiente no quedaría claro si D.E designa una tabla o la variable D declarada antes:
(var D := "hello"; sum(D.E))
Para evitar esa confusión, conviene dar a las variables nombres que difícilmente coincidan con identificadores o nombres de tablas y campos. Por eso se suele nombrar las variables con nombres cortos en minúsculas (por ejemplo, a, b o c), para que no se confundan con los identificadores.
