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.