自動でナンバーを振ってくれるスクリプトを作ろう
ninoxのサンプルのCustomer Relation Management の中のOfferesテーブルの Tigger on new recordのスクリプト
1 let myLastNumber := last(((select Offers where 'Offer number') order by 'Offer number').number(extractx('Offer number', "\d+"))); 2 'Offer number' := "AN" + format(myLastNumber + 1, "000000")
extractxは正規表現を使って対象を取り出す関数。
\dは正規表現で、数字で有る事を表している。後に続く+は繰り返し。
これは、「AN000001」と言った番号から次の番号を得るためのスクリプト。
こんなにややこしくしなくてもただ、ナンバーが振られていれば良いのなら、
1 let i := number(max((select '見積・請求DB2015').No_fld)); 2 No_fld := i + 1
No_fldと言うフィールドが作ってあり、他から読み込んだ数字がすでに入っていると仮定しています。
1行目、変数iを宣言して、「見積DB」テーブルの「No_fld」の最大値をiへ入れています。
2行目、「No_fld」フィールドへ変数iに1加えた数を入れています。
セミコロンが必要ないのは1バイト文字でスペース無しだから