ユーザーが他のコントロールに入力したデータに基づいて、数式を使用してコントロールの値を計算することで、ユーザーがフォーム テンプレートに基づいてフォームに入力するのに役立ちます。 計算には、値の加算、減算、乗算、除算を含めることができます。 たとえば、電気請負業者が許可の申請に使用するフォーム テンプレートを設計する場合は、契約業者がアプリケーションに対して支払う必要がある合計価格を、アプリケーションの許可の数に各許可の価格を乗算して自動的に計算する数式をコントロールに追加できます。
この記事の内容
数式とは
数式は、他の値の計算と表示に使用される値、フィールドまたはグループ、関数、演算子で構成される XPath 式です。 数式を使用して、次のタスクを実行できます。
- フォーム テンプレートを設計するときに指定した値、またはユーザーがフォーム テンプレートに基づいてフォームに入力するときにコントロールに入力する値から、数学的な値を計算します。
- 特定の日付と時刻を表示します。
- ユーザーが別のコントロールの 1 つのコントロールに入力した値を表示します。
- フィールドまたはコントロールの既定値を設定します。
- 数式を使用して計算された値に基づいてルールを実行します。
数式で使用される各 XPath 式は、1 つの値に評価される値、関数、演算子の組み合わせです。 数式には複数の式を含めることができます。 数式は、1 つまたは複数のフレーズで構成される文と考えることができます。各フレーズは、数式内の 1 つの式を表します。
次の図は、数式と式の関係を示しています。
関数は、計算結果に基づいて値を返す式です。 関数で使用される値は引数と呼ばれます。 InfoPath に含まれる標準の XPath 1.0 関数と、いくつかの InfoPath 固有の関数を使用できます。 InfoPath 関数の詳細については、「 関連項目」 セクションのリンクを参照してください。
数式で 2 つ以上の演算子を使用する
数式に 2 つ以上の算術演算子が含まれている場合、InfoPath は演算子の優先順位に従って計算を実行します。 次の一覧は、操作が実行される順序を示しています。
- かっこ内の計算
- 乗算と除算の計算
- 加算と減算の計算
数式に同じ優先順位を持つ 2 つの演算子が含まれている場合、計算は左から右に実行されます。
たとえば、アプリケーションで送信されたすべての許可の合計コストを表示するテキスト ボックスを含む許可申請フォーム テンプレートを作成しているとします。 この数式で必要な値は、フォーム内の他のテキスト ボックスから取得されます。 合計コストを示すテキスト ボックスには、次の数式が含まれています。
txtPermit1Qty * txtPermitCost1 + txtPermit2Qty * txtPermitCost2 /txtNumberOfPermits
この数式には、加算 (+)、乗算 (*)、除算 (/) 演算子が含まれます。 演算子の優先順位に従って、乗算と除算の計算は加算計算の前に実行されます。 乗算演算子と除算演算子の優先順位は同じであるため、乗算演算子は除算演算子の左側にあるため、乗算演算は除算演算子の前に実行されます。 数式は次のように計算されます。
- txtPermit1Qty の値に txtPermitCost1 の値が乗算されます。
- txtPermit2Qty の値に txtPermitCost2 の値が乗算され、その結果が txtNumberOfPermits の値で除算されます。
- 手順 1 の計算結果が、ステップ 2 の計算結果に追加されます。
計算順序を制御するには、最初に実行する計算をかっこで囲みます。 かっこ内の計算は、かっこ外の計算の前に実行されます。 かっこを使用して計算をかっこなしで計算の左側に配置します。 入れ子になったかっこ内の計算は、内部から外側のかっこに対して動作して実行されます。
たとえば、次の式を考えてみましょう。
((txtPermit1Qty * txtPermitCost1) + (txtPermit2Qty * txtPermitCost2))/txtNumberOfPermits
この計算では、txtPermit1Qty と txtPermitCost1 の値を乗算した結果の値が、txtPermit2Qty と txtPermitCost2 の値を乗算した結果の値に追加されます。 その計算の合計は、 txtNumberOfPermits の値で除算されます。
数式をコントロールに挿入する
数式を作成するコントロールまたはフィールドをダブルクリックします。
[データ] タブをクリックします。
[ 数式
] をクリックします。数式に値または数学演算子を挿入するには、[ 数式 ] ボックスに数値または数式演算の記号を入力します。
数学演算の一覧操作 シンボル 追加 + 減算 - 乗算 * 除算 / 注
数式で除算 (/) 演算子を使用する場合は、除算演算子の前後にスペースがあることを確認します。 除算演算子の前後にスペースがない場合、InfoPath は、除算演算子としてではなく、XPath 位置ステップの区切り記号として '/' を解釈できます。
ヒント
数式は通常、引数として整数または 10 進値に依存します。 数式の空白値を回避するには、[フォーム オプション] ダイアログ ボックスの [詳細設定] カテゴリの [空白の値を 0 チェックとして扱う] ボックスを選択します。
正しい構文の数式をチェックするには、[数式の挿入] ダイアログ ボックスで [数式の確認] をクリックします。
数式にエラーが含まれている
[Microsoft Office InfoPath] ダイアログ ボックスで [詳細の表示] をクリックして、数式のエラーを表示します。 これらのエラーを解決するための推奨事項を次に示します。- 数式で関数を使用している場合は、関数の正しい引数を使用していることを確認します。 一部の関数ではフィールドまたはグループが必要ですが、他の関数では引数として指定された値が必要です。 関数の詳細については、「 関連項目」 セクションのリンクを参照してください。
- 数式が正しく入力されていることを確認するには、数式を削除して再入力します。
変更内容をテストするには、[標準] ツール バーの [プレビュー] をクリックするか、Ctrl キーと Shift キーを押しながら B キーを押します。