Manipular els identificadors de registre a Ninox
Els identificadors de registre a Ninox
- A cada registre nou de Ninox se li assigna un ID (identificador) únic.
- La numeració comença per
1en una taula nova i s'incrementa d'1a cada entrada nova (2,3, etc.). - Els identificadors suprimits no es tornen a assignar. Per tant, l'ID més alt de la taula reflecteix el nombre total de registres creats, incloent-hi els que s'han suprimit i ja no es veuen.
- Representació dels identificadors:
- Els identificadors es poden representar com a nombres o com a text.
- Quan es representen com a text, l'ID combina l'ID de la taula (una o més lletres majúscules) amb el número del registre.
Exemple:"A1"
Punts clau sobre els identificadors
- Convertir un ID en text:
- Feu servir la funció
string()per obtenir una representació textual d'un ID. - La funció
text()només retorna la part numèrica de l'ID en forma de text. Exemple:"1".
- Feu servir la funció
- Exemple:
string(maTable.id); // Correct textual representation, e.g., "A1"
text(maTable.id); // Only the numeric part as text, e.g., "1"
- Fer servir els identificadors en expressions:
- En una operació aritmètica o en una concatenació, l'ID adopta el tipus de l'altra dada.
- Exemple:
var t := "Num ID: " + maTable.id;
Resultat: Num ID: 1
Cercar registres per ID
Per recuperar un registre per ID en una clàusula where, podeu fer servir tant un nombre com una representació de text.
Amb un nombre:
select Customer where id = 1;
Amb text:
Quan feu servir text, assegureu-vos que l'ID inclogui tant l'ID de la taula com el número del registre.
Exemple:
select Customer where id = "B1";
Extreure el número de registre d'un ID
Aquesta funció us permet extreure el número de registre d'un ID en forma de text (per exemple, 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) converteix l'ID en text.
La RegExp ^[A-Z]+([0-9]+)$ vol dir
^[A-Z]+→ una o més lletres al començament,([0-9]+)→ les xifres que volem (grup de captura 1),$→ final de la cadena.
extractx(..., "", "$1") retorna només les xifres capturades.
number(...) converteix aquesta cadena de xifres en un nombre.
