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

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

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

You are not logged in.

Announcement

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


#1 2021-07-29 16:48:46

nice-guy
Member

分類ごとのシリアル番号の付け方

皆さん、こんにちは。Win版V18を使っています。
下記の様なルールでシリアル番号を振りたいのです。

分類テーブル
00  Aタイプ
01  Bタイプ
02  Cタイプ
04  Dタイプ

ここで、Aタイプのデータを作成したらシリアル番号は
00-0001~
Bタイプのデータを作成したらシリアル番号は
01-0001~

の様に分類番号 0X-000X   0から始まる4桁数字

これをシリアル番号のフィールド定義の自動化入力オプションの所に設定したいのですが、どのように記述したら良いか教えてください。
前半はCase関数でいけると思うのですが、後半をどうしたらよいのでしょう?
よろしくお願いします。

Offline

#2 2021-07-31 22:25:36

ブランコ
Member

Re: 分類ごとのシリアル番号の付け方

テーブルの構造がよくわからないですが、分類テーブルと詳細テーブルは別ですか?別であると仮定して説明しますね。
まず詳細テーブルに
分類フィールド(00-04を格納するフィールド)
シリアル値フィールド
を作成します。

次に分類フィールドをターゲットに自己連結リレーションを張ります。
自己連結のテーブルを[詳細テーブルS]とします。

シリアル値フィールドの入力値の自動化:計算値の所に
SerialIncrement ( "0001" ; max ( 詳細テーブルS::シリアル値 ) )
とし、[既存値が存在]のチェックを外しておきます。これで4桁のシリアル値は取得できます。

あとは、ビジュアル的に0X-XXXXが欲しいなら分類フィールドとシリアル値フィールドを組み合わせてレイアウト上に配置すればいいし、
データ格納として0X-XXXXが欲しいならもう一つ計算フィールドを作って書き出してあげればいいです。

これは個人的な意見なので正しいかどうかはわかりませんが、セパレータにハイフンを使うと、データ加工時にソフト側がハイフンなのか算術演算子なのか判断出来ないため、バグの原因になるのであまりオススメしません。

Offline

#3 2021-08-01 15:57:41

nice-guy
Member

Re: 分類ごとのシリアル番号の付け方

ブランコさん、回答ありがとうございました。
その後、ちょっと運用を変更しました。このリストはDM用のリストで、タウンページからデータ取得を取得します。当初はデータ取得時にシリアルNOを発行しようと思っていたのですが、ダブりや廃業したところも載っているので、その中から選別したものに対してだけシリアル値をスクリプトで振るようには出来ました。ですので、運用は出来るようになりました。
セパレーターにハイフンを使わない方が良いとのご指摘、確かにそうなので変更するようにします。
さて、せっかく教えていただいたので、試したところどうもうまくシリアル値が入力されません。
作ったファイルは下記にあります。
https://www.dropbox.com/s/tpyfblczw8gvb … fmp12?dl=0
どこがいけないのでしょう?データ作成時に分類NOが入っていないせいのような気がします。
よろしくお願いします。

Offline

#4 2021-08-01 18:52:35

ブランコ
Member

Re: 分類ごとのシリアル番号の付け方

ファイルを拝見させていただきました。

シリアル値フィールドの入力値の自動化:計算値の所に
SerialIncrement ( "0001" ; max ( 詳細テーブルS::シリアル値 ) )
ここの説明が不足していました。すみません。

ここの画面下の

すべての参照フィールドが空の場合は評価しない

のチェックを外して下さい。それでうまく動作します。

このような分類でシリアル値を振る仕組みでは、途中で分類の変更をするとシリアル値が無茶苦茶になるので
可能であれば作成時以外は値の変更を禁止する仕組みを取り入れた方がよいです。

Offline

#5 2021-08-01 22:37:54

nice-guy
Member

Re: 分類ごとのシリアル番号の付け方

ブランコ さん、回答ありがとうございました。

>>すべての参照フィールドが空の場合は評価しない
これでうまく行きました。どうもありがとうございました。

SerialIncrement

古くからこんな関数があるんですね。初めて知りました。
使えそうです。
どうもありがとうございました。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.009 seconds, 7 queries executed - Memory usage: 513.88 KiB (Peak: 518.78 KiB) ]