初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2016-04-04 17:17:24

test
Guest

英数の採番

お世話になっております。
この度FileMaker14で採番値の実装にてこずっておりましてお知恵を貸していただければと思っております。

現在値:A999
次の値:B001

現在値:Z999
次の値:ZA01

上記のような採番を行っていきたいのですが
どのような実装方法が考えられますでしょうか。
よろしくお願いします。

#2 2016-04-04 17:47:29

チポ
Member

Re: 英数の採番

> 現在値:Z999
> 次の値:ZA01

次の値は
  ZA001
では無いのですか?

また、
  ZZ
の次は?

Offline

#3 2016-04-04 18:02:11

test
Guest

Re: 英数の採番

チポ wrote:

> 現在値:Z999
> 次の値:ZA01

次の値は
  ZA001
では無いのですか?

また、
  ZZ
の次は?


次の値はZA001ではなく桁の都合上ZA01になります。
ZZのつぎはZZZ1になります。

#4 2016-04-05 09:20:33

チポ
Member

Re: 英数の採番

> ZZのつぎはZZZ1になります。
ZZA1
の間違いですよね。


採番順に1からシリアル番号を付け、それを加工します。

最初のアルファベット一文字の場合は
  Int ( ( シリアル - 1 ) / 999 )
で999レコードずつグループ化できますから、
それごとにアルファベットを割り当てればいいですね。

関数
  Char ( 65 )

  A
を返し、引数が1増えるごとにB・C・D・・・Zまで連続します。
ですから、アルファベットの部分は
  Char ( Int ( ( シリアル - 1 ) / 999 ) + 65 )
でいいですね。

数字部分は 0 を前に付けて3桁固定にしますから
  Right ( "000" & Mod ( ( シリアル - 1 ) ; 999 ) + 1 ) ; 3 )
でいいですね。

この二つを「&」でテキスト結合して出来上がりです。

アルファベット一文字はシリアルが
  26 * 999
以下ですから、これで条件分けします。
同様に二文字から四文字までを作ればいいですね。


全体を考えると採番できるレコード数は
  26 * 999 + 26 * 99 + 26 * 9 + 26 = 28808
となりますが、その程度で大丈夫なのでしょうか?

Offline

#5 2016-04-05 11:17:03

tim
Guest

Re: 英数の採番

Z001の次をAA01とかにしたら、増えるかな。
なんか順番がさっぱりわかりにくいですね^^;

#6 2016-04-05 11:24:47

barikan
Guest

Re: 英数の採番

1: A000
2: A001
~
999: A999
1000: B001

こんなデータのテーブルを作ってルックアップする。

#7 2016-04-05 11:25:28

Moz
Member

Re: 英数の採番

感想だけでスンマセン。
チポさんスゲェ(ノ゚ο゚)ノ

Offline

#8 2016-04-05 11:25:55

barikan
Guest

Re: 英数の採番

ルックアップの照合には普通のシリアル番号を使います。

#9 2016-04-05 11:30:37

test
Guest

Re: 英数の採番

すいません。。。

みなさんありがとうございました!!!

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 7 queries executed - Memory usage: 513.48 KiB (Peak: 518.02 KiB) ]