スクリプトの検討
スクリプトの検討を慎重に行うと、目的の作業を効果的に実行することができます。次の点を考慮して検討してください。
  •
作業をさらに細かく分けることができますか? 細かく分けた作業それぞれに対するサブスクリプトを定義してから、それらのサブスクリプトを実行するスクリプトを定義することもできます。 スクリプトのデザインとテストは、1つの複雑なスクリプトに対して行うよりも、いくつかの小さなスクリプトに対して行う方が簡単です。 また、サブスクリプトは他のエリアで再使用することもできます。サブスクリプトを別のスクリプト内で実行する場合は、スクリプト実行を使用します。
  •
どのスクリプトステップをどの条件で実行しますか? 常にすべてのスクリプトステップを実行する必要がありますか? ある条件が満たされるまで何度も実行する必要のあるスクリプトがありますか? スクリプトは他のスクリプトやサブスクリプトを呼び出しますか? スクリプトの進行は様々な方法で制御できます。条件分岐スクリプトステップを使用したスクリプトの作成の詳細については、制御に関連するスクリプトステップを参照してください。
  •
スクリプトを特定のレイアウトで実行しますか? スクリプトはファイルレベルで定義され、どのレイアウトでも使用することができるため、意図したレイアウトで実行されることを確認する必要があります。レイアウトを変更するには、レイアウト切り替えを使用します。定義した条件(レイアウト名など)に基づいてスクリプトを実行するには、Ifと他の制御に関連するスクリプトステップを使用します。
  •
必要なデータがすべて1つのデータベースファイルに含まれていますか? それとも、スクリプトで複数のファイルを処理しますか? 複数のファイルを使用する場合、スクリプトで開く必要のあるファイルはどれですか? スクリプトはどのファイルで定義すべきですか? 通常、スクリプトは処理するデータと同じファイルで定義します。複数のファイルを使用したデータベースソリューションの場合、実行するタスクの複雑さによっては、各ファイルに別個のスクリプトが必要になることがあります。
  •
どのレコードでスクリプトを開始しますか? たとえば Loopを使用する場合は、最初のレコード、最後のレコード、特定のレコード、または対象レコード内にある現在のレコードのどのレコードでループを開始するかを決定します。開始レコードを指定するには、レコード/ 検索条件/ ページへ移動関連レコードへ移動、または ポータル内の行へ移動を使用します。 切り替え/移動スクリプトステップを含めない場合は、スクリプトの実行時に選択されているレコードからループが開始されます。
  •
どのウインドウを使用しますか。 スクリプトは最初に特定のウインドウに付けられます。このウインドウが背景にある場合があります。 スクリプトは、その中に記述された動作によって他のウインドウに切り替わるまで、そのウインドウに付けられたままとなります。 たとえば、異なるウインドウを指定するには、ウインドウを選択を使用します。 指定したウインドウが使用できない場合、スクリプトはファイルの一番手前のウインドウに切り替わります。 スクリプトを一時停止すると、関連ウインドウは手前に移動します。
  •
スクリプトでモードを切り替える必要がありますか? スクリプトは、ブラウズモード、検索モード、レイアウトモード、プレビューモードで実行できます。スクリプトの処理を実行する前に、スクリプトが適切なモードになるようにしてください。たとえば、フィールドやレコード内のデータを修正する場合は、ブラウズモードに切り替えを使用し、検索条件の設定や実行を行う場合は、検索モードに切り替えを使用します。
注意  レイアウトモードでスクリプトを実行しようとすると、自動的にブラウズモードに切り替わります。
  •
スクリプトでどのフィールドやレイアウトが必要ですか?一部のステップ(フィールドへ移動テキストを挿入計算結果を挿入)では、現在のレイアウト上にフィールドが必要ですが、その必要がないステップ(フィールド設定フィールド内容の全置換)もあります。スクリプトで必要なフィールドを含むレイアウトに切り替えるには、レイアウト切り替えを使用します。
  •
スクリプトは、データベース、現在の対象レコード、または特定のレコードセット内のすべてのレコードで機能する必要がありますか? 作業に必要なレコードだけを対象レコードに含める場合は、検索実行全レコードを表示対象外のみを表示レコードを対象外に複数レコードを対象外に検索条件を変更を使用します。
  •
レコードを特定の順序で処理する必要がありますか? 現在のソート順、特定のソート順、またはソート解除(レコードの作成順)の中から選択します。レコードを適切な順序で並べてから処理するには、ループを開始する前に、 レコードのソートまたは レコードのソート解除を使用します。
  •
  •
スクリプトをいつ終了しますか? すべてのレコードが処理された後ですか? 指定された条件が満たされた後ですか? スクリプトが指定された条件を満たしたときに作業を実行するには、IfElse If、および Exit Loop Ifを使用します。
  •
スクリプトのテストはどのように実行しますか? あらかじめ定義された位置でスクリプトを一時停止する場合は、スクリプト一時停止/続行を使用します。元のデータを保持するには、データベースのクローンを保存してから、コピーしたデータベース内でスクリプトの管理とテストを行います。 スクリプトのテストが終了したら、元のファイルからクローンにデータをインポートします。
  •
空の対象レコードなどのエラー状態をどのように処理しますか?  Get ( 最終エラー )を使用すると、FileMaker Pro が最後にレポートしたエラー状態を取得できます。 ユーザによるエラーや予期しない結果に適切に対処するためのスクリプトを作成するには、この関数と、IfElse If、および Elseを使用します。 さらに細かく制御するには、エラー処理を使用してエラー発生時に表示されるメッセージを非表示にし、カスタムダイアログを表示を使用して独自のスクリプトで置き換えます。
  •
すべてのユーザにすべてのスクリプトの実行を許可しますか?  スクリプトに対するユーザのアクセスを制御するには、アクセス権セットを使用します。アクセス権セットを使用することで、ユーザがスクリプトを実行または変更する権限を、個々のスクリプトに対して許可するか、すべてのスクリプトに対して許可するか、それともどのスクリプトにも許可しないかを設定することができます。また、今後ファイルに定義する新しいスクリプトの各アクセス権セットに対して、デフォルトのアクセス権を設定することもできます。完全アクセス権で実行するスクリプトを設定すると、割り当てられているアクセス権では通常は実行できない操作を、ユーザに代わってスクリプトで処理することが可能です。詳細については、アクセス権セットの作成と管理を参照してください。
  •
ユーザはこのスクリプトをどのように実行しますか? スクリプトを実行するには、ボタンを作成するか、[スクリプト] メニューへのスクリプトの追加を指定します。 スクリプトは、[スクリプト管理] ダイアログボックスから実行したり、データベースが開いたときや閉じるときに実行することもできます。ファイルを開くときや閉じるときのスクリプトの実行の詳細については、ファイルオプションの設定を参照してください。
これらの点を考慮して、データベースにスクリプトを定義します。スクリプトの作成と編集を参照してください。