作成日:2024年11月25日
レコードの確定を制御する


どうも、にゃん太です
フィールドに入力した値は、通常そのまま保存されます
この処理は取り消しする事が出来ませんので、誤操作があった場合などに困ってしまう事があります
今回のメモでは、確定ボタンを押した時にレコードを確定する方法について書いていきます
入力内容の確定タイミング
何かのシステムを使用してデータを編集する時、多くの場合では入力した内容を「確定」などのボタンを押した時に入力内容が確定します
しかし、FileMakerでは普通に作成した場合、そうではありません

例えば上記の様なレイアウトがあったとして、フィールドに入力した値はフォーカスを外すなどの操作で確定します
余分な操作なく確定するので便利な場合はありますが、確定後に元に戻す操作を受け付けませんので、誤操作などがあると元に戻せず困ってしまう事があります
FileMakerでも「確定」のタイミングを制御したいという要望は少なくありません
入力確定の制御方法
では、どの様に制御するかと言えば、シンプルな方法としては確定をキャンセルする方法があります
FileMakerには、「OnRecordCommit」というレコード確定のタイミングでスクリプトを実行するスクリプトトリガがありますので、ここにレコード確定をキャンセルする処理を記述する事ができます
確定させない
全スクリプト終了
このスクリプトを「OnRecordCommit」に割り当てるとレコードの確定をさせない事ができます

他に、レコードを確定させるボタンと、変更を取り消すボタンを用意用意すれば、希望の処理が実現できるはずです
レコードの確定
レコード/検索条件確定 [ダイアログあり: オフ]
変更取り消し
レコード/検索条件復帰 [ダイアログあり: オフ]
これで処理を行ってみると、変更の取り消しは実行できましたが、確定処理が実行されません

ボタンを押して確定を実行する際に、スクリプトトリガが割り込む為、確定がキャンセルされてしまうのです
ボタンを押した時はキャンセル処理が発生しない様にする必要があります
レコードの確定
変数を設定 [$$確定; 値: 1] レコード/検索条件確定 [ダイアログあり: オフ] 変数を設定 [$$確定; 値: ""]
確定させない
If [$$確定 ≠ 1] 全スクリプト終了 End If
これで、任意のタイミングで確定処理を実行させる事ができる様になります

以上で今日のメモ書きは終了です
内容はいかがでしたか?
もしご意見やご要望、誤りの指摘などありましたら、下記フォームよりお気軽にご連絡ください