Manipuler les identifiants d'enregistrement dans Ninox
Les identifiants d'enregistrement dans Ninox
- Chaque nouvel enregistrement reçoit dans Ninox un identifiant (ID) unique.
- La numérotation commence à
1pour une table neuve et augmente de1à chaque nouvelle entrée (2,3, etc.). - Les identifiants supprimés ne sont pas réattribués. L'identifiant le plus élevé de la table reflète donc le nombre total d'enregistrements créés, y compris ceux qui ont été supprimés et qui ne sont plus visibles.
- Représentation d'un identifiant :
- Les identifiants peuvent se présenter comme des nombres ou comme du texte.
- Sous forme de texte, l'identifiant combine l'identifiant de la table (une ou plusieurs lettres majuscules) et le numéro de l'enregistrement.
Exemple :"A1"
Points clés sur les identifiants
- Convertir un identifiant en texte :
- Utilisez la fonction
string()pour obtenir la représentation textuelle d'un identifiant. - La fonction
text()ne renvoie que la partie numérique de l'identifiant, sous forme de texte. Exemple :"1".
- Utilisez la fonction
- Exemple :
string(maTable.id); // Correct textual representation, e.g., "A1"
text(maTable.id); // Only the numeric part as text, e.g., "1"
- Utiliser des identifiants dans des expressions :
- Lors d'un calcul ou d'une concaténation, l'identifiant adopte le type de l'autre donnée.
- Exemple :
var t := "Num ID: " + maTable.id;
Résultat : Num ID: 1
Rechercher des enregistrements par identifiant
Pour récupérer un enregistrement par son identifiant dans une clause where, vous pouvez employer indifféremment un nombre ou une représentation textuelle.
Avec un nombre :
select Customer where id = 1;
Avec du texte :
Avec du texte, veillez à ce que l'identifiant comprenne à la fois l'identifiant de la table et le numéro de l'enregistrement.
Exemple :
select Customer where id = "B1";
Extraire le numéro d'enregistrement d'un identifiant
Cette fonction permet d'extraire le numéro d'enregistrement d'un identifiant textuel (par 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) convertit l'identifiant en texte.
L'expression régulière ^[A-Z]+([0-9]+)$ signifie
^[A-Z]+→ une ou plusieurs lettres au début,([0-9]+)→ les chiffres recherchés (groupe de capture 1),$→ fin de la chaîne.
extractx(..., "", "$1") ne renvoie que les chiffres capturés.
number(...) convertit cette suite de chiffres en nombre.
