Adobe Livecycle cacluations和if语句

时间:2014-02-20 22:33:06

标签: javascript if-statement adobe rounding formcollection

我第一次发帖,而且我的Xp很少。我正在使用Adobe 9 pro的livecycle,并尝试进行计算,并不断收到错误消息。

我的基本前提我需要进行计算:在cella中输入info,并将(cella / 2)-5的结果向下舍入,保持负整数在另一个单元格中出现。 (是的,尝试使用我自己的3.5 d20角色表获得能力分数)。

在excel中,我能够将一个稍微复杂的截断公式= IF((Cella-10)/ 2 <0,TRUNC((Cella)/2-0.5),TRUNC((Cella-10)/ 2 )),但不知道在生命周期中该做什么。

我按照生命周期教程尝试了类似的东西,但没有用。老实说,在所有帐户上都要注意它,包括符号和变量应该在哪里,感谢您的帮助。

var x = cell1 / 2-5; if(x <0){return Math.ceil(x)}; else {return Math.floor(x)}

// cell1使用控制+点击从livecycle中的工作表中选择,尝试计算并在脚本行中输入格式。 //我的公式是否需要var x,不确定,有些教程是肯定的,有些则不适用于实时循环。 //如果有的话,不确定放置{}的位置。 // Math.floor和Math.ceil不像其他函数那样在livecycle脚本栏中显示突出显示的蓝色,我在javamode中留下所有单元格。

1 个答案:

答案 0 :(得分:0)

以前的答案已经得到了正确的数学但它在LiveCycle事件中不起作用(返回语句在事件中无效。)

假设您有两个字段:cellA(您输入数字的位置),cellB(应显示舍入结果)。如有必要,请替换为工作表中的实际名称。

在cellB的计算事件中(包含RESULT的字段)放在此代码中:

var v = null;
if (cellA.rawValue != null && cellA.rawValue != "")
{   
    v = cellA.rawValue / 2 - 5; 
    v = v < 0 ? Math.ceil(v) : Math.floor(v);
}
this.rawValue = v;

if语句在那里,以便在您第一次打开表单时不会计算。

旁注,生命周期中的javascript编辑器非常糟糕,所以不要指望语法/格式化有很多帮助。我建议你下载Notepad ++并将java代码粘贴在那里,它更有助于突出显示一些语法和检查打开/关闭括号。