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

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

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

You are not logged in.

Announcement

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


#1 2017-10-19 21:04:44

TOを飛び越えたソートって…

いつもお世話になります。
今回したい事。
TOが4つあります。
利用者。コーディネーター履歴。コーディネーター。コーディネーター会社です。

それぞれのテーブルのフィールドは次の通り。

①利用者
利用者ID、利用者名
②コーディネーター履歴
利用者ID、コーディネーター契約日、担当コーディネーターID
③コーディネーター
担当コーディネーターID、コーディネーター名、コーディネーター会社ID
④コーディネーター会社
コーディネーター会社ID、コーディネーター会社名、コーディネーター会社住所

リレーションは①を起点に②③④と繋げています。

実現したいのは利用者レイアウトに利用者の一覧を表示して、なおかつそれぞれの利用者の横に最終のコーディネーター名を載せ、しかもそのコーディネーター名をクリックすると、別ウインドウでそのコーディネーターが所属する会社の住所とその会社に所属するコーディネーター全員の名前が表示されるようにしたいです。

①と②のリレーションでコーディネーター契約日を降順ソートしてますが、いざレイアウト上に③のコーディネーター名を乗せると結局最終のコーディネーター名が載りません。②と③のリレーションでも②側のソートが必要なのかと思い、契約日を降順ソートしましたが適正に評価されませんでした。
ソートは複数のTOのリレーションの場合、1つのTOを超えるとソートは出来ないのでしょうか?
ご教示ください。
また、私のやりたい事をもっと別の方法で解決できるのであれば、教えてください。
よろしくお願いいたします。

Offline

#2 2017-10-19 21:45:30

tomato
Member

Re: TOを飛び越えたソートって…

いろいろ方法はあると思いますがアナログな感じであれば、1行ポータル(ソート降順)をおくと出来そうですけど重くならないのかな。

Offline

#3 2017-10-19 23:14:09

Shin
Member

Re: TOを飛び越えたソートって…

①利用者 - ②コーディネーター履歴 のリレーションで、契約日で降べきソートするだけでいいのでは。

Offline

#4 2017-10-20 06:38:59

Re: TOを飛び越えたソートって…

ご意見ありがとうございます!

ただ、一行ポータルも試してますが、うまくいきません。
②までは正しくデータ参照してるみたいですが、②のコーディネーターIDと③のコーディネーターIDをリレーションして③のコーディネーター名を表示させようとすると上手くいかないようです…

どこか間違えてるのでしょうか。
??何度も見直してるのですがT^T

Offline

#5 2017-10-20 08:45:55

tomato
Member

Re: TOを飛び越えたソートって…

今試したら出来ましたけど、ポータル欄からフィールドが外れていませんか?

Offline

#6 2017-10-20 09:06:41

チポ
Member

Re: TOを飛び越えたソートって…

②コーディネーター履歴 テーブルに
コーディネーター名フィールドを持たせて、
それを
①利用者 のレイアウトに置くのが本筋でしょう。


1行ポータルをソート指定していなければ、
単に関連フィールドの配置と同じことですよ。

Offline

#7 2017-10-20 14:55:25

Re: TOを飛び越えたソートって…

皆さまご意見ありがとうございます。

まだ上手くいってないですが、皆様からのアドバイスをもとにもう少し頑張ります。
一旦解決といたします。

Offline

#8 2017-10-21 16:04:09

Re: TOを飛び越えたソートって…

申し訳ありません。
やはり自分でいろいろ調べようとしたのですが、どうにもできないようです・・・

テストデータを作ってシンプルな形で試してみたのですが、やはりうまくソートできません。
①利用者
②利用者別履歴
③所属者
④関係機関
の4テーブルをリレーションでつなぎ、利用者別履歴の所属日フィールドで降順ソートをかけて最新の所属者IDを抽出し、それのリレーションで③のテーブルから所属者名、④から所属者機関名を表示させ、
それができたら所属者名をクリックで別レイアウトで所属者機関の情報を表示させたいのです。
チポ様から②の履歴テーブルに所属者名フィールドを持たせて処理するのが本筋とご指摘いただきましたが、何名かの所属者は複数の関係機関に所属しているため、名前で登録すると関係機関を正しく参照できないのかも・・とおもい、
マスタデータとして③と④を作っています。

皆さま何卒知恵をお貸しください。理解が浅くて申し訳ありません。

https://www.dropbox.com/s/h029lusjlqa9q … fmp12?dl=0

Offline

#9 2017-10-21 18:47:18

チポ
Member

Re: TOを飛び越えたソートって…

サンプルは見ていません。

担当コーディネーターID
でコーディネーター名は特定できるのでしょう?

ならば、
②コーディネーター履歴にコーディネーター名を持たせることになんの問題もないでしょう。

その先の問題はその次に。。

Offline

#10 2017-10-21 19:16:03

Shin
Member

Re: TOを飛び越えたソートって…

素直にそのまま作るだけで、お望みの表示は出来ていますよ。
https://www.dropbox.com/s/tdx6vyw6n9xab … 7.zip?dl=0

Offline

#11 2017-10-21 20:21:39

Re: TOを飛び越えたソートって…

shin様
shin様のデータ拝見しました。
本当にできていますね・・・私のデータを合わせてみていますが、なぜ私のファイルでは実現できないのか未だ見つけられずにいます。
でもどこかに原因はあるはずなのでもうしばらく頂いたデータと私のデータを見比べたいと思います。

チポ様
いつもご意見ありがとうございます。
確かにそうですね!コーディネーター履歴に名前を持たせるときにコーディネーターテーブルを値一覧にして入力させるようにしたらいいのかも??
shin様のファイルのようにできなければチポ様に教えていただいたやり方でやってみます。

