パソコン情報

【FileMaker Pro】テキストに付加させた連番を振る方法

やりたい事

ABC001~とかの連番を振りたい

 

8桁の日付に連番を振る方法

まず考えたのは、20230901+001という連番を採番するスクリプトを探しました。

そもそも、日付を8桁の数字にする方法もしらないし・・・

ココがポイント

Year ( Get ( 日付 ) ) * 10000 + Month ( Get ( 日付 ) ) * 100 + Day ( Get ( 日付 ) )

これで、8桁の数字にはできるようです。

あとは、「変数+1」でループでレコードの数だけ回して行けばOKですね。

ただし、連番を3桁にする場合は、下記のように1000倍しないとダメですね。

Year ( Get ( 日付 ) ) * 10000000 + Month ( Get ( 日付 ) ) * 100000 + Day ( Get ( 日付 ) ) * 1000

 

あとから別の方法がある事がわかりました。

ココがポイント

Year ( Get ( 日付 ) )  & Right ( "00" & Month ( Get ( 日付 ) ) ; 2 )  & Right ( "00" & Day ( Get ( 日付 ) ) ; 2 )

こちらの方法でも、8桁の日付数値が出せるようでした。

 

ABCとかのテキストに連番を付加

たとえば、日付じゃなくて、テキストに連番を採番したい時はどのようにやるのだろうか!?

これは、実際にやってみたら簡単でした。

フィールドをテキストフィールドにしてあることが前提になります。

ココがポイント

連番を採番する変数を「&」で接合すればOK

 

日付とテキストに連番を付加

 

今回は、日付を数値にして連番をやるというのではなく、間にテキストを入れてしまえば、上のようにやれば、日付+テキスト+連番という感じになります。

ちなみに、最後の連番の桁を揃えたい場合は、

ココがポイント

Right ( $変数; 3 ) ※3桁の場合

とやれば、3桁に統一出来て、頭に0が付加される形になります。

 

新規レコードの場合

新規レコードにて、頭にテキスト文字を付加したり、日付を付加する方法はどうやればいいのでしょうか?

フィールドオプションにて、「シリアル番号」から新規レコードを追加した時に自動で連番を振る機能はありますが、これでは、頭に何かつけたい時には対応してなさそうですね。

ネット上をサクッと検索してみましたが、それに相当する記事は見つかりませんでした。

スクリプトを組んで、何かのトリガが発生した時に、自動入力させるような感じかとは思いますが、何かパッとしませんね。

あとは、シリアル番号だけ最初に自動入力させた後に、変換させる方法などが思いつきますね。