acrobatpdf计算与复选框



我已经创建了一个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会更安全;否则,它将被定义为一个全局变量,并且行为可能会很奇怪。

同样,每当运行此计算并且测试结果为false时,nSubTotal被设置为0。这意味着,您必须定义nSubTotal,然后在处理表单时添加到它。

如果你只想在字段中有一个结果,就不需要通过变量绕路;您可以设置事件。

对于单个复选框,使用它的值(或者出于代码可移植性的原因,使用它的"未选中"值)更容易。这会产生以下代码片段:

if (this.getField("CheckboxRow").value != "Off") {
    // box is checked
    event.value = oFldQtyty.value * oFldItem.value ;
} else {
    // box is unchecked
    event.value = 0 ;
}

应该可以了。

然而,当您有一个表时,最好的做法是将所有计算合并到一个脚本中,该脚本可以附加到一个隐藏的只读字段,该字段甚至不涉及计算本身。这为您提供了更好的概览和控制计算,并防止计算顺序错误。

最新更新