在 Ninox 中操作記錄 ID

Ninox 中的記錄 ID

  • Ninox 中每一筆新記錄都會取得一個唯一的 ID(識別碼)。
  • 新表格的編號從 1 開始,每新增一筆就加 123 等等)。
  • **被刪除的 ID 不會重新配發。**因此,表格中最大的 ID 反映的是曾經建立過的記錄總數,包含那些已被刪除、不再看得到的記錄。
  • ID 的表示方式:
    • ID 可以用數字或文字表示。
    • 以文字表示時,ID 由表格的 ID(一個或多個大寫字母)加上記錄編號組成。
      例如:"A1"

關於 ID 的重點

  • 把 ID 轉換成文字:
    • string() 函式取得 ID 的文字表示。
    • text() 函式只會把 ID 的數字部分轉成文字。例如:"1"
  • 範例:
string(maTable.id); // Correct textual representation, e.g., "A1"
text(maTable.id);   // Only the numeric part as text, e.g., "1"
  • 在運算式中使用 ID:
    • 進行算術運算或字串串接時,ID 會採用另一項資料的型別。
  • 範例:
var t := "Num ID: " + maTable.id;

輸出:Num ID: 1

依 ID 搜尋記錄

若要在 where 子句中依 ID 取得記錄,數字或文字表示皆可使用。

使用數字:

select Customer where id = 1;

使用文字:

使用文字時,請確認 ID 同時包含表格的 ID 與記錄編號。

例如:

select Customer where id = "B1";

從 ID 中取出記錄編號

這個函式可以從文字形式的 ID(例如 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) 把 ID 轉換成文字。

RegExp ^[A-Z]+([0-9]+)$ 的意思是

  • ^[A-Z]+ → 開頭是一個或多個字母,
  • ([0-9]+) → 我們要的數字(捕捉群組 1),
  • $ → 字串結尾。

extractx(..., "", "$1") 只回傳捕捉到的數字。

number(...) 把那串數字轉換成數值。