スクリプトトリガについて その2 (FileMaker Pro12)
2013年04月16日 12:14 PM
FAQ
今回は、前回ご紹介したファイルメーカー10 (FileMaker 10)から導入されたスクリプトトリガ機能の続きです。
下記FileMaker社のスクリプトトリガについてのページにあるスクリプトトリガの活用法を実際に実装してみた一例をご紹介します。
http://www.filemaker.co.jp/products/filemaker-pro/script_triggers.html
※あくまでも一例です。ご紹介している方法が最適な方法とは限りませんので、ご注意ください。
◆たくさんの便利なこと①
『自動的に次のフィールドに進ませる』
・郵便番号フィールドで8桁目が入力されたら自動的に次のフィールドへ移動するというものを実装してみます。
1.郵便番号フィールドを選択した状態で右クリックをし、「スクリプトトリガ設定」をクリックします。
2.「スクリプトトリガ設定」画面でOnObjectModifyを選択し、ダブルクリックをします。
3.「スクリプト設定」画面が表示されるので、「+」ボタンをクリックします。
4.「スクリプトの編集」画面が表示されるので、以下のようなスクリプトを作成します。
If [ Length ( ○○::郵便番号 ) ≥ 8]
次のフィールドへ移動
End If
5.OKボタンを3回クリックし、元の画面に戻ります。
6.レイアウトを保存し、ブラウズモードに切り替え、郵便番号を入力してみましょう。
郵便番号を入力すると自動的に次のフィールドへ進むようになりました。
◆たくさんの便利なこと②
『自動的に新しいレイアウトに切り替える』
・氏名フィールドでEnterキーが押されたら自動的にレイアウトを切り替えるというものを実装してみます。
1.氏名フィールドを選択した状態で右クリック、「スクリプトトリガ設定」をクリックし、
表示された「スクリプトトリガ設定」画面でOnObjectKeystrokeを選択し、ダブルクリックをします。
2.「スクリプト設定」画面が表示されるので、「+」ボタンをクリックし、
表示された「スクリプトの編集」画面で、以下のようなスクリプトを作成します。
If [ Get ( トリガキー入力 ) = ¶]
レイアウトの切り替え [「○○○○」]
End If
3. OKボタンを3回クリックし、元の画面に戻ります。
レイアウトを保存し、ブラウズモードに切り替え、氏名でEnterキーを押下してみましょう。
自動的に指定したレイアウトに切り替わるようになりました。
◆たくさんの便利なこと③
『入力されたデータを自動的に訂正する』
『入力できるデータをアルファベットや数字だけに制限する』
・携帯電話フィールドで3文字目、8文字目が入力されたら自動的に「-」を挿入し、
数字以外の入力と13文字目以降の入力を受け付けないというものを実装してみます。
1.携帯電話フィールドを選択した状態で右クリック、「スクリプトトリガ設定」をクリックし、
表示された「スクリプトトリガ設定」画面でOnObjectKeystrokeを選択し、ダブルクリックをします。
2.「スクリプト設定」画面が表示されるので、「+」ボタンをクリックし、
表示された「スクリプトの編集」画面で、以下のようなスクリプトを作成します。
#Backspace Delete Tabは除外
If [ Code ( Get ( トリガキー入力 ) ) ≠ 8 and Code ( Get ( トリガキー入力 ) ) ≠ 9 and Code ( Get ( トリガキー入力 ) ) ≠ 127 ]
#数字以外は受け付けない
If [ IsEmpty ( GetAsNumber ( Get ( トリガキー入力 ) ) ) ]
現在のスクリプト終了 [ 結果: False ]
End If
#3文字目、8文字目の場合は「-」を挿入、13文字の場合は数字の入力を受け付けない
If [ Length ( ○○::携帯電話 ) = 3 or Length (○○::携帯電話 ) = 8 ]
フィールド設定 [ ○○::携帯電話; ○○::携帯電話 & “-” ]
Else If [ Length ( ○○::携帯電話 ) ≥ 13 ]
現在のスクリプト終了 [ 結果: False ]
End If
End If
3. OKボタンを3回クリックし、元の画面に戻ります。
レイアウトを保存し、ブラウズモードに切り替え、携帯電話を入力してみましょう。
数字以外の入力と13文字目以降の入力ができなくなり、自動的に「-」がつくようになりました。
今回の例のように、スクリプトトリガのキャンセル(「現在のスクリプト終了」スクリプトステップで偽(False、0)を返す)を
利用するとより便利な使い方ができると思いますので、ぜひお試しください。
今回はここまでのご紹介とさせていただきますが、もし、他の例も見たい!というご要望がありましたら、
メール、Facebook、Twitterなどでお気軽におっしゃってください。また他の例もご紹介させて頂きます。