【FileMaker】カテゴリごとに管理番号を振る (追記あり)

今回は、管理部門でよくありそうな、カテゴリごとに管理番号を振っていくケースです。

例えば、
カテゴリ:AB,CD,EF,GH,IJ
という管理部門ごとに、物品番号を振っていく、などのように、
物品番号:AB0001,AB0002,CD0001,EF0001,EF0002,EF0003,,,,,
という管理番号を自動で作成したい、という時の実装です。

単純に連番であれば、フィールドの設定でシリアル番号が活用できますが、カテゴリごとに振る場合は、データの連番であるシリアル番号だと思ったことができませんよね。

この場合の実装は、3つの作業あります。
(1)連番を振りたいカテゴリごとに自己参照をする
(2)集計のフィールドを持つ
(3)スクリプトトリガで管理番号を作成する
です。
この3つを実装すると、↓のようにカテゴリごとに連番が作成できます。
FMkanri1.png

では、実装していきましょう。

(1)連番を振りたいカテゴリごとに自己参照をする

「自己参照」、難しい言葉ですよね。
ここでは「同じ仲間、集まれ!」という手つなぎをしていると理解できていれば、OKです。
リレーションシップ画面で、同じテーブルのオカレンスを作り、カテゴリでリレーションを張ります。
FMkanri2.png
↑これで、「同じ仲間」が集まれます。

(2)集計のフィールドを持つ

集計は、いくつかやり方があると思いますが、今回は手っ取り早く集計フィールドを持ちました。
データの中から、「同じ仲間」をカウントします。
FMkanri3.png

(3)スクリプトトリガで管理番号を作成する

(1)と(2)の準備を行ったことで、カテゴリごとに連番が振れるようになりました。
これらのリレーション(手つなぎ)と集計を使って、スクリプトを仕上げます。

カテゴリが選択された際、同じカテゴリの数を数えて連番を作ります。
FMkanri4.png
管理番号を構築する際、連番の桁数が決まっていることが多いので、その桁数になるように、Right関数を使っています。
今回は、4桁の連番という仕様にしました。
このやり方を覚えておくと、いろんな場面で使えますよ。

この実装の時注意することは、「自己参照」している先の集計を使う、というところです。
FMkanri6.png
ちょっと難しいですよね。。。

↓自己参照で集まっているというイメージは、こんな感じでしょうか。
FMkanri7.png
(あ、子供でないわんわんもいる。。。)

入力してみる

FMkanri5.png
どうでしょう?
カテゴリごとに管理番号が振られているのがわかりますね。

では、楽しいFileMakerライフをお過ごしください。

追記 (2019/07/08)

続編を書きました。
【FileMaker】続・カテゴリごとに管理番号を振る インポート編
こちらもぜひ参考にしてください。

追記 (2019/07/26)

続々編を書きました。
【FileMaker】続々・カテゴリごとに管理番号を振る 最大値に追加
こちらもぜひ参考にしてください。

追記 (2019/10/22)

続々々編を書きました。
【FileMaker】続々々・カテゴリごとに管理番号を振る 名称を表示しつつコードの方を管理番号に採用
こちらもぜひ参考にしてください。