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

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

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

You are not logged in.

Announcement

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


#1 2022-05-11 15:28:03

菌類
Guest

枝番を作成したい

お世話になります。超初心者です。

タイトル 国 ジャンル 番号
100   23 a    100-23-a001
100   11 a    100-11-a001
201   54 b    201-54-b001
156   54 c    156-54-c001
100   23 a    100-23-a002
201   54 b    201-54-b002

というように3桁の枝番付きの番号をつけたいです。
タイトル、国、ジャンルはそれぞれテーブルを作成し、ルックアップでコードを抜き出した結果となっています。
SerialIncrementなどひととおり調べたのですが、うまくいかず、、

なお、この番号はレコード固有のものとしたいです。
(前のレコードが削除された場合、その番号は採用しない)

何度も何度も投稿された質問かと思うのですが、過去レスにあるサンプルデータがダウンロードできないなどと、なかなか答えに辿り着けないまま今に至っています。

どなたかご教示いただけませんでしょうか。。
何卒よろしくお願いいたします。

#2 2022-05-12 08:55:01

himadanee
Guest

Re: 枝番を作成したい

タイトル、国、ジャンルで自己リレーションして降順ソートした番号フィールドを参照して計算値自動入力すればいいのでは。
Let ( b = リレーション先テーブル::番号 ;
SerialIncrement ( Case ( b = "" ; タイトル & "-" & 国 & "-" & ジャンル & "000" ; b ) ; 1 )
)

入力が3フィールドそろうまで計算しないように細工しないとだめかな。既存値を置き換えるとか。
間違えて3フィールドのどれかを変更してしまった場合とかの対処が必要かな?

#3 2022-05-12 16:40:45

Shin
Member

Re: 枝番を作成したい

> この番号はレコード固有のものとしたいです。
> 前のレコードが削除された場合、その番号は採用しない
この条件は、かなり面倒です。
もし、最終の 201   54 b    201-54-b002 が削除された後の場合、201   54 b    のグループにレコードを追加しようとすると、存在するレコードを基に採番すると 201   54 b    201-54-b002 となります。これは条件に反するのでダメですよね。これを避けるには、グループ毎のシリアルを管理するテーブルを追加するか、レコードを削除しない構造が必要でしょう。

Offline

#4 2022-05-13 13:40:09

菌類
Guest

Re: 枝番を作成したい

himadanee様、Shin様 ありがとうございます。

himadanee様のご助言により番号が作成できました。
また、Shin様のおっしゃるように重複しない連番の作成が難しいようであれば、レコード削除しないよう、人間の方で工夫したいと思います。(そもそも滅多にないことではあるので)

ただ、ご想像のとおり、

himadanee wrote:

入力が3フィールドそろうまで計算しないように細工しないとだめかな。既存値を置き換えるとか。
間違えて3フィールドのどれかを変更してしまった場合とかの対処が必要かな?

「3フィールドのどれかを変更してしまった場合」に、枝番がどんどんカウントされていってしまいます。。
そもそも、既存のレコードに番号をつけていきたいのですが、フィールドが埋まっていない、または正しく選択されていないレコードがほぼ全てです。
なので、すべてのフィールドが確定してから番号を決定することは可能でしょうか。

ご教示いただけますと幸いです。。

宜しくお願いいたします。

#5 2022-05-15 23:04:09

himadanee
Guest

Re: 枝番を作成したい

Case ( Count ( タイトル ; 国 ; ジャンル ) = 3 ; 計算式 )
とすれば、3つとも入るまでは空のままになります。

#6 2022-05-16 08:57:26

Shin
Member

Re: 枝番を作成したい

3フィールドのいずれかが変更されれば、新しいレコードとして扱わないといけないのでは。(内容はレコードをコピーして移行)
その意味で、シリアル番号を管理する別テーブルがあると、比較的簡単に管理できますよ。これでしたら、管理テーブルとのリレーションキーを書き換えるだけでいいです。

Offline

#7 2022-05-16 13:21:56

菌類
Guest

Re: 枝番を作成したい

himadanee様
ありがとうございます。早速導入いたしました。

Shin様
ありがとうございます。

Shin wrote:

3フィールドのいずれかが変更されれば、新しいレコードとして扱わないといけないのでは。(内容はレコードをコピーして移行)
その意味で、シリアル番号を管理する別テーブルがあると、比較的簡単に管理できますよ。これでしたら、管理テーブルとのリレーションキーを書き換えるだけでいいです。

お頼みしてばかりで申し訳ありません。具体的なやり方をお教えいただけませんでしょうか。。
色々と考えてはみたのですが結局混乱してしまいました。

#8 2022-05-16 14:46:20

Shin
Member

Re: 枝番を作成したい

Offline

#9 2022-05-18 14:32:08

菌類
Guest

Re: 枝番を作成したい

Shin様

ご親切にありがとうございます!!大変勉強になりました。

ちなみに、、修正時のダイアログにある各項目をドロップダウンにすることは可能でしょうか?
元々の入力も値一覧でドロップダウンで選択するようにしています。

#10 2022-05-18 15:37:10

Shin
Member

Re: 枝番を作成したい

サンプルではカスタムダイアログを使っているのでそのままでは無理ですが、それを別の構造を取れば可能です。
例えば、カードウインドウとかポップアップで同様の表示を作るとか。
または、有料の物が多いですが、プラグインを使ったダイアログにするとか。

Offline

#11 2022-05-23 10:58:33

菌類
Guest

Re: 枝番を作成したい

Shin様

お礼が遅くなりまして申し訳ありません。
ご助言ありがとうございます。
カードがよさそうです。もう少し勉強してみます。
大変助かりました!

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 524.46 KiB (Peak: 529.37 KiB) ]