2016年2月2日火曜日

書類の通し番号で「000001」のように桁数をそろえる(0埋めをする)

こんにちは!

今回は「書類の通し番号で「000001」のように桁数をそろえる(0埋めをする)」です。

印刷やPDFなどに出力して、部署間のやり取りに使ったり、見積書や納品書、請求書のようにお客様などに提出する書類では必ず、その書類を識別するために番号を付けます。

見積書番号や請求書番号といった名称で使用する番号です。

通常は、入力値の自動入力オプションでシリアルを設定したものを使用していると思います。

市販されているソフトでは、「000001」となっているのが多くありますし、その方が見栄え的にも少し良くなります。

ここでは6ケタになるように、それ以下の数字の場合0を付けるようにしたいと思います。

方法としてはいくつかありますので、ご紹介していきます。好みに応じて使い分けをしていただければいいかと思います。

方法1 すでにシリアル値を設定されるフィールドがある場合

すでにシリアルを設定してあるフィールドがあり、後で付け足す場合です。

シリアルが入るフィールド=「ID」というフィールドとします。

Right ( 00000 & ID ; 6 )

この計算式を新しく作るフィールドに設定するだけです。

これは、計算フィールドではなく、テキストフィールドがいいでしょう。


方法2 新しく作る場合

方法1では既存のものに追加しましたが、今度は新しくテーブルを作成しフィールド設定をする場合です。

この方法では、シリアル値の入るフィールドを使いません。

ファイルメーカーでは隠れシリアルキーのような数字であるレコードIDというIDが隠れています。

どのテーブルにも設定されているIDで、当然のことながら他と重複しません。これは、関数で知ることができます。

Right ( 00000 & Get( レコードID ) ; 6 )

先ほどとほとんど変わりません。この式をテキストフィールドの自動計算に設定すればいいでしょう。

ポイント

ポイントとしては、Right関数の引数に 「00000 &」という部分です。

ファイルメーカーを触り始めて、慣れていない方だとなかなかこの発想にたどり着かないことがあります。

こういったケースでは、シリアル番号の桁数を調べて、足りない部分が何ケタかを計算して、その分を足そうとするのが普通の発想かもしれません。

しかし逆に、最高でも0は5つという点に着目して、とりあえず「00000」とシリアルを付け、それから6ケタに調整するというやり方が非常に簡単です。

このやり方は、年と月をくっつけて月を識別する数字を作る場合も同じです。

月は1ケタの場合も2ケタの場合もあります。そのままつけてしまうと、ソートしたときにつき順に並びませんので、この場合も月に「0」を付けて、2ケタに調整していきます。