Datensatz-IDs in Ninox handhaben

Datensatz-IDs in Ninox

  • Jeder neue Datensatz in Ninox erhält eine eindeutige ID (Bezeichner).
  • Die Nummerierung beginnt bei einer neuen Tabelle mit 1 und wird für jeden neuen Eintrag um 1 erhöht (2, 3 usw.).
  • Gelöschte IDs werden nicht neu vergeben. Die höchste ID der Tabelle gibt daher die Gesamtzahl der jemals angelegten Datensätze wieder, gelöschte und nicht mehr sichtbare eingeschlossen.
  • Darstellung der ID:
    • IDs lassen sich als Zahl oder als Text darstellen.
    • Als Text besteht die ID aus der ID der Tabelle (ein oder mehrere Großbuchstaben) und der Nummer des Datensatzes.
      Beispiel: "A1"

Das Wichtigste zu IDs

  • Eine ID in Text umwandeln:
    • Verwenden Sie die Funktion string(), um eine textliche Darstellung der ID zu erhalten.
    • Die Funktion text() liefert nur den Zahlenteil der ID als Text. Beispiel: "1".
  • Beispiel:
string(maTable.id); // Correct textual representation, e.g., "A1"
text(maTable.id);   // Only the numeric part as text, e.g., "1"
  • IDs in Ausdrücken verwenden:
    • Bei Rechenoperationen oder Verkettungen nimmt die ID den Typ der anderen Daten an.
  • Beispiel:
var t := "Num ID: " + maTable.id;

Ergebnis: Num ID: 1

Datensätze anhand der ID suchen

Um einen Datensatz in einer where-Klausel über seine ID zu finden, können Sie entweder eine Zahl oder eine Textdarstellung verwenden.

Mit einer Zahl:

select Customer where id = 1;

Mit Text:

Achten Sie bei Text darauf, dass die ID sowohl die ID der Tabelle als auch die Nummer des Datensatzes enthält.

Beispiel:

select Customer where id = "B1";

Die Datensatznummer aus einer ID herauslösen

Mit dieser Funktion holen Sie die Datensatznummer aus einer textlichen ID (z. B. A1) heraus:

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) wandelt die ID in Text um.

Die RegExp ^[A-Z]+([0-9]+)$ bedeutet:

  • ^[A-Z]+ → ein oder mehrere Buchstaben am Anfang,
  • ([0-9]+) → die gesuchten Ziffern (Fanggruppe 1),
  • $ → Ende der Zeichenfolge.

extractx(..., "", "$1") gibt nur die gefangenen Ziffern zurück.

number(...) wandelt diese Ziffernfolge in eine Zahl um.