FileMakerでスクリプトを組んでいると、「この処理、本当に実行していい?」とユーザーに確認したくなる場面がよくあります。たとえば、大量データの削除や請求書の確定処理など、やり直しが難しい処理ほど、ワンクッション置きたいところです。
そのとき便利なのが「スクリプトの一時停止」と「カスタムダイアログ」を組み合わせた確認ダイアログの実装です。この記事では、専門用語をできるだけ避けながら、分かりやすく手順を紹介します。
FileMakerで「確認ダイアログ」が必要になる場面
まず、どんなときに確認ダイアログが役立つのか、イメージを整理しておきます。
- レコードをまとめて削除する前に「本当に削除しますか?」と確認したい
- 請求書や見積書を「確定」してロックする前に、最終確認したい
- 在庫の一括更新など、影響範囲が広い処理の前にユーザーの意思を確認したい
こうした「取り消しにくい処理」は、誤操作を防ぐために確認ダイアログを挟むのが定番です。FileMakerには、これを実現するための機能がいくつか用意されています。
確認ダイアログの基本:カスタムダイアログ
最も分かりやすい方法は、「カスタムダイアログを表示」ステップを使うやり方です。これは、FileMakerの標準的なメッセージボックスを表示する命令です。
基本の流れは次の通りです。
- 処理を始める前に「カスタムダイアログを表示」ステップを配置
- ダイアログに「この処理を実行してよろしいですか?」などのメッセージを設定
- ボタンを「はい」「いいえ」の2つに設定
- 押されたボタンによって、その後の処理を分岐
たとえば、スクリプトのイメージは次のようになります。
- ステップ1:カスタムダイアログを表示(メッセージ:「このレコードを削除してよろしいですか?」、ボタン:「はい」「いいえ」)
- ステップ2:If[ Get ( 最後のメッセージ選択結果 ) = 1 ]
- ステップ3: レコードを削除
- ステップ4:End If
ここでは「1」が「はい」ボタンを意味します。ユーザーが「いいえ」を選んだ場合は、If の中の処理は実行されません。
スクリプト一時停止で「考える時間」をつくる
カスタムダイアログとは別に、「スクリプトの一時停止/再開」ステップを使うことで、ユーザーにじっくり確認してからボタンを押してもらう仕組みも作れます。
「スクリプトの一時停止/再開」は、その名の通りスクリプトの動きを一旦止めて、ユーザーの操作を待つステップです。レイアウト上に自分で配置したボタンを押してもらう構成にすると、より柔軟な確認画面を作ることができます。
たとえば、次のような画面を用意します。
- 画面の上部に「これから選択中のレコードを削除します。本当によろしいですか?」と大きく表示
- レイアウトに「実行」「中止」の2つのボタンを配置
- ボタンに、それぞれ別のスクリプトを割り当てておく
この場合、「確認用スクリプト」の中で一時停止を使います。
一時停止を使ったスクリプト構成の例
一時停止を使った代表的な構成は次のようになります。
- 確認画面用のレイアウトに切り替える
- 注意書きや対象データを表示する
- スクリプトを一時停止する
- ユーザーが「実行」ボタンか「中止」ボタンを押す
- ボタン側のスクリプトで処理を続行または中止
スクリプトステップのイメージは以下の通りです。
- レイアウト切り替え[確認レイアウト]
- スクリプトの一時停止/再開[無期限]
- (ここより下は、一時停止解除後に実行される本処理)
- レコードの削除など、実際に行いたい処理
- 元のレイアウトへ戻る
一方、「実行」ボタンには「スクリプト再開」オプションを指定した「スクリプトの一時停止/再開」ステップを持つスクリプトを、「中止」ボタンには「スクリプトの中止」ステップを持つスクリプトを割り当てます。こうすることで、ユーザーの選択によって一時停止を解除し、その後の処理を「続けるか」「止めるか」をコントロールできます。
カスタムダイアログと一時停止の使い分け
どちらの方法を使うかは、次のように考えると判断しやすくなります。
- 簡単な確認だけでよい場合:「カスタムダイアログを表示」を使う
- 画面全体を使って丁寧に確認したい場合:確認用レイアウト+スクリプト一時停止を使う
たとえば「本当に削除しますか?」だけであれば、カスタムダイアログで十分です。一方、対象レコードの一覧を表示して、ユーザーに内容を見てもらいながら決めてほしい場合は、一時停止+専用レイアウトの方が親切です。
ユーザーに優しい確認ダイアログにするポイント
最後に、確認ダイアログを作るときのコツをいくつか挙げておきます。
- メッセージは「何が起こるのか」を具体的に書く(例:「選択中の10件のレコードを完全に削除します」)
- 「はい」「いいえ」よりも「削除する」「削除しない」のように、動作が分かるボタン名にする
- 取り返しのつかない処理は、なるべく確認画面で対象データを見せる
- 一時停止を多用しすぎると操作が重く感じられるので、本当に必要な場面だけに絞る
こうした点を意識することで、単なる「確認ダイアログ」から、ユーザーにとって安心して操作できる「安全装置」へと一歩進めることができます。