今回は、管理部門でよくありそうな、カテゴリごとに管理番号を振っていくケースです。
例えば、
カテゴリ: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】続々・カテゴリごとに管理番号を振る 最大値に追加]
(https://qiita.com/tyuma/items/6c78b30567a3cda84049)
こちらもぜひ参考にしてください。
追記 (2019/10/22)
続々々編を書きました。
【FileMaker】続々々・カテゴリごとに管理番号を振る 名称を表示しつつコードの方を管理番号に採用
こちらもぜひ参考にしてください。
追記 (2023/11/08)
お待たせしました!
こちらの記事で紹介している手順の動画が完成しました!
今更、、、ですが、公開から6年以上経ってもこの記事をとても多くの方にご覧いただいていることから、作り方の手順を別な方法でも残したいと思い、動画にしました。
ぜひ、参考にしてください!