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

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

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

You are not logged in.

Announcement

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


#1 2015-07-06 04:42:09

eddie
Member

リレーション元のデータの取得

いつもお世話になっております。FMP11 Mac 使用です。

台帳にて、案件の受理日を記録しています。
そして、その案件から派生した案件には新たに受理日を記録するのですが、同時に元の案件の受理日を「元案件受理日」として表示させる必要があります。

受領日と元案件受領日は同じテーブル上のフィールドで、テーブルを複製して受理番号でリレーションを組んでいます。

このとき、案件の派生が一段階しかなければ簡単なのですが、例えば親→子→孫→ひ孫と派生していったときに、ひ孫のレコードの「元案件受理日」には親の受理日を自動で入力したいのです。どのような方法が考えられるでしょうか?この例では子や孫の受理日は、ひ孫レコードには不要です。というより、間違って子や孫の受理日を手入力してしまわないように、自動で親の受理日を入力したいのです。

お知恵をお貸しいただけると幸いです。
よろしくお願いいたします。

Offline

#2 2015-07-06 08:45:17

Shin
Member

Re: リレーション元のデータの取得

受理番号がキーですので、日付で昇べきにソートしたリレーションで取得するだけで良いのでは。

Offline

#3 2015-07-06 09:11:28

calcer
Guest

Re: リレーション元のデータの取得

親→子→孫→ひ孫が全部同じ受理番号を持ってるということですか?違うと思うけど。
各自が「自分の親」へのリレーションを持ってるとすれば、
Case(親::元案件受理日;親::元案件受理日;親::受理日)
とすれば親が派生してる時は大本からひっぱってこれる。

#4 2015-07-06 19:45:23

eddie
Member

Re: リレーション元のデータの取得

Shinさま、calcerさま、
早速のご回答ありがとうございます。
読み返しましたが、質問がわかりづらく、不正確でした。申し訳ありません。

実はそのテーブルには「受理番号」と「元案件受理番号」の2つのフィールドがあり、これらでリレーションを組んでいます。正確な内容をお伝えせず申し訳ありませんでした。

つまり、
【親】受理番号ーーー【子】元案件受理番号
【子】受理番号ーーー【孫】元案件受理番号
【孫】受理番号ーーー【ひ孫】元案件受理番号
というリレーションになっています。

calcerさまにお教えいただいた
> Case(親::元案件受理日;親::元案件受理日;親::受理日)
この式を試してみたのですが、うまく動作しないようです。

計算式入力の画面で「次のコンテキストからこの計算式を評価する」のテーブルを複製した台帳にして、Case内をオリジナルの台帳にしたのですが、これが誤っているでしょうか?

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

Last edited by eddie (2015-07-06 19:45:54)

Offline

#5 2015-07-06 23:42:12

Shin
Member

Re: リレーション元のデータの取得

そのリレーションでも、リレーションマップで、

親    子       孫      ひ孫
受理番号ー元案件受理番号
     受理番号   ー元案件受理番号
             受理番号   ー元案件受理番号

というリレーションを張っておけば、親::受理番号 を参照すれば、親の受理番号が得られますが。

Last edited by Shin (2015-07-06 23:43:04)

Offline

#6 2015-07-07 01:42:49

eddie
Member

Re: リレーション元のデータの取得

Shinさま
ありがとうございます。
そのリレーションにしたところ、子ではうまくいきましたが、孫以降ではひとつ上の受理日が出てしまいます。

「元案件受理日」は計算フィールドで、「次のコンテキストからこの計算式を評価する」を子テーブルにして、計算結果を「親::受理日」にしているのですが、これが孫以降にどう影響するのかわかりません。

理解が悪く申し訳ありません。引き続きよろしくお願いいたします。

Offline

#7 2015-07-07 09:07:52

チポ
Member

Re: リレーション元のデータの取得

親→子→孫→ひ孫

と考えるから面倒になるので、
親か、親以外と考えていいのでは。

で、目的は
親以外は親の案件受理日を得る。

ですよね。


ならば、

「受理番号」と「元案件受理番号」の2つのフィールドがあり

この二つで自己リレーションすれば、
元案件受理番号と照合する受理番号は、必ず親の受理番号でしょう。

Offline

#8 2015-07-07 09:11:05

Shin
Member

Re: リレーション元のデータの取得

孫テーブルから親::受理日を参照するには、孫テーブルから評価しないと駄目ですよ。曾孫からですと曾孫テーブルから評価です。

Offline

#9 2015-07-07 09:21:44

チポ
Member

Re: リレーション元のデータの取得

え!

テーブルは一つではないのですか?

とすれば、私はまったくの間違いです。

Offline

#10 2015-07-07 12:32:01

eddie
Member

Re: リレーション元のデータの取得

チポさま
ご回答ありがとうございます。

わかりづらくて申し訳ないのですが、親→子→孫→ひ孫と派生していくときに、元案件受理番号に入力するのは、ひとつ上の段階の受理番号なのです。
例)ひ孫レコードの元案件受理番号には孫の受理番号を入力

その上で、「元案件受理日」には常に親の受理日を表示させたいのです。最初からこう明確に記載すべきでした。申し訳ありません。


Shinさま
>孫テーブルから親::受理日を参照するには、孫テーブルから評価しないと駄目ですよ。曾孫からですと曾孫テーブルから評価です。
ありがとうございます。
これはどのようにすればよいでしょうか?リレーションマップ上で仮想的にテーブルを複製していますが、実際のテーブルはひとつしかないので、「元案件受理日(計算フィールド)」の設定は1つしかできないように思います。現在はそこで子から評価して親レコードを参照するようにしています。

質問がまずく理解度も低いため何度もお手数をお掛けしてしまい恐縮です。どうぞよろしくお願いいたします。

Offline

#11 2015-07-07 13:12:44

チポ
Member

Re: リレーション元のデータの取得

ならば、

親は元案件受理日に案件受理日を入力。

子以下は、直上の元案件受理日をルックアップで入力。
そのようにルックアップでつないでゆけるでしょう。

Offline

#12 2015-07-08 03:22:23

eddie
Member

Re: リレーション元のデータの取得

チポさま

ありがとうございます!うまくいきました。

計算フィールドにして、子テーブルから評価して、
If ( IsEmpty(元案件受理番号) ; 受理日 ; 親::元案件受理日 )
として、元案件受理番号が入力されている場合のみ親の元案件受理日を引っ張ってくるようにしました。
非常に大きなヒントをいただき大変助かりました。ありがとうございました。

Offline

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: 525.65 KiB (Peak: 546.2 KiB) ]