みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になります。
レイアウトのスクリプトトリガにOnRecordCommitがあると思いますが、
このトリガを使ってスクリプトを実行した際、スクリプト内で、変更前のフィールドデータを取得したいです。
今まではOnRecordLoadで全てのフィールドの変更前のデータを保持し、OnRecordCommitで変更後のデータと比較していました。
ただ、OnRecordCommitの説明を見ると
> 変更されたレコードが確定される前に、実行するスクリプトをトリガします。
と記載されています。
レコードが確定される前にスクリプトが動くのであれば、なんとか変更前のデータも取れないのかな?と思った次第です。
そうすればわざわざOnRecordLoadで全てのフィールドの変更前のデータを保持しなくても済むのではないかと思っています。
ご存じの方がおられましたらご教授下さい。
> レコードが確定される前にスクリプトが動く
これは、FM の内部へデータを取り込み、それをユーザーが変更し、ファイルへデータを転送する直前、という意味です。ですから、そのトリガーが動いた時のフィールド値は、ユーザーが変更したデータです。
無理矢理元データを取り込むのでしたら、そのデータを保存しておきます。レコード/検索条件復帰 を行い、データを取得し、再度先に保存したデータを設定して、レコードを保存、という手順になるでしょうが、ユーザーがどのフィールドを触ったかをコントロールする必要もありますので、OnRecordLoad で取得するのと比べて、却って面倒でしょう。
Offline
Shinさん
ありがとうございます。
なるほど、であれば仰る通り却って面倒になりそうですね。
今まで通りのやり方でやっていこうと思います。
サーバで共有しているファイルだと、サーバ上でスクリプトを実行すると変更前の値を参照できます。
Offline
waderさん
返信遅くなりました。
それは素晴らしいですね!
FMServerを使っているので、OnRecordCommitでスクリプトが動いた時に
【 サーバー上のスクリプト実行 】で引数に欲しいフィールド名を渡し、フィールド内容を返却してもらえばいいということですよね?
試してみようと思います。
ありがとうございます。
Pages: 1
[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 554.08 KiB (Peak: 582.13 KiB) ]