LiveCycle -多个计算依赖于选中的复选框和输入字段

LiveCycle - Multiple calculations dependent upon check boxes selected and an input field?

本文关键字:复选框 输入 字段 计算 依赖于 LiveCycle      更新时间:2023-09-26

在LiveCycle中使用FormCalc做表单。作为表单的一部分,我有2个复选框(cbPhoto) &(cbCert),以及2个数字字段(numPages)和(numResults)。

我想要实现的是,当一个或两个复选框被选中,并输入一个数字(numPages),然后做以下计算,并在(numResults)中显示结果。

计算:如果选择(cbPhoto),例如,在(numPages)中输入5,我希望第一页计算出20美元,之后的每一页计算出1美元(因此在本例中,结果将是24美元)。

如果选择(cbCert),并且例如,在(numPages)中输入5,我希望计算出第一页为22美元,之后每页为2美元(因此在这种情况下,结果将是30美元)。

如果两个复选框都被选中,例如,在(numPages)中输入5,我希望上述两个计算都运行(结果为$54)。

我希望(numResults)保持空白,直到在(numPages)中放置一个数字之后,无论复选框是否被选中。

我对下面的代码有非常有限的成功,如果它能使它工作,我很乐意使用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 

任何和所有的帮助将非常感激。欢呼声

这是我的JavaScript解决方案。当其他3个字段中的任何一个发生变化时,numResults的"calculate"事件将执行。当numPages有一个值并且至少选中了一个复选框时,将显示一个非空白的结果。

form1。#子表单[0]。cbCert:变化——(JavaScript客户机)

numResults.execCalculate();

form1。#子表单[0]。cbPhoto::change - (JavaScript, client)

numResults.execCalculate();

form1。#子表单[0]。numPages::change - (JavaScript, client)

numResults.execCalculate();

form1。#子表单[0]。numResults:: compute - (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;