FileMakerでボタンを押したとき、「本当に削除していいですか?」「この内容で登録してよいですか?」といった“確認画面”を出したいことは多いと思います。標準のダイアログでも実現できますが、見た目の自由度が低く、入力内容の確認もしづらいのが難点です。
そんなときに便利なのが「カードウィンドウ」を使った確認画面です。レイアウトのデザインをそのまま活かしながら、画面の中心に小さなウィンドウを表示できるので、きれいで分かりやすい確認画面を作ることができます。
この記事では、専門用語をできるだけ減らしながら、カードウィンドウでシンプルな確認画面を作る手順を解説します。
カードウィンドウで確認画面を作るメリット
まず、なぜカードウィンドウが確認画面に向いているのかを整理しておきます。
- 画面の中央に小さく表示できる
メイン画面の上に重ねて表示できるので、ユーザーの目線が自然に集まります。 - レイアウトを自由にデザインできる
文字サイズや色、ボタン配置などを好きなように調整できるため、見やすく分かりやすい確認画面になります。 - 入力内容を見せながら確認できる
カードウィンドウの背景を透過すれば、裏側にある元の画面を見せたまま確認させることも可能です。 - 「はい/いいえ」以外の選択肢も作りやすい
「はい」「いいえ」に加えて「保留」など、任意のボタンを好きなだけ配置できます。
標準のカスタムダイアログより一手間はかかりますが、その分自由度と使いやすさが大きく向上します。
確認用レイアウト(カードウィンドウ用)を作成する
最初に、確認画面として表示する専用レイアウトを作ります。既存のテーブルを利用しても、専用のテーブルを作っても構いませんが、まずはシンプルに同じテーブルを使う形を想定します。
- レイアウトモードに切り替えます。
- 「新規レイアウト/レポート」を選択します。
- 元となるテーブルを選び、「フォーム」形式をベースに作成します。
- レイアウト名を「確認_カード」など、分かりやすい名前にします。
- 画面サイズを、幅・高さともに小さめに調整します(例:幅500px、高さ300px程度)。
- 中央に確認メッセージ用のテキストを配置し、「このレコードを削除してよろしいですか?」など、用途に応じた文言を書きます。
- 下部に「はい」「いいえ」などのボタンを2つ配置します。
ボタンにはそれぞれ別のスクリプトを割り当てても構いませんが、後で説明するように「スクリプト引数」で結果を受け取ると管理しやすくなります。
カードウィンドウを表示するスクリプトを作る
次に、カードウィンドウを開くためのスクリプトを用意します。ここでは例として、「削除ボタンを押したときに、カードウィンドウで確認してから削除を実行する」流れを想定します。
- スクリプトワークスペースを開き、新しいスクリプトを作成します。
- スクリプト名を「削除_カード確認付き」などにします。
- 以下のような流れでステップを組み立てます。
- 「新規ウインドウ」ステップを追加し、
- スタイル:カード
- レイアウト:先ほど作成した「確認_カード」
- 幅・高さ:レイアウトに合わせて指定
- 閉じるボックス:オフ(ユーザーが勝手に閉じられないようにする場合)
- 「カードウインドウの背景に影をつける」や「ダイムシャドウ」など、背景の暗さに関するオプション:必要に応じてオン/オフ
- カードウィンドウ側で「はい」「いいえ」が押されるのを待ちます。
ここでポイントとなるのが、「どちらのボタンが押されたか」をメインスクリプトに戻す仕組みです。一般的には、次のような方法がよく使われます。
- グローバル変数(例:$$confirmResult)に「YES」「NO」などの値をセットする
- ボタンに割り当てるスクリプトのスクリプト引数で結果を渡す
ボタンで結果を返すスクリプトを作る
カードウィンドウの「はい」「いいえ」ボタンには、それぞれ簡単なスクリプトを割り当てておきます。ここでは、1本のスクリプトで両方のボタンから呼び出す方法を紹介します。
- 新しいスクリプトを作成し、「カード確認_ボタン処理」などの名前を付けます。
- ボタン側では、「スクリプトを実行」ステップにこのスクリプトを指定し、スクリプト引数に「YES」「NO」などの文字列を渡します。
- スクリプト本体では、次のようなステップを設定します。
- Set Variable($$confirmResult)= Get ( スクリプト引数 )
- Close Window [現在のウインドウ]
これで、「はい」ボタンが押されたときは $$confirmResult に「YES」、「いいえ」ボタンなら「NO」が入った状態でカードウィンドウが閉じます。
メインスクリプト側で結果を判定する
メイン側の「削除_カード確認付き」スクリプトに戻って、ボタンの結果に応じて処理を分けます。流れとしては次のようになります。
- カードウィンドウを開く
- カードウィンドウ内でボタンが押され、ウィンドウが閉じられる
- グローバル変数 $$confirmResult の内容をチェックする
- 「YES」なら削除を実行、「NO」なら何もしない
具体的には、カードウィンドウを開いた直後に「スクリプトの一時停止/再開」ステップを入れて、カードウィンドウ側のスクリプトが終わるのを待つ方法があります。再開後、If ステップで次のように判定します。
- If [ $$confirmResult = “YES” ] の中に「レコードを削除」ステップを置く
- Else の中は何もせず、スクリプトを終了する
最後に、使い終わった $$confirmResult をクリアするステップ(Set Variable で空をセット)を入れておくと、次回以降の誤動作防止になります。
実際に使ってみて調整するポイント
一通り仕組みができたら、実際にボタンを押して動きを確かめてみましょう。使いながら、次のような点を微調整すると、より使いやすくなります。
- ボタンの色・サイズ
誤操作を防ぐため、「はい」ボタンは慎重に押してもらえるような色(例えば赤系)にする、あるいは逆に「いいえ」を強調するなど、運用に合わせて調整します。 - メッセージの具体性
「本当に削除しますか?」だけでなく、「顧客名:◯◯◯ のレコードを削除します。よろしいですか?」のように、対象が分かるメッセージにすると安心です。 - 閉じるボックスの扱い
画面右上のバツ印で閉じられたくない場合は、カードウィンドウ作成時に閉じるボックスをオフにしておきましょう。 - 背景の暗さ
背景を暗くしすぎると元の情報が見えづらくなります。確認内容に応じて、暗くするかどうかを決めてください。
まとめ:カードウィンドウで分かりやすい確認画面を
FileMakerのカードウィンドウを使うと、標準のダイアログよりも分かりやすく、見た目も整った確認画面を作ることができます。手順をまとめると、
- 確認用の小さなレイアウト(カードウィンドウ用)を作る
- カードウィンドウを開くメインスクリプトを用意する
- 「はい」「いいえ」ボタンでグローバル変数などに結果を渡す
- メインスクリプト側で結果を判定し、処理を分ける
という流れになります。一度仕組みを作ってしまえば、削除以外にも「登録前の最終確認」「重要なステータス変更の確認」など、さまざまな場面で再利用できます。ぜひ自分のソリューションに合った確認画面を作って、安心して操作できる画面作りに役立ててみてください。