今回は、管理部門でよくありそうな、カテゴリごとに管理番号を振っていくケースです。
例えば、
カテゴリ:AB,CD,EF,GH,IJ
という管理部門ごとに、物品番号を振っていく、などのように、
物品番号:AB0001,AB0002,CD0001,EF0001,EF0002,EF0003,,,,,
という管理番号を自動で作成したい、という時の実装です。
単純に連番であれば、フィールドの設定でシリアル番号が活用できますが、カテゴリごとに振る場合は、データの連番であるシリアル番号だと思ったことができませんよね。
この場合の実装は、3つの作業あります。
(1)連番を振りたいカテゴリごとに自己参照をする
(2)集計のフィールドを持つ
(3)スクリプトトリガで管理番号を作成する
です。
この3つを実装すると、↓のようにカテゴリごとに連番が作成できます。
では、実装していきましょう。
(1)連番を振りたいカテゴリごとに自己参照をする
「自己参照」、難しい言葉ですよね。
ここでは「同じ仲間、集まれ!」という手つなぎをしていると理解できていれば、OKです。
リレーションシップ画面で、同じテーブルのオカレンスを作り、カテゴリでリレーションを張ります。
↑これで、「同じ仲間」が集まれます。
(2)集計のフィールドを持つ
集計は、いくつかやり方があると思いますが、今回は手っ取り早く集計フィールドを持ちました。
データの中から、「同じ仲間」をカウントします。
(3)スクリプトトリガで管理番号を作成する
(1)と(2)の準備を行ったことで、カテゴリごとに連番が振れるようになりました。
これらのリレーション(手つなぎ)と集計を使って、スクリプトを仕上げます。
カテゴリが選択された際、同じカテゴリの数を数えて連番を作ります。
管理番号を構築する際、連番の桁数が決まっていることが多いので、その桁数になるように、Right関数を使っています。
今回は、4桁の連番という仕様にしました。
このやり方を覚えておくと、いろんな場面で使えますよ。
この実装の時注意することは、「自己参照」している先の集計を使う、というところです。
ちょっと難しいですよね。。。
↓自己参照で集まっているというイメージは、こんな感じでしょうか。
(あ、子供でないわんわんもいる。。。)
入力してみる
どうでしょう?
カテゴリごとに管理番号が振られているのがわかりますね。
では、楽しいFileMakerライフをお過ごしください。
追記 (2019/07/08)
続編を書きました。
【FileMaker】続・カテゴリごとに管理番号を振る インポート編
こちらもぜひ参考にしてください。
追記 (2019/07/26)
続々編を書きました。
【FileMaker】続々・カテゴリごとに管理番号を振る 最大値に追加
こちらもぜひ参考にしてください。
追記 (2019/10/22)
続々々編を書きました。
【FileMaker】続々々・カテゴリごとに管理番号を振る 名称を表示しつつコードの方を管理番号に採用
こちらもぜひ参考にしてください。