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

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

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

You are not logged in.

Announcement

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


#1 2016-11-16 10:13:03

ロイヤル
Guest

条件付きlist関数

OS:[Windows 7] FileMaker Ver:[14adv]

お世話になっております。

テーブルA - テーブルB
テーブルA - テーブルC がリレーションしてます。

テーブルBのフィールド1が○だったら
テーブルCからlist関数で内容を引っ張ってきたいのですが
全部引っ張ってきてしまいできません。

条件付きlist関数のような処理がしたいのですが。。。

テーブルAが1レコードに対し
テーブルB、Cは1~5レコード存在します。

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

#2 2016-11-16 10:36:22

チポ
Member

Re: 条件付きlist関数

BとCが直接つながっていないので、、

BとCから見て、Aが対1ならば
Bに、AのCとの照合フィールドの値を持ってきて、
そのフィールドとCとでリレーションすればいいのでは。

Offline

#3 2016-11-16 11:53:28

ロイヤル
Guest

Re: 条件付きlist関数

チポ wrote:

BとCが直接つながっていないので、、

BとCから見て、Aが対1ならば
Bに、AのCとの照合フィールドの値を持ってきて、
そのフィールドとCとでリレーションすればいいのでは。

>>BとCが直接つながっていないので、、
そうですよね。。。

Bのステータス(フィールド内容)が変わることがあるので
持ってくるということができません。

計算式でもスクリプトでも良いのですが。
何かありませんでしょうか。

BとCをIDでつなげれば実現できますでしょうか。
よろしくお願いいたします。

#4 2016-11-16 12:41:24

旅人
Member

Re: 条件付きlist関数

A対Bが1対多ということですが
>テーブルBのフィールド1が○だったら
はどの関連レコードのフィールド1なのか分からないのでは?
どのリレーションも照合フィールドは同じなのですか?

Offline

#5 2016-11-16 13:15:54

チポ
Member

Re: 条件付きlist関数

> BとCから見て、Aが対1
これへの解答が有りませんが、
ではないとして考えれば。。

リレーションが
  B::b = A::a1

  A::a2 = C::c
とします。

Bで計算フィールドを作り
  List ( A::a2 )
として、このフィールドと
  C::c
とでリレーションすれば、Cを直接参照できます。

Offline

#6 2016-11-16 14:20:22

tim
Guest

Re: 条件付きlist関数

リレーションが2つあって
A::ID = B::ID
A::ID = C::ID

で、Cの計算で
List(B::何かフィールド)
をB::フィールド1が○のレコードだけにしたいということでは?

Bに
Case(フィールド1=”○”;値が必要なフィールド)
のフィールドを作って、
List(B::そのフィールド)
でいいと思うけど。
この方法だと値が必要なフィールドごとに計算フィールドが必要になる。

#7 2016-11-16 14:35:08

チポ
Member

Re: 条件付きlist関数

んん?

> テーブルCからlist関数で内容を引っ張ってきたいのですが
これは、

テーブルBで、テーブルCのフィールド値を得たい・・これは私の解答
テーブルCで、テーブルBのフィールド値を得たい・・これはtimさんの解答

どちらでしょう?

Offline

#8 2016-11-17 09:38:18

ロイヤル
Guest

Re: 条件付きlist関数

皆様ご教示ありがとうございます。

確認したところ、大変申し訳ございません。
誤っておりました。

テーブルA - テーブルB
テーブルB - テーブルC
がリレーションでした。。。

テーブルAは大元のテーブル。
テーブルBはテーブルCで選択したものをテーブルAのレコードごとに複数個保持しておくテーブル。
テーブルCはマスタです。

テーブルBにはステータスがあり、
ステータスが○の時だけ、
テーブルAにテーブルCのフィールド内容を引っ張ってきたいということです。

ご回答いただいたところ誠に申し訳ございません。
引き続きよろしくお願いいたします。

#9 2016-11-17 10:11:44

Shin
Member

Re: 条件付きlist関数

テーブルBに、Case ( ステータス = "○" ; テーブルC:フィールド ) という計算フィールドを作り,それを list() 表示させれば良いですね。
ただ、テーブルB - テーブルC で該当レコードが複数有るのでしたら,そこにも List() を使う事になるかと思います。

Offline

#10 2016-11-18 17:55:13

ロイヤル
Guest

Re: 条件付きlist関数

ありがとうございます。

できました!
助かります!

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: 519.12 KiB (Peak: 523.66 KiB) ]