您可以通过使用公式,基于用户输入到其他控件中的数据计算某个控件的值,帮助用户填写基于表单模板的表单。计算可以包括将各个值相加、相减、相乘或 相除。例如,如果您要设计一个电气承包商将用于申请许可证的表单模板,则可以向控件中添加一个公式,自动计算承包商必须为申请支付的总价,计算方法是将每 个许可证的价格乘以申请的许可证数量。
公式是一种由值、字段或组、函数以及用于计算和显示其他值的运算符组成的 XPath 表达式。可以使用公式执行以下任务:
公式中使用的每个 XPath 表达式都是值、函数和计算结果为单个值的运算符的组合。一个公式可以包含多个表达式。您可以将公式看作是由一个或多个短语组成的句子,每个短语都代表公式中的一个表达式。
下图显示了公式与表达式之间的关系。
函数是一种根据计算结果返回值的表达式。函数中使用的值称为“参数”。您可以使用 InfoPath 中包含的标准 XPath 1.0 函数,也可以使用某些特定于 InfoPath 的函数。有关 InfoPath 函数的更多信息,请访问“请参阅”部分中的链接。
当公式包含两个或多个数学运算符时,InfoPath 将根据运算符的优先级进行计算。下表显示了执行运算的顺序:
例如,假设您要创建一个许可证申请表单模板,其中包含一个文本框用于显示申请中提交的所有许可证的总成本。此公式需要的值来自表单中的其他文本框。显示总成本的文本框包含以下公式:
txtPermit1Qty * txtPermitCost1 + txtPermit2Qty * txtPermitCost2 /txtNumberOfPermits
该公式包括加法 (+)、乘法 (*) 和除法 (/) 运算符。根据运算符的优先级,乘法和除法计算在加法计算之前进行。由于乘法和除法运算符具有相同的优先级,而乘法运算符位于除法运算符的左侧,所以乘法计算在除法运算符之前进行。该公式按照以下方式计算:
以下面的公式为例:
((txtPermit1Qty * txtPermitCost1) + (txtPermit2Qty * txtPermitCost2))/txtNumberOfPermits
在此计算中,由 txtPermit1Qty 和 txtPemitCost1 中的值相乘得出的值将与由 txtPermit2Qty 和 txtPermitCost2 中的值相乘得出的值相加。然后,该计算的和再除以 txtNumberOfPermits 中的值。
数学运算列表
操作 | 符号 |
---|---|
加 | + |
减 | - |
乘 | * |
除 | / |
注释 如果您在公式中使用除法 (/) 运算符,请确保在除法运算符的前后留一个空格。如果除法运算符的前后没有空格,InfoPath 可能会将“/”解释为 XPath 位置步骤的分隔符,而不是除法运算符。
提示 数学公式通常以整数或小数值作为参数。若要避免公式中出现空值,请在“表单选项”对话框的“高级”类别中,选中“将空值视为零”复选框。
公式中有错误
单击“Microsoft Office InfoPath”对话框中的“显示详细信息”可查看公式中的错误。以下给出了解决这些错误的一些建议:相关文章
同类最新