スクリプトエディター

フォームの演算やスクリプトを作成、修正および表示するには、スクリプトエディターを使用します。例えば、2 つの数値フィールドを合計する単純な計算のスクリプトや、エンドユーザーの操作に応じてフォームの外観を変更する複雑なスクリプトを作成できます。Designer は、FormCalc と呼ばれる Designer 独自のスクリプト言語でのスクリプティングと JavaScript でのスクリプティングをサポートしています。

デフォルトでは、スクリプトエディターは Designer ワークスペースの上端に表示されます。スクリプトエディターには 1 行表示と複数行表示という 2 つの表示モードがあり、必要に合わせてどちらかを選択できます。1 行表示では、レイアウトエディターと他のパレット用のスペースが最大限に表示されます。複数行表示では、スクリプトを書くためのスペースが最大限に表示されます。

表示
ユーザー定義のスクリプティングのためのフォームデザインのイベントをすべて表示します。目的のオブジェクトに適用できないイベントは灰色で表示されます。演算やスクリプトを含むイベントは、名前の横にアスタリスク(*)が表示されます。

子オブジェクトのイベントを表示ボタン
現在のオブジェクトおよびすべての子オブジェクトについて、イベントリストで現在選択しているイベントを表示します。階層パレットで最上位のオブジェクトを選択している場合、このオプションでは、フォーム上のすべてのオブジェクトに対してイベントリストで現在選択しているイベントが表示されます。

関数
言語リストで現在選択しているスクリプティング言語に応じて、使用可能な FormCalc または JavaScript 組み込み関数のリストを表示します。

スクリプト編集フィールドに関数を配置し、一覧から関数を選択して Enter キーを押します。

スクリプトの構文をチェック
フォームに含まれるすべてのスクリプトの構文が正しいかどうかチェックし、エラーがあればレポートパレットの「警告」タブに表示します。

言語
現在の演算やスクリプトに使用するスクリプト言語を指定します。2 つのオプションを指定できます。

言語リストに表示されるスクリプト言語は、オプションダイアログボックスのワークスペースパネルで新規フォームのデフォルトとして選択したスクリプト言語オプションと一致します。ただし、フォームのプロパティダイアログボックスの「デフォルト」タブで現在のフォームのスクリプト言語設定を変更した場合は、言語リストに表示されるスクリプト言語も新しいイベントの新規スクリプトに対して同様に変更されます。フォームのプロパティダイアログボックスでスクリプト言語オプションを変更しても既存のスクリプトのスクリプト言語は変更されません。イベントに既に含まれるスクリプトが削除された場合、Designer の現行セッション中はスクリプトエディターで引き続き同じスクリプト言語が使用されます。

実行場所
演算やスクリプトを実行する場所を指定します。3 つのオプションを指定できます。
  • クライアント演算とスクリプトは、クライアントアプリケーション(Acrobat、Adobe® Reader®、Web ブラウザーなど)がフォームを処理するときに実行します。

  • サーバー演算とスクリプトは、サーバーアプリケーション(Adobe® LiveCycle® Forms 10 など)がフォームを処理するときに実行します。

  • クライアント / サーバー HTML クライアントアプリケーションでクライアントサイドのスクリプティングをサポートする場合を除き、演算やスクリプトは、サーバーアプリケーション(例えば Forms)がフォームを処理するときに実行します。例えば、データベースにアクセスして入力前のフォーム内容を設定するスクリプトなどがあります。

イベント伝播
「イベント伝播」チェックボックスを表示するには、ツール/ワークスペースのダイアログに移動し、「ワークスペース」タブで、「イベント伝播オプションの表示」チェックボックスを選択します。
スクリプトエディターでイベント伝播を有効にすることで、スクリプトをグローバルにできます。その設定はフォームイベントの先祖コンテナへの伝播を可能にします。イベント伝播はフォーム内のスクリプト数を減らすことができます。たとえば、無効なフィールド、サブフォーム、または除外グループの外見をコントロールするグローバルスクリプトを作成できます。グローバルイベントのいくつかの例を以下に示します。
  • アクティブなフィールドに色を付ける enter/exit/mouseEnter/mouseExit イベント。

  • フォームセッションのキーストロークを追跡する変更イベント。