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 1 en una taula nova i s'incrementa d'1 a 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".
  • 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.