1

我正在尝试在 Acrobat 中使用 JavaScript 在交互式表单中总计 10 个数据字段。最初,数据是手动输入的。我们创建的计算公式在手动输入数据时有效,但在从另一个表单导出数据然后使用 FDF 文件导入此表单时无法正确汇总。

当前的工作流程使用三种形式。将数据输入表格 1 和 2。然后将数据从两个表格中导出为数据并以 FDF 格式保存。

表格 3 被打开,两个数据文件被导入到这个表格中。有两个 TOTALS 字段具有相似的公式,一个将所有负数相加,另一个将所有正数相加。

但是,当我们导入这两个文件时,只会触发第一个计算。第二个被忽略。如果您再次导入任一数据文件,则第二次计算将启动。

因此,我们试图弄清楚如何在导入数据文件后告诉 Acrobat 进行 BOTH 计算。

下面是负数的 JavaScript 代码:

function calcLost(){
 var amountLost = 0;
 var pt_neck_diff = this.getField('pt_neck_diff').value;
 var pt_arm_r_diff = this.getField('pt_arm_r_diff').value;
 var pt_arm_l_diff = this.getField('pt_arm_l_diff').value;
 var pt_chest_diff = this.getField('pt_chest_diff').value;
 var pt_belly_diff = this.getField('pt_belly_diff').value;
 var pt_waist_diff = this.getField('pt_waist_diff').value;
 var pt_hips_diff = this.getField('pt_hips_diff').value;
 var pt_butt_diff = this.getField('pt_butt_diff').value;
 var pt_thigh_r_diff = this.getField('pt_thigh_r_diff').value;
 var pt_thigh_l_diff = this.getField('pt_thigh_l_diff').value;
 if(pt_neck_diff < 0){
   amountLost += pt_neck_diff
 }

 if(pt_arm_r_diff < 0){
   amountLost += pt_arm_r_diff
 }

 if(pt_arm_l_diff < 0){
   amountLost += pt_arm_l_diff
 }

 if(pt_chest_diff < 0){
   amountLost += pt_chest_diff
 }

 if(pt_belly_diff < 0){
   amountLost += pt_belly_diff
 }

 if(pt_waist_diff < 0){
   amountLost += pt_waist_diff
 }

 if(pt_hips_diff < 0){
   amountLost += pt_hips_diff
 }

 if(pt_butt_diff < 0){
   amountLost += pt_butt_diff
 }

 if(pt_thigh_r_diff < 0){
   amountLost += pt_thigh_r_diff
 }

 if(pt_thigh_l_diff < 0){
   amountLost += pt_thigh_l_diff
 }
 return amountLost;
 }

 event.value = calcLost();

另一个(几乎相同)脚本计算正数。任何人都知道如何告诉 Acrobat 运行第二个脚本?

如前所述,如果您重新导入任一数据文件,这两个公式都可以正常工作。首次导入文件时,它无法正常工作。

另一个有趣的事实是,在类似的形式中,仅使用四个数字的导数计算工作正常。当我们使用包含 10 个数据字段的表单时,公式不起作用。

我们很难过。

4

1 回答 1

0

您可能需要仔细检查表单字段的计算顺序(http://help.adobe.com/en_US/acrobat/X/pro/using/WS58a04a822e3e50102bd615109794195ff-7de2.w.html)。

或者,调用 this.calculateNow() 将强制计算表单上的所有计算字段。在此处参考 Adob​​e 的 PDF API 参考:http ://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/js_api_reference.pdf

于 2014-04-24T17:58:39.583 回答