Manipolare gli ID dei record in Ninox
Gli ID dei record in Ninox
- A ogni nuovo record Ninox assegna un ID (identificatore) univoco.
- La numerazione parte da
1per una tabella nuova e cresce di1a ogni nuova voce (2,3, ecc.). - Gli ID eliminati non vengono riassegnati. L'ID più alto della tabella riflette quindi il numero totale di record creati, compresi quelli eliminati e non più visibili.
- Rappresentazione dell'ID:
- Gli ID si possono rappresentare come numeri o come testo.
- Nella rappresentazione testuale, l'ID unisce l'ID della tabella (una o più lettere maiuscole) al numero del record.
Esempio:"A1"
Note essenziali sugli ID
- Convertire un ID in testo:
- Usate la funzione
string()per ottenere la rappresentazione testuale di un ID. - La funzione
text()restituisce come testo solo la parte numerica dell'ID. Esempio:"1".
- Usate la funzione
- Esempio:
string(maTable.id); // Correct textual representation, e.g., "A1"
text(maTable.id); // Only the numeric part as text, e.g., "1"
- Usare gli ID nelle espressioni:
- In un'operazione aritmetica o in una concatenazione, l'ID assume il tipo dell'altro dato.
- Esempio:
var t := "Num ID: " + maTable.id;
Risultato : Num ID: 1
Cercare i record per ID
Per recuperare un record in base all'ID in una clausola where, potete usare indifferentemente un numero o una rappresentazione testuale.
Con un numero:
select Customer where id = 1;
Con del testo:
Usando il testo, assicuratevi che l'ID comprenda sia l'ID della tabella sia il numero del record.
Esempio:
select Customer where id = "B1";
Estrarre il numero del record da un ID
Questa funzione permette di estrarre il numero del record da un ID testuale (per esempio 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) converte l'ID in testo.
La RegExp ^[A-Z]+([0-9]+)$ significa
^[A-Z]+→ una o più lettere all'inizio,([0-9]+)→ le cifre che ci interessano (gruppo di cattura 1),$→ fine della stringa.
extractx(..., "", "$1") restituisce solo le cifre catturate.
number(...) converte quella stringa di cifre in un numero.
