みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Win FMP11です。
AファイルのID番号とBファイルのID番号はリレーションで関連づけてあります。
スクリプトで、AファイルからID番号の一致するでBファイルの関連レコードへ移動することはできます。
あるID(1002)でAファイルには存在し、Bファイルには存在しないIDで関連レコードへ移動しようとしたら自動的にBファイルにID(1002)の新規レコードを作りたいのですが、
ファイルAで変数設定 $$ID番号 でID番号を覚えさせて
ファイルBへ移動後、ファイルBの「ID番号」フィールド設定:$$ID番号
としたいのですが、うまくいきません。
ファイルを越えて変数は使えないのでしょうか。
ひとつのファイルの中にAテーブル-Bテーブルを作り、このようなことは可能なことは解りました。
マルチファイルをマルチテーブルに変更すればいのでしょうが、.fp5で作った古いマルチファイルのDBをfp7に変換中で、このような疑問が生じています。
変数を使わないで行うことは可能でしょうか?
Offline
ファイルが別の様ですので、別のスクリプトを呼び出しているのでしょうね。
グローバル変数は、ファイル固有です。ローカル変数は、スクリプト固有です。
ですから、どちらにしても変数の内容の受け渡しには、別の仕組みが必要です。
その際に有用なのだが、スクリプト引数です。詳細はヘルプでご覧下さい。
ただ、処理は変数を使わずに可能です。
If[ not IsValid ( リレーション::ID )]
フィールド設定[リレーション::ID ; ID]
end If
関連フィールドへ移動[]
とsれればいいでしょう。
Last edited by Shin (2013-09-08 19:53:45)
Offline
Shinさま ありがとうございます。
うまく動きません。
>If[ not IsValid ( リレーション::ID )]
----ここにBファイルで新規レコード作成 的なステップは必要ありませんか?
>フィールド設定[リレーション::ID ; ID]
>end If
>関連フィールドへ移動[]
これは関連レコードの移動では? []は条件を指定しないということですか?
Offline
リレーションを通した関連レコードの作成を許可していますか。
最後の行は、関連レコードへ移動、の間違いです。条件は現在の設定のままで良いです。
もし、関連レコード側の修正履歴が触られても良いのでしたら、ifの行と、else if も不要です。
Offline
Shinさま ありがとうございます。
どうも解決できなかったのですが、ポータルを介してということに思い当たり、
Aファイルで、一行のポータルにボタンを置くということで解決しました。
Offline
フィールド設定[リレーション::ID ; ID]
を行った時に、Bファイルにレコードは作成されていますか。
関連レコードへ移動、のステップだけでしたら、きちんと動いていますか。
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 509.01 KiB (Peak: 513.55 KiB) ]