calculate イベント

説明

このイベントは次の状況で開始されます。

  • フォームデザインとデータが結合されてフォームが完成するとき。

  • フォームの入力者が計算された値を手動で上書きしなかった場合に、計算が依存する値(特定のフィールドの値など)の変更が発生したとき。その結果、オブジェクトにはイベントの戻り値が表示されます。手動で上書きされたフィールドのプロパティは、オブジェクトパレットの「値」タブにあります。

  • フィールドのフォーカスが失われたとき。例えば、フォームの入力者がクリックするか Tab キーを使用してフィールドを終了する場合などです。

    calculate イベントを使用して演算またはスクリプトを実行する場合は、発生する可能性のある次の問題について注意が必要です。

  • calculate イベントの演算とスクリプトでは、フォームフィールドとデータ値を除き、フォームの構造を変更できません。

  • calculate イベントによって挿入されるコンテンツは、オブジェクトに対して関連付けられている検証に準拠する必要があります。準拠しない場合は、検証エラーが発生します。

  • 演算とスクリプトに無限ループを含めることはできません。これは、フォームによって値が連続して更新されるためです。例えば、ループ式の一環としてフィールドの値を増やすスクリプト(while ループや for ループなど)では無限ループが作成される場合があります。

  • calculate イベントで評価される最後の式は、現在のフォームオブジェクトの値の入力に使用されます。例えば、calculate イベントのスクリプトでは、最初に現在のフィールドの値を 500 に設定してから、別のフィールドの値を 1000 に設定します。実行時には、両方のフィールドに値 1000 が表示されます。その結果、calculate イベントに追加するスクリプティングを、現在のフィールドの値の設定を行うスクリプティングに制限する必要があります。

タイプ

プロセスイベント

サポート

クライアントアプリケーション

使用の可否

Acrobat および Adobe Reader

HTML ブラウザー

バージョン

XFA 2.1

フィールドの数値を更新するには、calculate イベントを使用します。このイベントは他のほとんどのイベントの直後に開始されるためです。例えば、発注書フォームでは、calculate イベントをフィールドで使用して、注文のコストを基に消費税の割合を判断することができます。この計算はフォームフィールドの値が変更されるたびに開始されるので、常に正しい消費税の値が表示されます。

ただし、calculate イベントは複数回開始できるので、イベントに追加する演算またはスクリプトによってデータ値が不要に増分されないようにする必要があります。例えば、calculate イベントが開始されるたびに、消費税の計算によってコストの合計に消費税の値が追加されると、フォームに表示される結果のコストの合計値が非常に大きくなる可能性があります。

calculate イベントの詳しい使用例については、フィールドの合計の計算を参照してください。