我正在使用Adobe Acrobat Pro DC创建计算器。我有两组单选按钮,需要根据BOTH选项创建一个值。
您正在测试哪种类型的部件? (PartType) -Gear -Camshaft -Bearing
您在寻找什么类型的缺陷? (DefectType) -Burn -Stress -Depth
如果选择了Gear and Burn,则值为10。 如果选择了齿轮和应力,则值为70。 如果选择了“轴承和刻录”,则值为35。
我无法为每个选择分配值,因为组合是唯一的。如何在Java Script中编写它?
这是我到目前为止所做的事情(我意识到这是错误的)
if(PartType == Gear&& DefectType == Burn)value == 10
请帮忙!谢谢!
答案 0 :(得分:0)
我们可能有两种可能的解决方法。
注意:在下文中,我们假设该值将显示在文本字段中。显示的代码段是该特定字段的Calculate事件脚本的一部分。如果要在另一个计算中使用该值,请定义该变量,然后使用其名称而不是“event.value”。
a)如果可以从选项中计算出值(在“部件类型加缺陷类型”的意义上),我们可以将组件设置为单选按钮选择的返回值。在这种情况下,值会快速计算:
event.value = this.getField("PartType").value*1 + this.getField("DefectType").value*1) ;
或者,如果有更复杂的算法/公式,请改用它。
b)如果没有公式/算法来计算值,我们需要一个查找表。在我们的例子中,我们将定义一个二维数组,其中元素表示PartType,并且是相应DefectTypes的数组。
单选按钮字段的返回值将对应于该查找表中的索引号。
我们将首先开始设置查找表:
var myLUT = new Array() ;
myLUT[0] = [10, 70, aa] ; // values for Gear and Burn, Stress, Depth
myLUT[1] = [bb, cc, dd] ; // values for Camshaft and Burn, Stress, Depth
myLUT[2] = [35, ee, ff] ; // values for Bearing and Burn, Stress, Depth
其中aa,bb等表示合适组件的值。
我们可以在计算脚本中定义此查找表,但创建包含此定义的文档级脚本效率更高。
Calculate脚本如下所示:
var pt = this.getField("PartType").value ;
var dt = this.getField("DefectType").value ;
event.value = myLUT[pt][dt] ;
那就可以了。
处理单选按钮字段时还有一件事。即使必须选择一个选项,也可以(并且合法)没有选择默认值。但是,这两种情况都假设选择了选项。因此,我们必须通过要求两个组都有一个选中的选项来保护代码:
if (this.getField("PartType").value != "Off" && this.getField("DefectType").value != "Off") {
// now run our code
}
我们可能还必须指定如果未检查一个或两个单选按钮组会发生什么。