有没有办法简化acrobat中的增量计算?
Is there a way to simplify incremental calculations in acrobat?
除了使用一长串 if 语句之外,还有什么方法可以让 Acrobat 文本框根据输入到其他文本框中的变量进行增量计算?
这是我的。
var v = this.getField("FixNum").value;
if (v == "1")
{
event.value = 84 ;
}
else if (v == "2")
{
event.value = 88 ;
}
else if (v == "3")
{
event.value = 92 ;
}
else
{
event.value = "";
}
如您所见,这会变得很麻烦,因为在这个模式中,它从 1 - 9 开始,其中 9 = 116,然后是 10 - 100,其中 10 = 135。在 100 之后,每个单元的模式为 495 + 6,即 101 = 501. 我希望有人能理解这个,因为我想不出另一种方式来问!
几种可能性:
• 如果你能想出一个公式,那就最简单了。
• 如果值对是任意的,您可以创建查找 table(以数组的形式)。
• 如果输入数字是(或多或少)连续整数,您可以使用简单数组,其中索引是输入数字,具有该索引号的元素是输出数字。
• 如果更复杂,则必须创建一个二维数组,其中每个元素都是一个输入和输出数字的数组。
• 如果您正在寻找 if...else if 语句的简单替换,您可以使用 switch... 语句,它适用于完全任意的值对。
更新,按照 OP 的评论:
根据OP的评论,输入的数字是连续的,这意味着上面的第三点是选择的方法。为此,请执行以下操作:
创建文档级脚本(名称无关紧要):
var myPricesArr = [0, 12, 15, 17, 23, 27, 30, 33] ;
另一种可能性:
var myPricesArr = new Array() ;
myPricesArr[0] = 0 ;
myPricesArr[1] = 12 ;
myPricesArr[2] = 15 ;
myPricesArr[3] = 17 ;
myPricesArr[4] = 23 ;
myPricesArr[5] = 27 ;
myPricesArr[6] = 30 ;
myPricesArr[7] = 33 ;
两种变体是等效的,但第二种变体更易于维护,但需要更多输入……
创建一个名为 "numFixts" 的文本字段,格式为数字,无小数,可能具有最大值(以防止表单失败)。
创建一个名为“fixtsAmt”的文本字段,格式为数字。在此字段的计算事件中添加以下内容JavaScript:
event.value = myPricesArr[this.getField("numFixts").value] ;
这样就可以了。
除了使用一长串 if 语句之外,还有什么方法可以让 Acrobat 文本框根据输入到其他文本框中的变量进行增量计算? 这是我的。
var v = this.getField("FixNum").value;
if (v == "1")
{
event.value = 84 ;
}
else if (v == "2")
{
event.value = 88 ;
}
else if (v == "3")
{
event.value = 92 ;
}
else
{
event.value = "";
}
如您所见,这会变得很麻烦,因为在这个模式中,它从 1 - 9 开始,其中 9 = 116,然后是 10 - 100,其中 10 = 135。在 100 之后,每个单元的模式为 495 + 6,即 101 = 501. 我希望有人能理解这个,因为我想不出另一种方式来问!
几种可能性:
• 如果你能想出一个公式,那就最简单了。
• 如果值对是任意的,您可以创建查找 table(以数组的形式)。
• 如果输入数字是(或多或少)连续整数,您可以使用简单数组,其中索引是输入数字,具有该索引号的元素是输出数字。
• 如果更复杂,则必须创建一个二维数组,其中每个元素都是一个输入和输出数字的数组。
• 如果您正在寻找 if...else if 语句的简单替换,您可以使用 switch... 语句,它适用于完全任意的值对。
更新,按照 OP 的评论:
根据OP的评论,输入的数字是连续的,这意味着上面的第三点是选择的方法。为此,请执行以下操作:
创建文档级脚本(名称无关紧要):
var myPricesArr = [0, 12, 15, 17, 23, 27, 30, 33] ;
另一种可能性:
var myPricesArr = new Array() ;
myPricesArr[0] = 0 ;
myPricesArr[1] = 12 ;
myPricesArr[2] = 15 ;
myPricesArr[3] = 17 ;
myPricesArr[4] = 23 ;
myPricesArr[5] = 27 ;
myPricesArr[6] = 30 ;
myPricesArr[7] = 33 ;
两种变体是等效的,但第二种变体更易于维护,但需要更多输入……
创建一个名为 "numFixts" 的文本字段,格式为数字,无小数,可能具有最大值(以防止表单失败)。
创建一个名为“fixtsAmt”的文本字段,格式为数字。在此字段的计算事件中添加以下内容JavaScript:
event.value = myPricesArr[this.getField("numFixts").value] ;
这样就可以了。