スクリプトを使用すると、多くの動作を自動化することができます。用途は多大に渡り、全てを説明することは困難です。今回は大まかな概要と簡単な使い方を解説します。
スクリプトとは
前回解説したボタンの設定と似ている部分があります。
前回のボタンは基本的に一つの動作を指定していました。簡単に説明すると、この一つの動作を連続してセットしていくのがスクリプトになります。どのような動作をセットできるのかは、下記のリンクに説明があります。
簡単な物から、高度で複雑なものまで様々です。目的の動作をセットしたスクリプトを作成して、一つのボタンにあてはめ、ボタンをクリックしたときに実行させたりできます。
「スクリプトトリガ」という機能を組み合わせると、決まったタイミングでスクリプトを実行することができます。例えば、
- ファイルを開いたときに実行させる
- ファイルを閉じるときに実行させる
- フィールドの値が変更されたら実行する
などがあります。用途に合わせて様々な機能を追加できるということです。
スクリプトを作ってみよう
文章で説明していてもわかりづらいのがスクリプトです。実際に作ってみましょう。
ここでは例として、検索を実行するスクリプトボタンを作っていましょう。リストレイアウトで、「氏名」フィールドにある値を検索する機能を作成します。
レコードが100件を超えて増えていくと、リストで目的のレコードを探すのも大変になってきます。そこで氏名を検索して目的のレコードを見つけられるようにします。
実は、FileMakerには標準で検索機能が搭載されています。これを使えば簡単なのですが、慣れるまで少しコツが必要です。簡単に実行できる検索機能を追加してみましょう。
「検索用フィールド」の作成
まず、検索する値を入力するスペースが必要です。「検索用フィールド」を作成します。レイアウトモードにして、管理ボタンをクリックします。
「データベース」を選択します。
フィールド名は「検索用フィールド」、タイプは「テキスト」とします。最後に「作成」をクリックします。
「検索用フィールド」が作成されました。ここで「オプション」をクリックします。
「データの格納」を選択し、「グローバル格納」をチェックします。最後に「OK」をクリックします。
データベースの管理画面に戻りますので、「OK」を押します。
「グローバル格納」とは、どのような意味かというと、「すべてのレコードで同じ値を表示するフィールドにします」ということです。
あるレコードでグローバル格納のフィールドに「テスト」と入力したとします。すると、新規レコードを作成しても、既存のどのレコードにも、そのフィールドには「テスト」と入力されています。逆に、どのレコードでグローバル格納に設定したフィールドを編集しても、すべてのレコードで編集した内容が適応されます。
検索用語を入力するフィールドは検索の時にしか使用しませんので、通常は何も入力されていない空欄のフィールドにしたいのです。そのため、検索が終わったらそのテキストを消去するようなスクリプトを入れ込んでいきます。そのため、グローバルフィールドが適しているかと思います。
「フィールドピッカー」をクリックします。作成した「検索用フィールド」をヘッダの位置までドラッグします。
適当に形や大きさを整えます。ラベルは消去してしまいす。
スクリプトの作成
まず、スクリプトをクリックします。
「スクリプトワークスペース」をクリックします。
「+」をクリックしてスクリプト名を「検索ボタン」とします。
ステップの中の「制御」から「エラー処理」を選択してダブルクリックします。
エラー処理が「オン」になっていることを確認します。
次に「対象レコード」の「全レコードを表示」をダブルクリックします。
次にステップの中の「編集」から「切り取り」を選択してダブルクリックします。
「指定フィールドへ移動」の設定をクリックします。
フィールドの指定画面が出てきますので、「検索用フィールド」を選択して「OK」を押します。
次に、「切り替え/移動」にある「検索モードに切り替え」をダブルクリックします。
検索条件の指定はしませんが、「一時停止」をクリックして「オフ」にします。
次に「編集」から「貼り付け」をダブルクリックします。
貼り付けるフィールドを指定します。
「氏名」フィールドを選択して「OK」をクリックします。
次に、「対象レコード」から「検索実行」をダブルクリックします。
ここまできたら一度「スクリプワークスペース」のウインドウを閉じます。
「すべてを保存」を選択します。
次に、スクリプトを実行するためのボタンを設置します。レイアウトモードにします。
ボタンツールをクリックした後、検索用フィールドの右側にドラッグしてボタンを作成し、ボタン名を「検索」と入力します。
「処理」をクリックし、「スクリプトを実行」を選択します。
先ほど作成した「検索ボタン」スクリプトを選択して「OK」をクリックします。
「レイアウトの終了」をクリックしてブラウズモードにします。
試しに、「三郎」で検索してみましょう。
検索用フィールドに「」と入力して作成した「検索」ボタンをクリックします。
氏名である「テスト三郎」だけが検索に引っかかって抽出されました。元の表示に戻すには、「すべてを表示」をクリックします。
どうでしょう?プログラムを書かなくてもマウスとキーボードでここまで出来てしまいます。
スクリプトは個々の動作を積み上げるように作成し、一連の流れで実行することができます。用途に合わせて様々な動作を制御することができます。
次回は、「検索ボタン」スクリプトの1〜6までが、どのような動作をしているのかを解説していきます。