在 Ninox 中操作記錄 ID
Ninox 中的記錄 ID
- Ninox 中每一筆新記錄都會取得一個唯一的 ID(識別碼)。
- 新表格的編號從
1開始,每新增一筆就加1(2、3等等)。 - **被刪除的 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(...) 把那串數字轉換成數值。
