在LiveCycle中使用FormCalc执行表单。作为表格的一部分,我有2个复选框(cbPhoto)& (cbCert)和2个数字字段(numPages)和(numResults)。
我想要实现的是当选中一个或两个复选框并输入一个数字(numPages)然后进行以下计算并在(numResults)中显示结果。
计算: 如果选择(cbPhoto)并说例如输入5(numPages),我希望计算第一页为20美元,之后每页为1美元(因此在这种情况下结果为24美元)。
如果选择了(cbCert)并且说例如输入了5(numPages)我希望第一页的计算结果为22美元,之后每页计算结果为2美元(因此在这种情况下结果为30美元)。
如果同时选中了两个复选框,并说例如输入了5(numPages),我想要运行上述两个计算(结果为54美元)。
我希望(numResults)保持空白,直到将数字放入(numPages)后,无论是否选中了复选框。
我使用以下代码取得了非常有限的成功,并且如果能够使用JavaScript,我将很乐意使用JavaScript。
A9.#subform[0].A4::calculate - (FormCalc, client)
if (cbP3==1) and (cbC3==1) then
P1-1+20
and
(P1-1)*2+22
else ""
endif
非常感谢任何和所有帮助。干杯
答案 0 :(得分:0)
这是我的JavaScript解决方案。只要其他3个字段中的任何一个字段发生变化,numResults的“calculate”事件就会执行。当numPages有一个值且至少选中一个复选框时,将显示非空白结果。
form1。#subform [0] .cbCert :: change - (JavaScript,client)
numResults.execCalculate();
form1。#subform [0] .cbPhoto :: change - (JavaScript,client)
numResults.execCalculate();
form1。#subform [0] .numPages :: change - (JavaScript,client)
numResults.execCalculate();
form1。#subform [0] .numResults :: calculate - (JavaScript,client)
var result = null;
if (numPages.rawValue > 0){
result = 0;
if (cbPhoto.rawValue == 1){
result = numPages.rawValue - 1 + 20;
}
if (cbCert.rawValue == 1){
result += (numPages.rawValue - 1) * 2 + 22;
}
if (result == 0) {
result = null; //show blank instead of 0
}
}
//this line sets the value of the results field:
result;