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

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

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

You are not logged in.

Announcement

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


#1 2018-12-21 10:12:14

まっくす
Guest

OnRecordCommitでフィールド変更前のデータ取得

お世話になります。

レイアウトのスクリプトトリガにOnRecordCommitがあると思いますが、
このトリガを使ってスクリプトを実行した際、スクリプト内で、変更前のフィールドデータを取得したいです。

今まではOnRecordLoadで全てのフィールドの変更前のデータを保持し、OnRecordCommitで変更後のデータと比較していました。
ただ、OnRecordCommitの説明を見ると
> 変更されたレコードが確定される前に、実行するスクリプトをトリガします。
と記載されています。

レコードが確定される前にスクリプトが動くのであれば、なんとか変更前のデータも取れないのかな?と思った次第です。
そうすればわざわざOnRecordLoadで全てのフィールドの変更前のデータを保持しなくても済むのではないかと思っています。
ご存じの方がおられましたらご教授下さい。

#2 2018-12-21 11:16:48

Shin
Member

Re: OnRecordCommitでフィールド変更前のデータ取得

> レコードが確定される前にスクリプトが動く
これは、FM の内部へデータを取り込み、それをユーザーが変更し、ファイルへデータを転送する直前、という意味です。ですから、そのトリガーが動いた時のフィールド値は、ユーザーが変更したデータです。
無理矢理元データを取り込むのでしたら、そのデータを保存しておきます。レコード/検索条件復帰  を行い、データを取得し、再度先に保存したデータを設定して、レコードを保存、という手順になるでしょうが、ユーザーがどのフィールドを触ったかをコントロールする必要もありますので、OnRecordLoad で取得するのと比べて、却って面倒でしょう。

Offline

#3 2018-12-21 17:38:13

まっくす
Guest

Re: OnRecordCommitでフィールド変更前のデータ取得

Shinさん

ありがとうございます。
なるほど、であれば仰る通り却って面倒になりそうですね。
今まで通りのやり方でやっていこうと思います。

#4 2018-12-21 20:15:25

wader
Member

Re: OnRecordCommitでフィールド変更前のデータ取得

サーバで共有しているファイルだと、サーバ上でスクリプトを実行すると変更前の値を参照できます。

Offline

#5 2018-12-25 17:00:39

まっくす
Guest

Re: OnRecordCommitでフィールド変更前のデータ取得

waderさん

返信遅くなりました。
それは素晴らしいですね!
FMServerを使っているので、OnRecordCommitでスクリプトが動いた時に
【 サーバー上のスクリプト実行 】で引数に欲しいフィールド名を渡し、フィールド内容を返却してもらえばいいということですよね?
試してみようと思います。
ありがとうございます。

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: 553.95 KiB (Peak: 582 KiB) ]