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

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

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

You are not logged in.

Announcement

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


#1 2024-01-06 12:14:32

関連テーブルの計算

顧客テーブル(マスター)の顧客主キーと、サービスBテーブル(イベント)の顧客外部キーをリレーションしています。
サービスBで顧客年齢を計算しようと、サービスBの年から顧客生年を引き算したいのですが、顧客テーブルが非関連テーブルとなっています。
サービスBのレイアウトでは、顧客情報は関連テーブルから表示できています。
計算の場合は、リレーション方法にコツがあるのですか?

Offline

#2 2024-01-06 12:22:21

himadanee
Guest

Re: 関連テーブルの計算

顧客テーブルのオカレンス(リレーショングラフ上での複製)が沢山あって、計算式のダイアログで選択するときに間違えてるのでは。

#3 2024-01-06 21:34:12

Re: 関連テーブルの計算

アドバイスありがとうございます。
実体テーブル同士(テーブル作成時に自動的にできるTO)でリレーションすると、顧客テーブルが関連テーブルになって、計算できました。
コピーしたTOでも、同じ働きをするはずなのに、よくわかりません。

Offline

#4 2024-01-06 22:47:46

himadanee
Guest

Re: 関連テーブルの計算

同じ働きではなく、グラフ上での結合状態によって働きは変わります。
計算フィールドなら、設定画面上部の「次のコンテキスト~」と計算式内のテーブル::フィールドの指定が大事です。

#5 2024-01-07 22:53:34

Re: 関連テーブルの計算

サービスAテーブル(イベント)で、同様の計算フィールドを作ったら、うまくいっています。何が良かったのかいけなかったのかよくわかりません。
またいろいろ試行錯誤して返信いたします。

Offline

#6 2024-01-07 23:19:12

Shin
Member

Re: 関連テーブルの計算

例えば、テーブルAとテーブルBがあったとして、それぞれにTOが2個あり、次の様なリレーションがあると
テーブルA 0.   テーブルB 0
   フィールド0 -   フィールド0
テーブルA 1.   テーブルB 1
   フィールド1 -   フィールド1
計算フィールドでコンテキストを、テーブルA 0とするか、テーブルA 1にするか、でリレーション先のテーブルBの関連レコードが変わります。

Last edited by Shin (2024-01-08 11:42:49)

Offline

#7 2024-01-08 10:30:04

チポ
Member

Re: 関連テーブルの計算

リレーションがいろいろあって、
サービスB2-- 顧客
のようなTOになっていると、
サービスBで顧客を参照することはできませんね。

Offline

#8 2024-01-08 18:17:42

Re: 関連テーブルの計算

皆様、ありがとうございます。計算フィールドは、実体テーブルにあるものだから、どのTOでリレーションがあっても、関連テーブルに載ると思っていました。
理解してうまく行ったのか、偶然できているのか、まだまだ奥が深いです。

Offline

#9 2024-01-09 09:52:58

Shin
Member

Re: 関連テーブルの計算

実体でいうと、例えば
東西の窓がある部屋の中に居るとします。部屋がテーブル、窓の外の景色がTO だと考えてください。どちらの窓からも戸外という同じテーブルを見ていますが、東の窓(東というリレーション)から朝日は見えますが、西の窓からは朝日は見えません。
こんなイメージです。

Last edited by Shin (2024-01-09 13:38:24)

Offline

#10 2024-01-09 11:06:29

チポ
Member

Re: 関連テーブルの計算

おせっかいな講釈を、、

レイアウトはテーブル定義のテーブルを表示するものではありません。
リレーションシップグラフのテーブルオカレンスを表示するものです。

もし、リレーションが
  サービスB2-- 顧客
となっていて、顧客を参照するには、
サービスB2のレイアウトにしないとだめです。
もちろんここに配置するフィールドも
  サービスB2::フィールド
としないとだめです。

これは面倒なことになるので、
リレーションを
  サービスB -- 顧客2
と、このように参照する側をデフォルト、される側をコピーと徹底したほうがいいでしょう。

Offline

#11 2024-01-09 18:57:47

Re: 関連テーブルの計算

やっとわかってきたようです。
サービスBの計算フィールドのオプション設定の時、設定ウインドウの中央上部に、サービスBのTOのリストがあって、顧客とリレーションさせているTOを選ぶと、狙い通りの動作になりました。
サービスAでは、偶然、リレーションしているTOが1番目に載っていてうまく行っていたようです。
皆様、ありがとうございました。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 521.47 KiB (Peak: 526.01 KiB) ]