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

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

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

You are not logged in.

Announcement

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


#1 2021-03-06 15:09:47

別ファイルの同テーブル同レコードに移動

いつもお世話になってます。

ファイルA
テーブルA1
テーブルA2
--------------
ファイルB
テーブルA1(ファイルAのテーブルです)
テーブルB1

ファイルBにはテーブルA1を使用したレイアウトがあるのですが
ファイルAからファイルBを開くときに同じレコードが表示されるようにしたいのです。

UUIDコピー→ファイル開く→貼り付けて検索というスクリプトステップで可能とは思うのですが
もう少しいい方法が無いか悩んでいます。

アドバイスを頂けると助かります。
よろしくお願い致します。

Offline

#2 2021-03-06 16:21:43

Shin
Member

Re: 別ファイルの同テーブル同レコードに移動

関連レコードへ移動、で、外部ファイルのレイアウトを使用 をチェックすると、別のファイルのレイアウトが指定できるようになります。その設定で、自己テーブルを指定して、レイアウトをファイルBから指定してみればいかがでしょう。

Offline

#3 2021-03-10 08:17:16

himadanee
Guest

Re: 別ファイルの同テーブル同レコードに移動

リレーションでやるのが「だいぶ」いい方法だと思いますが
「少し」いい方法は、スクリプト実行でBの検索スクリプトを呼ぶときに、UUIDはスクリプト引数で渡します。コピペの必要はありません。

#4 2021-03-10 08:52:12

チポ
Member

Re: 別ファイルの同テーブル同レコードに移動

> ファイルB
> テーブルA1(ファイルAのテーブルです)

テーブル定義ではなく、テーブルオカレンスですよね?

とするとファイルAからこのテーブルへのリレーションはできないでしょう。

Offline

#5 2021-03-10 11:29:49

himadanee
Guest

Re: 別ファイルの同テーブル同レコードに移動

あれ?外部データソースの外部テーブルにはリレーションができないんですね?直接やれってことか。そんなもんだったかなあ?
そういえば個人的にはそもそも外部テーブルのレイアウトってあんまり作ったことがない気がする...

じゃあやっぱり検索でやるしかないんでしょうかね。

#6 2021-03-10 12:36:21

Shin
Member

Re: 別ファイルの同テーブル同レコードに移動

リレーションを貼らなくても、関連レコードへ移動(外部ファイルのレイアウトを使用)でいいんですよ。
元の対象レコードと同じレコードが対象レコードになり、元のアクティブレコードがアクティブレコードになります。

Last edited by Shin (2021-03-10 14:52:15)

Offline

#7 2021-03-10 15:50:50

himadanee
Guest

Re: 別ファイルの同テーブル同レコードに移動

ファイルBのテーブルを選択しないと「外部ファイルのレイアウトを使用 をチェック」ができません。
チェックできたあとは、選択したテーブルのレイアウトしか選択できません。

#8 2021-03-10 17:17:30

Shin
Member

Re: 別ファイルの同テーブル同レコードに移動

テーブルが実在しているファイルを勘違いしていました。
ファイルB から ファイルA へは、関連レコードへ移動で簡単に移れますが、ファイルA からはできませんね。
ファイルB に、ID となるフィールドだけを持たせたテンポラリーテーブルを作っておき、ファイルA からリレーションを張り、さらにそのテーブルから TO の A1 へリレーションを張っておき、関連レコードへ移動を2回行うと、引数に頼らない方法かも。

Offline

#9 2021-03-11 11:22:18

チポ
Member

Re: 別ファイルの同テーブル同レコードに移動

そのレコードのみを対象レコードとするのなら検索で。

対象レコードはそのままで目的のレコードが選択されていればいいのなら、
レコードを一つずつ見て行き、目的のレコードで止める。

検索ではユニークな値のフィールドが必要ですが、
探して行くのなら Get ( レコードID ) が使えますね。


しかしこの目的って何なのでしょう?
元のテーブルで済むことの様に思いますが。。

Offline

#10 2021-03-17 19:43:57

Re: 別ファイルの同テーブル同レコードに移動

Shinさん、
ややこしい書き方で申し訳ありません。
関連レコードへ移動を2回利用する方法なんて思いもよらない方法です。
楽しそうなので今度試してみます。

himadaneeさん、
スクリプト引数で渡すというのは余計なステップを無くせてすばらしいです。
作ったスクリプトを元に変えてみます。

チポさん、
そもそもファイルを分けてしまったことが原因なのですがかえって面倒なことになってしまいました。
(前任者のリレーションがぐちゃぐちゃで見やすいものを作りたかったのです)
見にくいリレーションを直すコツとかないでしょうか(笑

Offline

#11 2021-03-17 20:30:42

ウィン
Member

Re: 別ファイルの同テーブル同レコードに移動

タコ足になり過ぎたリレーションを直すコツは、まずはレイアウト毎にテーブルオカレンスをつけてあげると割と見やすくなるかもですね。
テーブルオカレンスってわかっているようでわかっていなかったり、理解しているつもりでも理解しきれていなかったりと、随分頭を悩ましたりしたことがありました。
一つのオカレンスに変にこだわりを持ち過ぎてごっちゃごちゃになる時は多々ありますよね。

Offline

#12 2021-03-18 09:36:53

Shin
Member

Re: 別ファイルの同テーブル同レコードに移動

絡み合ったリレーションマップを整理するには、中心となるオカレンス(リレーション先の多いオカレンス)を探して、それを中心にして配置し直します(マップの真ん中に置く、という意味ではありませんよ)。それを核に、周囲を整理していくと早いでしょう。
マップの中のツールで、「1テーブル離れた関連テーブルを選択」 でを次の階層のオカレンスを探せますので、それを利用すると階層がわかりやすくなります。

レイアウトごとにオカレンスを作っていく方法は、いわゆるアンカーブイの構造でメンテナンスには非常に楽ですので、最終的には移行された方がいいでしょうが、後付けでは極めて困難です。それをすると、スクリプトの中やレイアウト内の表示に不具合を作りこんでしまう可能性が高く、ゼロから作るより労力がかかります。

Last edited by Shin (2021-03-18 09:38:21)

Offline

#13 2021-03-18 10:17:14

Re: 別ファイルの同テーブル同レコードに移動

ウィンさん、
このテーブルどこに使ってるんだろうから調べないといけない状況です。
少しずつやっていくしかないですね。
トピック違いになりそうなのでこれでやめておきます。
ありがとうございました。

Offline

#14 2021-03-18 11:35:18

ウィン
Member

Re: 別ファイルの同テーブル同レコードに移動

ちなみにツールにデータベースデザインレポートを出力する機能がありますので、調べる時には便利です。
馴染みがないと見辛かったりしますが、要領を得ると大変便利なものになってきますよ。

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: 578.29 KiB (Peak: 594.83 KiB) ]