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

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

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

You are not logged in.

Announcement

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


#1 2015-01-13 21:45:00

やまほん
Member

シリアルのふりなおし

いつも参考に拝見しております。
ver.8です。

1,2,3,4・・・とシリアルが10000レコード程度ふってあります。
それぞれ日付が入っているレコードで、日付順にソートし、ふっています。

1 4月3日
2 4月4日
3 6月15日
4 7月9日
5 10月10日

後日、レコードの追加で日付が増えます。
シリアルをふりなおす必要がでてきます。

1 4月3日
2 4月4日
3 6月15日
4 7月9日
8月20日 ←これが追加される
5 10月10日

↓ こうしたいんですが。

1 4月3日
2 4月4日
3 6月15日
4 7月9日
5 8月20日
6 10月10日

いままでは対象レコードすべてソートして全置換でふりなおしていました。
レコード数が多いとやはり全置換に時間がかかります。

例えば、9000以前は変更がなく9001以降で変更が生じる場合、
その部分だけふりなおせばその分時間は短くなります。
それは考えればわかるのですが、、、。
そのやり方がわかりません。

今、行き詰っているのは、
ふりなおしを開始するレコード番号がわからない です。

それがわかれば、その一つ前のレコードのシリアルを見て、
その次のシリアル値からふりなおしができるかと思うのですが。

それともこのような場合は全置換ではなく、自己リレーションで
カウントして取得するのが通常のやり方なのでしょうか?

よろしくお願いいたします。

Offline

#2 2015-01-14 08:57:31

旅人
Member

Re: シリアルのふりなおし

そんなにころころ変わるシリアルにどんな意味がわからないけど
ソートににかかる時間は気にならないのなら
新しく追加したレコードをアクティブにして全レコード表示して
ソート
前のレコードに移動
変数を設定 $s 値 シリアル値
Loop
  次のレコードに移動 最後で終了
  フィールド設定 シリアル $s+1
  変数を設定 $s  シリアル
End Loop
などでも行けそう。

Offline

#3 2015-01-14 09:49:08

sorter
Guest

Re: シリアルのふりなおし

日付<=日付
のリレーションで関連レコードへ移動すれば、ふり直すレコードだけになる。
初期値は、対象外のレコード数+1

#4 2015-01-14 10:30:28

旅人
Member

Re: シリアルのふりなおし

そっ、それが簡単ですね。

Offline

#5 2015-01-14 11:37:36

Shin
Member

Re: シリアルのふりなおし

一度だけの作業でしょうから、数分かかっても良いのでは。全レコードをソートして、全置換でも良いのでは。
ですが、そのようなシリアル番号、って意味が有るの?

Offline

#6 2015-01-14 13:04:18

やまほん
Member

Re: シリアルのふりなおし

みなさまありがとうございます。

おっしゃるように、シリアルがコロコロかわっては意味が無い事はわかっております。
おそらくDBの作り方自体に問題があるんだと思います。
運用をとめられないので一旦sorter様案を使い、作り直しも同時にすすめることにします。
ありがとうございました。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 510.75 KiB (Peak: 517.81 KiB) ]