<スクリプトを使ってみよう>
さて、いよいよスクリプトです。作成したシステムをとても便利に、また快適に操作出来るように作成するにはスクリプトはとても重要になってきます。但し、業種や会社、病院、学校によって日常の作業に流れは千差万別で、尚且つファイルメーカーProでは必ずこのように作成しないと動作しないというものでもないので、初心者に方には一層難しくて、資料や参考書を探すのに苦労されているかたが多いようです。
いろいろなスクリプトを作成して、経験を積んでいくことが一番の学習方法ですが、基本的なことはファイルメーカーProのシステム上で手動で作業を行う流れをスクリプトの命令に置き換えるということです。長い作業の場合はノートなどに、もし手動で操作した場合の流れをできるだけ詳細に書いて、スクリプトに置き換えていくと勉強になるかと思います。
その作業の中で
○どのレイアウトで、どのモードで、何の処理を実行するか?
○処理を行うフィールドはそのレイアウトに配置されているか?
などを気をつけてスクリプトを組んでいきます。その作業の中でちょっとしたワンポイントを勉強していきましょう。
|
■使う人にやさしい設計を
ファイルメーカーProの検索機能は使わずにブラウズモードのまま、検索年月を選択して検索を自動実行するスクリプトを作成してます。グローバルのフィールドに入力した検索用の売上の年月で、売上データの検索をしますので
手動で行った場合の検索の流れは
1.検索する年月を入力する。
2.検索モードに切り替える。
3.入力された年月から検索条件を日付範囲で作成して入力する。
4.検索実行する。
5.売上日順に並び替える。
となります。
|
このような検索実行用のレイアウトで売上の年月を選択してボタンを押すと、
その年月の売上データを自動検索するように最終的に作成していきます。
上記のように検索用グローバルフィールドのあるテーブルと売上データのテーブルがあります。

ボタンを押した時の売上検索の基本的なスクリプトは以下のようになります。

計算結果を挿入の計算式は以下のようになります。
画面の都合で改行しています。計算式は改行しても
問題なく実行されますので、複雑な計算式は改行
して作成しても構いません。
検索年月はグローバルフィールドを使っているので、そのまま「計算結果を挿入」スクリプトで
直接フィールドを使用できますが、ここでは変数を使ってみました。変数はスクリプト作成時に
データを一時保存しておく場合やデータを移動させる場合などにとても便利です。
上記のように入力された検索年月を変数として格納して、売上データのレイアウトへ切り替えて
売上日検索のための日付範囲を変数から計算式で作成し、検索実行後にソートしています。


検索ボタンを押して、該当するデータがある場合は上記のように表示されますが・・・
該当するデータがない場合に基本形では上記のようなアラートが表示されてしまいます。
押すべきボタンが4つ並んでいて、ファイルメーカーProに慣れている方でも一瞬戸惑って
しまいます。またキャンセルボタンを押した場合にこの画面で止まってしまい、また元の
画面に戻って別月で検索したい場合、手動で切り替えて再検索する必要があります。

使い勝手の良いスクリプトを作成するには上記のようなステップを追加します。
「エラー処理」をオンにすると、先の図のようなファイルメーカーProのアラートが表示
されなくなります。Ifの条件分岐で「エラー401」で検索条件に該当するデータが
無い場合はボタンを押した元のレイアウトに戻って、カスタムダイアログを表示し、
スクリプトを終了します。「ユーザによる強制終了を許可」をオフにすることで
何か問題があってもスクリプトを最後まで実行するというスクリプトになります。
上記スクリプトを実行して、該当する売上データがない場合以下のように
検索実行後に元のボタンの画面へ戻ってメッセージを表示します。


さらに上記のようなステップを追加して、検索年月を選択していない時には
アラートを表示して、検索スクリプトを実行してしまわないようにすると、
該当データがないためにアラートが出ているのか、月が選択されていない
ためにアラートが表示されているのかが判断できるスクリプトとなります。
検索月を選択しないでボタンを押すと以下のようなアラートが表示されます。
以上のように同じスクリプトでも、エラー処理などを追加することでシステムを使用するのがはじめての方でも問題なく使用できる快適なシステムとなります。いろいろな状況を考慮して、条件分岐などでステップを作成して経験を積んでいくことで使い勝手の良いシステムとなりますので皆さんも是非挑戦してみてください。 |
■スクリプト作成時の注意
スクリプトを組んでいく時に、その状況によって動作しないスクリプトステップもあります。ここではその中の1つをご紹介致します。よく使用するテキストや計算式などを入力するステップについてです。 |
上図のようにテキストタイプにフィールドが4つあります。


図のようなテキストの入力に使うスクリプト4つでテキスト入力のスクリプトを作成
※上の3つのステップは現在開いている1つのレコードのみにデータを入力しますが、
全置換の処理は検索、表示されているレコード全てのデータを置き換えます。


新規レコードを1つ作成して、スクリプトを実行すると当然テキストが入力されます。


図のように同じレイアウトを複製して、フィールドを削除したレイアウトで
スクリプトを実行して、フィールドのあるレイアウトに切り替えてみると・・・

フィールド設定と全置換の処理ではテキストが入力されていますが、他の処理では
入力されていませんし、エラーも出ませんでした。 この場合、フィールド設定や
全置換はスクリプトを実行した画面にフィールドが存在しなくても動作しましたが、
「テキストを挿入」、「計算結果を挿入」のステップは動作しませんでした。
上記のように同じ入力の処理でも状況によって処理が不完全になり、スクリプトが
正確に実行されない場合もございますのでご注意ください。基本的にはフィールドの
あるレイアウトに切り替えて、実行することで不具合を無くしていくことができます。
|