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

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

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

You are not logged in.

Announcement

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


#1 2021-01-15 12:23:37

yuki7845
Member

複数のファイル間でのフィールドコピーについて

お世話になっております。
win10でファイルメーカー19を利用しております。

Aマスタ.fmp12とBマスタ.fmp12という2つのファイルがあり、
AマスタからBマスタに3つのフィールドの値を渡したいのですが、これは出来ないのでしょうか。

※他の方と質問がすごく似ているので、当初は考えてやってみたのですが
AマスタからBマスタへは1つのフィールドしか渡せませんでした。

3つのフィールドを渡すというのは無理なのでしょうか。

参考URL
https://fm-aid.com/bbs2/viewtopic.php?id=7589
https://fm-aid.com/bbs2/viewtopic.php?id=5391

Offline

#2 2021-01-15 13:23:08

Moz
Member

Re: 複数のファイル間でのフィールドコピーについて

現在はどのようにして1つのフィールドの値を渡しているのでしょうか?
やり方はいろいろあり、正解はありません。

例えば、スクリプト引数を利用すれば複数の値を渡すことができます。
複数の値の渡し方は様々です。FileMaker 19 をお使いなら JSON で渡すのが簡単です。
https://help.claris.com/ja/pro-help/con … egory.html
JSONSetElement で渡して、JSONGetElement で取り出します。

それ以外にも、ファイルが分かれていても外部データソースに指定すれば自分のファイルにあるかのように扱えますから、
Bファイルの中にBファイルのテーブルのレイアウトを作ってしまえば、ファイル間でのデータのやり取りは不要です。

参考URLにもありますが以下を再考されるのもひとつの方法です。
・ファイルを2つに分ける必要があるのか

Offline

#3 2021-01-17 18:15:53

Shin
Member

Re: 複数のファイル間でのフィールドコピーについて

Let() 関数の中身を渡し、変数として設定する、という方法も、変数名ごと引き継げて面白いですので、参考までに。
例えば、A,B,C  というフィールドの値 a,b,c を渡す場合、
"$A=" & A & ";$B=" & B & ";$C=" & C
という式を評価した値("$A=a;$B=b;$C=c")をスクリプト引数に設定してスクリプトを呼び出し、そちらのスクリプトで、
Evaluate ( "Let (["  & Get ( スクリプト引数 ) & "];dummy)" )
という式を評価(例えば、フィールド設定の計算式として)させれば、変数の$A, $B, $C にそれぞれ a,b,c という値が設定されています。そのまま変数として使うことができます。$$ にしておけば、グローバル変数として設定されます。

Last edited by Shin (2021-01-18 08:28:07)

Offline

#4 2021-01-18 16:08:43

チポ
Member

Re: 複数のファイル間でのフィールドコピーについて

> AマスタからBマスタへは1つのフィールドしか渡せませんでした。
どうやったのか書けば、指摘があると思いますが、、


スクリプト引数に複数の値を持たせてそれを一つずつ取り出せます。
引数の設定で
  List ( フィールド1 ; フィールド2 ; フィールド3 )
として、
それを
  GetValue ( Get (スクリプト引数) ; 1{ 2,3・・} )
でひとつずつ取り出します。

ただし、オブジェクトフィールドはダメでしょう。

Offline

#5 2021-01-18 16:52:16

himadanee
Guest

Re: 複数のファイル間でのフィールドコピーについて

どの方法でも、空欄の値がある場合には要注意です。
Let()の場合は""とか、List()の場合は改行も。

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: 508.85 KiB (Peak: 514.71 KiB) ]