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

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

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

You are not logged in.

Announcement

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


#1 2022-02-21 16:01:28

jjj
Member

レコードをまたいだ入力判断の計算式

環境
FileMakerPro19&Server
OS:Windows10

指示書のテーブルに、
以下のフィールドを設けています。
「指示書No」...レコード作成時に順にユニークな数を自動入力
「納品日」...希望日入力
「リピート元No」...以前作った指示書と同じものをリピート注文する際、その元になった指示書のNoを入力
「データ保存期限」...原則的に「納品日」の2年後の日付となるが、リピートがあった場合、そのリピートの「納品日」起算の2年後の日付にしたい

この「データ保存期限」には、どのような計算式を入れれば良いでしょうか?
レコードをまたがる検索となる?!と未経験でわかりません(そもそも出来るのかも)。

ご教授お願いできますでしょうか?
宜しくお願い致します。

Offline

#2 2022-02-21 16:35:26

チポ
Member

Re: レコードをまたいだ入力判断の計算式

リピートが複数回ある場合はどう考えますか?

Offline

#3 2022-02-21 16:58:59

jjj
Member

Re: レコードをまたいだ入力判断の計算式

チポさん
都度都度の前回の指示書Noを入れていってもらおうかと思っています。

Offline

#4 2022-02-21 17:04:36

jjj
Member

Re: レコードをまたいだ入力判断の計算式

加えて、指示書Noを入力された指示書では、「データ保存期限」を空欄にしたいと思っています。
そうすれば、指定した日付で検索をかければ、どのデータを削除してよ良いかが一覧で出せると考えています。

Offline

#5 2022-02-21 17:12:10

チポ
Member

Re: レコードをまたいだ入力判断の計算式

あれ、読み違えているか?

> 「データ保存期限」...原則的に「納品日」の2年後の日付となるが、
> リピートがあった場合、そのリピートの「納品日」起算の2年後の日付にしたい

初回、リピート
とあった場合のデータ保存期限は
初回の期限をリピートが継ぐのでしょうか

もしそうなら、
リピート2は?

Offline

#6 2022-02-21 17:22:09

jjj
Member

Re: レコードをまたいだ入力判断の計算式

>初回、リピート
>とあった場合のデータ保存期限は
>初回の期限をリピートが継ぐのでしょうか
リピート時は、初回の期限は引き継ぎません。リピート時の納品日起算2年後に変更、
初回の指示書のデータ保存期限は空欄、としたいです。

リピート2となった場合、リピート2の納品日起算2年後に変更、
2回目の指示書のデータ保存期限は空欄、としたいです。

要は、2年間以内にリピートかかれば都度最新の指示書ベース2年後までデータは取っておく。
2年以上次の指示書がなければデータを削除する。
と言う風にさえできれば良いのです。
これを実現するために考えたのが、この方法でしたが、
根本的にもっと簡単に行う方法があれば、こだわりはございませんので、
そちらを教えていただければと思います。

Offline

#7 2022-02-21 17:34:37

チポ
Member

Re: レコードをまたいだ入力判断の計算式

ならば、
初回でも、リピートでも
そのレコードの納品日で起算すればいいということですよね。

で、
リピートがある場合は初回のレコードの期限を空白にする。
ですよね。


リピートの有無は
指示書Noとリピート元No
で自己リレーションし、
指示書Noの方から見て関連レコードが有ればリピートがある
ということですね。


期限を過ぎたから、そのレコードは削除
はお勧めできませんネ

Offline

#8 2022-02-21 20:39:48

jjj
Member

Re: レコードをまたいだ入力判断の計算式

チポ wrote:

ならば、
初回でも、リピートでも
そのレコードの納品日で起算すればいいということですよね。
で、
リピートがある場合は初回のレコードの期限を空白にする。
ですよね。

リピートがある場合は、初回および、その後最新のリピートの手前までは空白にしたいです。
(そこまでに日付が入ってしまうと、その日にデータを消さないといけない事になってしまう為)

チポ wrote:

リピートの有無は
指示書Noとリピート元No
で自己リレーションし、
指示書Noの方から見て関連レコードが有ればリピートがある
ということですね。

そうですね。
自己リレーションですか。
なるほど、なのですが、複数回のリピート時などどのように設定すれば良いのかわかりません(汗)。

チポ wrote:

期限を過ぎたから、そのレコードは削除
はお勧めできませんネ

はい、それはもちろん、そうだと思います。
別途「削除済」かなにかのフィールド作って、チェックを入れないと消えない様な設定にしたいと思います。

Offline

#9 2022-02-21 21:01:31

Shin
Member

Re: レコードをまたいだ入力判断の計算式

伝票を1枚ずつに見るので、面倒なんですよ。
指示書1枚で、1品目だと思いますが、発注者と品目で自己リレーションしておき、その最新の指示日をみて、それが2年以上だと表示しない、という動きを作ればいいのでは。

2年経てば削除、という運用は、私も賛成しません。

Offline

#10 2022-02-21 23:01:38

jjj
Member

Re: レコードをまたいだ入力判断の計算式

Shin wrote:

伝票を1枚ずつに見るので、面倒なんですよ。
指示書1枚で、1品目だと思いますが、発注者と品目で自己リレーションしておき、その最新の指示日をみて、それが2年以上だと表示しない、という動きを作ればいいのでは。

発注者と品目で自己リレーションしました。
「その最新の指示日をみて、それが2年以上だと表示しない」と言うのは、具体的にどのようにすればよいのでしょうか?

Shin wrote:

2年経てば削除、という運用は、私も賛成しません。

すみません、今更気づきましたが削除と言うのは、レコードを削除すると言う事ではなく、この日付に基づき保存していた実物のaiデータを削除すると言う事でした。誤解させてしまい、申し訳ありません(汗)。

Offline

#11 2022-02-22 08:50:33

Shin
Member

Re: レコードをまたいだ入力判断の計算式

そのリレーションを使って、 Max ( リレーション::指示日 ) を求めます。それが最新の指示日です。

Offline

#12 2022-02-22 09:12:16

チポ
Member

Re: レコードをまたいだ入力判断の計算式

> 都度都度の前回の指示書Noを入れて
こう書かれていますから、
例を挙げると

               指示書No    リピート元No     データ保存期限
      初回       123               空             リピート1の時点で空
リピート1     234             123            リピート2の時点で空
リピート2     345             234            24/02/22(このレコードの納品日の2年後)
                                       ↑
                (これは初回の123ではないですよね?)

でいいんですよね?

ならば、#7のレスの通りでいいでしょう。

Offline

#13 2022-02-22 11:00:37

jjj
Member

Re: レコードをまたいだ入力判断の計算式

Shinさん、チポさん、
お二方に教えいただいた両方の方法、実現できました!
おかげさまで、自己リレーションについて、少し理解が深まったと思います。
ありがとうございました!

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 546.25 KiB (Peak: 566.79 KiB) ]