FileMakerのカスタムダイアログは、便利なことに入力値をダイアログの中で入力することができます。
いや、そりゃ他の言語でもできるでしょ、
という声もあると思いますが、ちょっとした入力をさせるだけなのに小さなウインドウをわざわざ作って実装しなくても済むので比率高めに(何比率?)結構便利に使っています。
便利なカスタムダイアログですが、せっかく入力フィールドを設定してダイアログを出しても、入力後のボタンの設定によってはその入力内容が反映されません。
あれ、なんで?
とスクリプトデバッガを走らせる前に、「カスタムダイアログを表示」ステップを確認してみましょう。
現象
こんなこと、ないですか?
入力フィールドに入力して、上部画面の場合、「上書き」をクリック。
確認のために表示したカスタムダイアログでは、入力されたID(val1)とPWD(val2)に何も入っていない。。。
猛者の方々は、当然お気づきですよね。
スクリプトを確認
では、実装しているスクリプトを確認してみましょう。
なんの変哲もない、カスタムダイアログの実装ですが、3行目のカスタムダイアログの設定を見てみます。
入力フィールドの実装は、入力フィールドの変数もラベルも設定されていて、問題なさそうです。
一般設定はどうでしょう。
ボタン2の「上書き」の設定で、「データを確定」にチェックが入っていません。
「カスタムダイアログを表示」の「データを確定」とは
Claris FileMaker Pro 19 ヘルプの「カスタムダイアログを表示」より、引用してみます。
・[データを確定] チェックボックスを使用すると、各ボタンの動作に基づいてダイアログボックスからターゲットフィールドまたは変数に入力データを渡すことができます。フィールドがターゲットになったときにレイアウト上にアクティブなフィールドがない場合はデータが確定されます。フィールドがアクティブな場合は、レコードが確定したときにデータも確定します。ボタンのチェックボックスが無効な状態でユーザが入力フィールドにデータを入力した場合、ユーザがボタンをクリックしてもレコードに対してデータが確定されないか、またはデータが変数に格納されません。
つまり、入力したデータの確定するかどうかを設定せよ、ということですね。
「カスタムダイアログを表示」の修正
「データを確定」をボタンの設定に追加しないと、せっかく入力フィールドで設定した内容が変数に確定されないということなので、入力フィールドの入力値をスクリプトで確定したい場合、もしくはテーブルのフィールドに設定したい場合は、このチェックを忘れないようにしましょう。
入力フィールドの設定がなく、単純に3択のつもりでボタンを設定する場合は、「データの確定」はなくてもOKです。
再度テスト
では、修正したスクリプトを実行して、「上書き」ボタンをテストしてみましょう。
入力したら、「上書き」ボタンをクリックします。
ポイント
そんなに大層なことではないのですが、FileMakerのスクリプトは簡単に書ける反面、設定内容がGUI(懐かしい言い回し。。。)なので、一見すると正しく見える実装も意図しない設定の漏れがあるかもしれません。
なんか思った動きをしないな、と思ったら、ざっとスクリプトを確認するだけでなく、スクリプトステップの設定ボタン(歯車マーク)を表示して内容も確認してみてくださいね。