【问题标题】:Why is my calculation total not updating correctly in Acrobat?为什么我的计算总数没有在 Acrobat 中正确更新?
【发布时间】:2020-04-25 07:45:20
【问题描述】:

我正在 Acrobat 中处理一个订单表格,该表格计算下拉菜单中所选州的销售税。如果我输入一个项目,它不会将税收添加到总数中。如果我返回并更改状态,它会正确更新销售税,但总数包括以前的销售税,而不是当前的。

我收到此错误:

InvalidSetError: Set not possible, invalid or unknown.
Field.value:8:Field TOTAL AMOUNT:Calculate

这是我对总数的计算:

var a=this.getField("Subtotal without customization charges");
var b=this.getField("Customization Charges");
var c=this.getField("Tax3");
var d=this.getField("Shipping");
var e=this.getField("Express Handling");
var f=this.getField("Discount Total");
var g=this.getField("TOTAL AMOUNT");
g.value=(a.value+b.value+c.value+d.value+e.value)-(f.value);

“状态”字段下拉列表:

if(event.target.value!="State")
{
this.getField("Sales Tax").value=event.target.value;
}

“销售税”字段被隐藏,并显示在“州”字段中选择的任何内容的出口值。

“税”字段是隐藏的,是“定制费用”x“没有定制费用的小计”的乘积

“Tax2”字段是隐藏的,有这个计算:

var a=this.getField("Tax");
var b=this.getField("Discount Total");
var c=this.getField("Tax2");
c.value=(a.value)-(b.value);

“Tax3”字段可见,是“Sales Tax”x“Tax2”的乘积

【问题讨论】:

  • 你把这个 JavaScript 放在哪里了?什么字段和什么操作?
  • @joelgeraci 我将 JavaScript 放在“TOTAL AMOUNT”字段属性面板的“Calculate”选项卡下的自定义计算脚本部分中。

标签: javascript forms pdf arraylist acrobat


【解决方案1】:

由于您在计算事件期间运行代码,因此您无法设置字段的值...因为这是计算尝试执行的操作。这就是产生错误的原因。在代码的最后一行中,您尝试设置字段的值,您需要设置计算事件的值。所以代码看起来是这样的......

var a=this.getField("Subtotal without customization charges");
var b=this.getField("Customization Charges");
var c=this.getField("Tax3");
var d=this.getField("Shipping");
var e=this.getField("Express Handling");
var f=this.getField("Discount Total");
event.value=(a.value+b.value+c.value+d.value+e.value)-(f.value);

另外,在选项选项卡中将税收下拉列表的属性更改为“立即提交所选值”。

【讨论】:

    【解决方案2】:

    解决了!我没有创建四个字段来计算税收,而是将其合并为两个。我认为它没有按正确的顺序读取方程,因为计算链分布在四个字段之间。

    一个隐藏字段,它是下拉列表的导出值。 一个可见字段“销售税”计算:

    var a=this.getField("Subtotal without customization charges");
    var b=this.getField("Customization Charges");
    var c=this.getField("Discount Total");
    var d=this.getField("Tax Calculation");
    event.value=((a.value+b.value)-(c.value))*(d.value);
    

    “TOTAL AMOUNT”字段计算:

    var a=this.getField("Subtotal without customization charges");
    var b=this.getField("Customization Charges");
    var c=this.getField("Sales Tax");
    var d=this.getField("Shipping");
    var e=this.getField("Express Handling");
    var f=this.getField("Discount Total");
    event.value=((a.value+b.value+c.value)-(f.value))+(d.value+e.value);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多