みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FMsv17:winsv2016 FM17:win10 FMgo18:ios
いつも参考にさせていただいています。
テーブル内の任意のフィールドのレコード情報を書き換えたときのみに,
スクリプトが実行され,書き換える前のデーターが,別のフィールドに保持されるようにするにはどのようにすれば良いでしょうか?
アドバイスを頂ければと思います。宜しくお願いします。
Offline
OnObjectEnter で、適当な変数にフィールド内容を保存しておき、書き換えされたら、その変数の内容を書き出せばいいです。
Offline
値取得用のスクリプトと更新された時のスクリプトの2つ用意する。
任意のフィールドにスクリプトトリガを2つ割り当てる。
OnObjectEnterで値を変数で取得しておく。(記録されている値を予め取得(空でなければ取得))
値取得用スクリプト
If [ not IsEmpty ( 任意のフィールド ) ]
変数を設定 [ $$nini; 値:任意のフィールド ]
End If
OnObjectModifyもしくはOnObjectSaveで変数をバックアップフィールドに書き込む。(前回入っていた変数値をフィールドに書き込む)
書き込み用スクリプト
フィールド設定 [ バックアップフィールド; $$nini ]
変数の開放はおこなっていないのでどこかで開放する必要があるかもですね。
Offline
早速の返信ありがとうございます。やってみます。
Offline
サーバー使ってる場合は、「サーバーでスクリプトを実行」で変更前の値が自動的に参照できる(レコード確定前の変更後の値は、その端末にしか存在しない)ていうのなかったかしら。
最近のFM19では「FileMaker Data API を実行」を使うとFMSなしでも可能ですね。しかしJSONなので非常にめんどくさい...
> サーバー使ってる場合は、「サーバーでスクリプトを実行」で変更前の値が自動的に参照できる(レコード確定前の変更後の値は、その端末にしか存在しない)ていうのなかったかしら。
を検証してみましたが、OnObjectValidata で、サーバーでスクリプトを実行して、そのスクリプトからフィールドのデータを返せば、変更前のデータが取得できました。これ簡単でいいですね。
Offline
早速の返信ありがとうございます。やってみます。
Offline
Pages: 1
[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 560.23 KiB (Peak: 589.17 KiB) ]