当前位置: 首页 > 知识库问答 >
问题:

用Acrobat计算总数

陶原
2023-03-14

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

当前工作流使用三种形式。数据输入表格1

打开表格3,将两个数据文件导入该表格。有两个具有类似公式的总计字段,一个将所有负数相加,另一个将所有正数相加。

但是,当我们导入两个文件时,只有第一个计算启动。第二个被忽略。如果您第二次导入其中一个数据文件,第二个计算就会启动。

所以,我们试图弄清楚,一旦数据文件被导入,如何告诉Acrobat进行这两种计算。

下面是负数的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个数据字段的表单时,公式不起作用。

我们被难住了。

共有1个答案

吕森
2023-03-14

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

或者叫这个。calculateNow()将强制计算窗体上的所有计算字段。请参阅Adobe的PDF API参考:http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/js_api_reference.pdf

 类似资料:
  • 计算字段Acrobat pdf Javascript当我跳过一个字段时,总数显示不正确,但当每个字段都有一个自上而下的值时,它工作正常。怎么了?

  • 问题内容: 我的表格“订单”中有50行/条目。我有一列名为的列,该列用于保存在处的订单声明。 此字段中的日期格式如下:2011-10-03 07:07:33 格式为(yy / mm / dd time)。 我也有一个专栏,这是他们支付的金额。 我想显示每天的总数。 因此,对于2011年10月3日之后的6个订单,应采用6个订单的值,并将它们加在一起。 所以我可以显示: 我怎样才能做到这一点? 问题答

  • 问题内容: 我正在尝试计算光盘上文件的大小。在Java的7本可以用做Files.walkFileTree如图我的答案在这里。 但是,如果我想使用java-8流来执行此操作,则它将适用于某些文件夹,但不适用于所有文件夹。 上面的代码可以很好地用于路径,但是会抛出以下异常 我了解它的来源以及如何使用Files.walkFileTree API避免它。 但是如何使用Files.walk() API 避免

  • 问题内容: 我试图找到一个可以理解的答案,但是放弃了。 为了在水平网站上具有动态 内容(如博客文章和图像),您必须为像素中的主体设置固定宽度,对吗? 因为您在其中使用浮动元素,否则浮动元素会折断并包装页面,具体取决于浏览器的宽度。 编辑!* 可以使用 jQuery 来 计算 该特定值,谢谢:)在此示例中,总大小中添加了一个附加值,该值可用于浮动元素之前的内容。现在,身体将获得动态宽度! * 我最初

  • 问题内容: 假设我有一个Java IntStream,是否可以将其转换为具有累积总和的IntStream?例如,以[4、2、6,…]开头的流应转换为[4、6、12,…]。 更笼统地说,应该如何实施有状态流操作?感觉这应该可行: 有一个明显的限制,即它仅适用于顺序流。但是,Stream.map明确需要无状态映射函数。我是否错过了Stream.statefulMap或Stream.cumulative

  • 问题内容: 我有这个MySQL查询: 返回如下内容: 我真正想要的是末尾的另一列显示运行总计: 这可能吗? 问题答案: 也许这对您来说是一个更简单的解决方案,并且可以防止数据库不得不执行大量查询。这仅执行一个查询,然后在一次通过中对结果进行一点数学运算。 这将为您提供一个额外的RT(运行总计)列。不要错过顶部的SET语句来首先初始化运行的total变量,否则您将只获得一列NULL值。