カスタムダイアログを表示
目的
カスタムテキストとラベルを使用するカスタムメッセージダイアログボックスを表示します。
参照
構文
カスタムダイアログを表示 [<タイトル>; <メッセージテキスト>; テーブル1::入力フィールド 1; ...]
オプション
[[カスタムダイアログを表示] のオプション] ダイアログボックスでは、ダイアログボックスのタイトル、メッセージのテキスト、およびボタンを設定したり、入力や表示に使用するフィールドを最大 3 つ指定することができます。
[一般] オプション
•[タイトル:] では、カスタムダイアログボックスのタイトルを指定します。テキストを入力するか、または [指定...] をクリックして計算式からダイアログボックスのタイトルを作成することができます。
•[メッセージ:] では、ダイアログボックスのメッセージを指定します。テキストを入力するか、または [指定...] をクリックして、計算式からメッセージのテキストを作成することができます。
•[デフォルトボタン:]、[ボタン 2:]、および [ボタン 3:] では、カスタムダイアログボックスに表示するボタンの数と、これらのボタンのラベルを指定します。ボタンのラベルを指定しなかった場合、このボタンはカスタムダイアログボックスに表示されません。ボタンのタイトルを 1 つも指定しない場合は、[OK] ボタンのみがダイアログボックスの右下隅に表示されます。計算式に基づいたボタンのラベルを作成するには、[指定...] をクリックして計算式を指定します。
•[データを確定] チェックボックスを使用すると、ダイアログボックスからデータベースに各ボタンの動作に基づいて入力を渡すことができます。アクティブなフィールドがない場合は、データが確定されます。フィールドがアクティブな場合は、レコードが確定したときにデータも確定します。
[入力フィールド] オプション
•[入力フィールド <n> を表示:] で入力フィールドをアクティブにします。
•[指定...] では、入力のフィールドを選択します。各入力領域は 1 つのフィールドに対応します。
•[パスワード文字 (*) を使用] を選択すると、入力時や、データベースからの表示の際にテキストがマスクされます。このオプションを使用すると、カスタムダイアログボックスに入力されるデータは表示されなくなりますが、実際のデータはデータベースに保存されており変更されません。
•[ラベル:] を使用して、フィールドラベル (ユーザに対してこの入力を識別するテキスト) を指定します。テキストを入力するか、または計算式からラベルを作成することができます。
互換性
スクリプトステップを実行する場所 | サポート |
FileMaker Pro | はい |
FileMaker Server | いいえ |
FileMaker Go | はい |
カスタム Web 公開 | いいえ |
FileMaker WebDirect | はい |
Runtime ソリューション | はい |
起点
FileMaker Pro 6.0 以前のバージョン
説明
このカスタムメッセージダイアログボックスを使用して、データベース内の最大 3 つのフィールドに対するユーザ入力を取得したり、データベース内の最大 3 つのフィールドからデータを表示することができます。カスタムダイアログボックスが表示されている間、スクリプトの実行は停止されます。入力に使用するフィールドには、テキスト、数字、日付、時刻、タイムスタンプ、またはオブジェクトのタイプを使用することができます。また、カスタムダイアログボックスでは、カスタムボタンタイトルの付いた最大 3 つのボタンを使用することもできます。
ユーザプロセスがどのボタンを押したかを判断するには
Get (最終メッセージ選択) 関数を使用します。
•「1」 - 最初のボタン (デフォルトでは [OK] ボタン) がクリックされた場合
•「2」 - 2 番目のボタン (デフォルトでは [キャンセル] ボタン) がクリックされた場合
•「3」 - 3 番目のボタンがクリックされた場合
メモ
•入力フィールドに入力された値がフィールドタイプに一致しない場合は、入力値の制限のエラーメッセージが表示されます。このダイアログボックスを閉じるには、入力値の制限のエラーを解決する必要があります。詳細については、
入力値の制限の設定を参照してください。
•指定したフィールドは、現在のレイアウトに表示される必要はありません。[フィールド設定] スクリプトステップと同様に、[カスタムダイアログを表示] スクリプトステップの入力フィールドはレイアウトとは無関係です。
•計算フィールドや集計フィールドにデータを挿入することはできません。
•[カスタムダイアログを表示] スクリプトステップを使用してデータを入力する場合、設定されている可能性がある
アクセス権の条件によって制限されます。(すべてのユーザに対してスクリプトを有効にするには、スクリプトパネルで現在のスクリプトを右クリックして、[
完全アクセス権を付与] を選択します。)
•Windows では、カスタムダイアログボックスのボタンを操作するキーボードショートカットを作成することができます。ボタンラベルの末尾に、アンパサンド (&) に続けてショートカットキーとして使用する英数字を入力して半角カッコで囲みます。たとえば、「完了」という名前のボタンに対して「D」というキーボードショートカット (Alt+D) を作成するには、「完了 (&D)」と入力します。
•すでに使用されているデータベースに対するボタンのデータの確定ステータスを変更する前に、そのボタンでユーザが現在期待している動作と、その動作を変更することによってデータベースに確定された (または確定されなかった) データの有効性にどのような影響があるかを考慮してください。
例 1
検索を実行します。レコードが見つからなかった場合は、カスタムダイアログボックスを表示します。
検索実行 [記憶する]
If [Get (対象レコード数) = 0]
カスタムダイアログを表示 ["レコードが見つかりません。"]
End If
例 2
新しいレコードを作成してユーザに情報の入力を求めるメッセージを表示し、「顧客詳細」レイアウトに切り替えます。最初のボタンは [キャンセル] なので、ユーザがカスタムダイアログボックスで Enter キー (Windows) または return キー (macOS) を押してレコードを誤って作成することはありません。
ウインドウの固定
新規レコード/検索条件
カスタムダイアログを表示 ["新規顧客"; "次のフィールドに情報を入力してください。"; 顧客::会社; 顧客::名前; 顧客::市区町村]
If [Get (最終メッセージ選択) = 1]
レコード/検索条件削除 [ダイアログあり: オフ]
Else
レイアウト切り替え [「顧客詳細」]
End If
例 3
検索モードに切り替えてユーザに検索条件を入力するように求めるメッセージを表示し、検索を実行します。検索で返されるレコードがない場合、検索を再度実行するかどうかを尋ねるメッセージを表示し、スクリプトを再度実行するか、すべてのスクリプトを停止します。
スクリプト: 検索
検索モードに切り替え [一時停止: オフ]
カスタムダイアログを表示 ["ID、名前、または市区町村で顧客を検索します。"; 顧客::ID; 顧客::名前; 顧客::市区町村]
If [Get (最終メッセージ選択) = 1]
検索実行 [ ]
If [Get (対象レコード数) = 0]
カスタムダイアログを表示 ["レコードが見つかりません。検索を再度実行しますか?"]
If [Get (最終メッセージ選択) = 1]
#このスクリプトをサブスクリプトとして呼び出します。
スクリプト実行 [「検索」]
Else
全レコードを表示
#すべてのスクリプトおよびサブスクリプトを停止します。
全スクリプト終了
End If
End If
Else If [Get (最終メッセージ選択) = 2]
ブラウズモードに切り替え [一時停止: オフ]
End If
関連項目