お二方ともいつもすぐにご意見いただきまして本当にありがとうございます!!

Offline

#12 2017-10-22 10:30:58

Re: TOを飛び越えたソートって…

shin様
昨日はデータをありがとうございました。
一晩私のデータとにらめっこし、いろいろ細かなところをチェックしてみたのですが結局わからずじまい。
試しにshin様からいただいたデータにレコードを追加したところ、なぜかこれまで動いていたのにshin様のデータも表示がされなくなってしまいました。
追加したデータはコーディネーター履歴テーブルに
利用者ID:1
コーディネーター契約日:2017/11/15
担当コーディネーターID:100003
です。
利用者1のなかでは最も最近の契約日のため、担当コーディネーターIDは100003になり、担当コーディネーターはBBになるはずなのですが、
表示はAAになってしまいます。

これはもしかして・・私のファイルメーカーのプログラムがおかしいのでは・・・などとソフトのせいにしてしまう始末。
なかなか難しいですね。

チポ様からのご指摘の方向で調整しようかと思いますが、
ただ、できないなりにできない理由がしりたいです。どこの設定が悪いのか。なんの知識が不足しているのか。もしくは本当にファイルメーカーの仕様でそもそもそれはできないのか。

ご存知の方よろしくお願いいたします。

Offline

#13 2017-10-22 12:30:03

tomato
Member

Re: TOを飛び越えたソートって…

ぜんぶ試しましたけど、何が問題がいまいちわかりません。
・おそらく、リレーションのソートだけでは、名前までは正常にソートされないような?
・1行ポータル、ポータルソート降順で問題なし。
・履歴者テーブルに計算フィールド:所属機関名計算、所属者計算を結果:テキストで取得して、表示。問題なし。

Offline

#14 2017-10-22 13:29:01

Re: TOを飛び越えたソートって…

tomato様
いろいろご確認いただきありがとうございます。
何が問題かわからないということは、tomato 様のデータではちゃんと動作しているということですよね?
私のほうはどうしても正しいデータを引っ張ってくれないんですよね。
なんだか、ものすごくつまらないことが原因な気がしますが、
どうしても自分で気づけないのです。
無視して前に進むこともできますが、後々同じような問題に直面しそうなので、今知りたいんですよね。
なぜ皆さんは上手くいくのに自分だけなんでしょう。
一からテストデータを作っても同じ現象に見舞われます。
ものすごいシンプルな作りなのに、3つ目のテーブルから上手く参照できません。
最新の履歴データから紐付きになってる担当者名を表示するだけなのに…

Offline

#15 2017-10-23 09:24:02

チポ
Member

Re: TOを飛び越えたソートって…

> 利用者1のなかでは最も最近の契約日のため、担当コーディネーターIDは100003になり、担当コーディネーターはBBになるはず
利用者のレイアウトにコーディネータのポータルを置いて見るとお分かりになるかと思いますよ。

利用者から見て、
コーディネータテーブルは関連テーブルの関連テーブルで、
直接の関連テーブルではありませんからそうなります。

Offline

#16 2017-10-23 09:47:21

チポ
Member

Re: TOを飛び越えたソートって…

> コーディネーター履歴に名前を持たせるときにコーディネーターテーブルを値一覧にして入力させるようにしたらいいのかも
ルックアップで自動入力できますよ。

Offline

#17 2017-10-23 09:57:39

Re: TOを飛び越えたソートって…

チポ様
またまたご指導ありがとうございます。

直接のリレーションでない、つまり一つ以上のTOを挟んだリレーション、「関連テーブルの関連テーブル」においては、
各TOのリレーションをちゃんと結んでいても、(直接の)関連テーブルで設定したソートまでは反映できない。ということですよね??

これって、私にとってはすごく重大な事実です。衝撃です。目からウロコです。(皆さんにとっては当たり前かもしれませんが。。(-_-;))

おそらくこれを知らなかったら今後さらに重大なミスをしていたと思います。

ものすごく勉強になりました!ありがとうございます!
これを踏まえて作り直しを進めます。

Offline

#18 2017-10-23 09:59:17

Re: TOを飛び越えたソートって…

チポ様

え。。
ルックアップですか・・・・(笑)

勉強してやってみます!!

Offline

#19 2017-10-23 19:37:20

Shin
Member

Re: TOを飛び越えたソートって…

TO を挟んだリレーションで、途中の対象が複数になっているため、その先も複数が対象になってしまうためでした。
利用者のテーブルに、担当IDを計算フィールドで取り込み、そこからリレーションを貼ることで、担当者の情報を表示することができます。ただ、変更した時には、ウィンドウの再表示(キャッシュを書き込む)が必要です。
サンプルファイルを更新しています。
https://www.dropbox.com/s/tdx6vyw6n9xab … 7.zip?dl=0

または、履歴のテーブルに、計算フィールドで名前や会社名を参照するフィールドを作っておいてもいいでしょう。

Last edited by Shin (2017-10-24 14:23:35)

Offline

#20 2017-10-24 14:28:21

Re: TOを飛び越えたソートって…

Shin様

お礼が遅くなりました!
サンプルファイル確認しました。このようなやり方もあるのですね。
計算フィールドでリレーションをこのように工夫することもできるのですね。
勉強になります!
どういったやり方が後々ベターであるのか考えながら進めていくようにします!
いつも本当にありがとうございます!

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, 7 queries executed - Memory usage: 616.31 KiB (Peak: 633.22 KiB) ]