带复选框的 Acrobat PDF 计算
Acrobat PDF calculation with checkbox
我创建了一个 PDF 表格来帮助估算管道工程。承包商为项目的数量、成本填写各种行,然后自动计算该行的价格;这很好用。
但现在我想在客户检查他们是否真的希望完成该工作的行中添加一个复选框。如果他们选中该框,那么价格将出现在最终字段中,否则将显示 0。
我的领域是:
QtyRow2 ItemCostRow2 CheckboxRow2 PriceRow2
我已经在 PriceRow2 字段的“计算”选项卡中尝试了这段 Javascript 代码,但无论复选框是否选中,它在价格字段中都显示“0”。
var oFldQty = this.getField("QtyRow2");
var oFldItem = this.getField("ItemCostRow2");
if (this.getField("CheckboxRow2").isBoxChecked(0)) {
nSubTotal = oFldQty.value * oFldItem.value;
} else {
nSubTotal = 0;
}
event.value = nSubTotal;
我应该如何修改它才能使其正常工作?
如果这就是计算中的全部代码,那么定义nSubTotal会更安全;否则,它会被定义为全局变量,并且会表现得很奇怪。
此外,每当运行此计算且测试结果为假时,nSubTotal 将设置为 0。这意味着,您必须定义 nSubTotal,然后在处理表单时将其添加。
如果你只想在字段中得到一个结果,就没有必要通过变量绕道;真假路径可以设置event.value
对于单个复选框,恕我直言,使用它的值(或出于代码可移植性原因的 "unchecked" 值)更容易使用。这导致以下代码片段:
if (this.getField("CheckboxRow").value != "Off") {
// box is checked
event.value = oFldQtyty.value * oFldItem.value ;
} else {
// box is unchecked
event.value = 0 ;
}
这样就可以了。
但是,由于您有一个 table,最佳做法是将所有计算合并到一个脚本中,该脚本可以附加到一个隐藏的只读字段,该字段甚至不参与计算本身.这使您可以更好地了解和控制计算,并防止计算顺序错误。
我创建了一个 PDF 表格来帮助估算管道工程。承包商为项目的数量、成本填写各种行,然后自动计算该行的价格;这很好用。
但现在我想在客户检查他们是否真的希望完成该工作的行中添加一个复选框。如果他们选中该框,那么价格将出现在最终字段中,否则将显示 0。
我的领域是: QtyRow2 ItemCostRow2 CheckboxRow2 PriceRow2
我已经在 PriceRow2 字段的“计算”选项卡中尝试了这段 Javascript 代码,但无论复选框是否选中,它在价格字段中都显示“0”。
var oFldQty = this.getField("QtyRow2");
var oFldItem = this.getField("ItemCostRow2");
if (this.getField("CheckboxRow2").isBoxChecked(0)) {
nSubTotal = oFldQty.value * oFldItem.value;
} else {
nSubTotal = 0;
}
event.value = nSubTotal;
我应该如何修改它才能使其正常工作?
如果这就是计算中的全部代码,那么定义nSubTotal会更安全;否则,它会被定义为全局变量,并且会表现得很奇怪。
此外,每当运行此计算且测试结果为假时,nSubTotal 将设置为 0。这意味着,您必须定义 nSubTotal,然后在处理表单时将其添加。
如果你只想在字段中得到一个结果,就没有必要通过变量绕道;真假路径可以设置event.value
对于单个复选框,恕我直言,使用它的值(或出于代码可移植性原因的 "unchecked" 值)更容易使用。这导致以下代码片段:
if (this.getField("CheckboxRow").value != "Off") {
// box is checked
event.value = oFldQtyty.value * oFldItem.value ;
} else {
// box is unchecked
event.value = 0 ;
}
这样就可以了。
但是,由于您有一个 table,最佳做法是将所有计算合并到一个脚本中,该脚本可以附加到一个隐藏的只读字段,该字段甚至不参与计算本身.这使您可以更好地了解和控制计算,并防止计算顺序错误。