Manipular los identificadores de registro en Ninox
Los identificadores de registro en Ninox
- A cada registro nuevo de Ninox se le asigna un ID (identificador) único.
- La numeración empieza en
1en una tabla nueva y se incrementa en1con cada entrada nueva (2,3, etc.). - Los identificadores eliminados no se reutilizan. Por tanto, el ID más alto de la tabla refleja el número total de registros creados, incluidos los que se eliminaron y ya no se ven.
- Representación del ID:
- Los identificadores se pueden representar como números o como texto.
- Cuando se representan como texto, el ID combina el identificador de la tabla (una o varias letras mayúsculas) con el número de registro.
Ejemplo:"A1"
Puntos clave sobre los identificadores
- Convertir un ID en texto:
- Use la función
string()para obtener una representación textual de un ID. - La función
text()solo devuelve como texto la parte numérica del ID. Ejemplo:"1".
- Use la función
- Ejemplo:
string(maTable.id); // Correct textual representation, e.g., "A1"
text(maTable.id); // Only the numeric part as text, e.g., "1"
- Usar los identificadores en expresiones:
- Al hacer operaciones aritméticas o concatenaciones, el ID adopta el tipo del otro dato.
- Ejemplo:
var t := "Num ID: " + maTable.id;
Resultado: Num ID: 1
Buscar registros por su identificador
Para recuperar un registro por su ID en una cláusula where, puede usar tanto un número como una representación textual.
Con un número:
select Customer where id = 1;
Con texto:
Cuando use texto, asegúrese de que el ID incluya tanto el identificador de la tabla como el número de registro.
Ejemplo:
select Customer where id = "B1";
Extraer el número de registro de un identificador
Esta función permite extraer el número de registro de un ID en forma de texto (por ejemplo, A1):
function recordNumber(id : text) do
"Capture the digit group.";
number(extractx(id, "^[A-Z]+([0-9]+)$", "", "$1"))
end;
"Example: apply to the current record’s ID"
var numId := recordNumber(string(myId));
string(myId) convierte el ID en texto.
La RegExp ^[A-Z]+([0-9]+)$ significa
^[A-Z]+→ una o varias letras al principio,([0-9]+)→ las cifras que buscamos (grupo de captura 1),$→ fin de la cadena.
extractx(..., "", "$1") devuelve únicamente las cifras capturadas.
number(...) convierte esa cadena de cifras en un número.
