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

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

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

You are not logged in.

Announcement

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


#1 2022-01-25 18:38:47

keep123
Member

任意のフィールドのレコード情報を書き換えたときのみスクリプトが実行

FMsv17:winsv2016 FM17:win10 FMgo18:ios
いつも参考にさせていただいています。

テーブル内の任意のフィールドのレコード情報を書き換えたときのみに,
スクリプトが実行され,書き換える前のデーターが,別のフィールドに保持されるようにするにはどのようにすれば良いでしょうか?

アドバイスを頂ければと思います。宜しくお願いします。

Offline

#2 2022-01-25 19:43:01

Shin
Member

Re: 任意のフィールドのレコード情報を書き換えたときのみスクリプトが実行

OnObjectEnter で、適当な変数にフィールド内容を保存しておき、書き換えされたら、その変数の内容を書き出せばいいです。

Offline

#3 2022-01-25 20:04:28

ウィン
Member

Re: 任意のフィールドのレコード情報を書き換えたときのみスクリプトが実行

値取得用のスクリプトと更新された時のスクリプトの2つ用意する。
任意のフィールドにスクリプトトリガを2つ割り当てる。

OnObjectEnterで値を変数で取得しておく。(記録されている値を予め取得(空でなければ取得))
値取得用スクリプト
If [ not IsEmpty ( 任意のフィールド ) ]
変数を設定 [ $$nini; 値:任意のフィールド ]
End If

OnObjectModifyもしくはOnObjectSaveで変数をバックアップフィールドに書き込む。(前回入っていた変数値をフィールドに書き込む)
書き込み用スクリプト
フィールド設定 [ バックアップフィールド; $$nini ]

変数の開放はおこなっていないのでどこかで開放する必要があるかもですね。

Offline

#4 2022-01-25 23:02:30

keep123
Member

Re: 任意のフィールドのレコード情報を書き換えたときのみスクリプトが実行

早速の返信ありがとうございます。やってみます。

Offline

#5 2022-01-26 08:11:27

himadanee
Guest

Re: 任意のフィールドのレコード情報を書き換えたときのみスクリプトが実行

サーバー使ってる場合は、「サーバーでスクリプトを実行」で変更前の値が自動的に参照できる(レコード確定前の変更後の値は、その端末にしか存在しない)ていうのなかったかしら。

最近のFM19では「FileMaker Data API を実行」を使うとFMSなしでも可能ですね。しかしJSONなので非常にめんどくさい...

#6 2022-01-26 09:03:08

Shin
Member

Re: 任意のフィールドのレコード情報を書き換えたときのみスクリプトが実行

> サーバー使ってる場合は、「サーバーでスクリプトを実行」で変更前の値が自動的に参照できる(レコード確定前の変更後の値は、その端末にしか存在しない)ていうのなかったかしら。
を検証してみましたが、OnObjectValidata で、サーバーでスクリプトを実行して、そのスクリプトからフィールドのデータを返せば、変更前のデータが取得できました。これ簡単でいいですね。

Offline

#7 2022-02-01 16:22:47

keep123
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.006 seconds, 9 queries executed - Memory usage: 560.21 KiB (Peak: 589.15 KiB) ]