AcctSolver
Technical User
I am writing a report that shows employee loan payments. This formula worked fine when employees could only have 2 open loans at once. My approach is not working when trying to get data to go to a third set of columns.
This is the loan calculation:
Local NumberVar SumDedJ := Sum ({@DedJ}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed27 := Sum ({@Ded27}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed30 := Sum ({@Ded30}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed36 := Sum ({@Ded36}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDedI := Sum ({@DedI}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed29 := Sum ({@Ded29}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed38 := Sum ({@Ded38}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed39 := Sum ({@Ded39}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
NumberVar i;
NumberVar loanCount;
NumberVar Array LoanArray := [SumDedJ, SumDedI, SumDed27, SumDed29, SumDed30, SumDed36, SumDed38, SumDed39];
Global NumberVar Array LoanAmt := [0,0];
Global NumberVar Array LoanNum := [0,0];
loanCount := 0;
For i := 1 To 8 Do
(
if LoanArray <> 0 and loanCount < 2 then
(
loanCount := loanCount + 1;
LoanAmt[loanCount]:= LoanArray;
LoanNum[loanCount]:= i;
);
);
-It works fine for two loans, but cannot figure out how to make it work for 3 loans.
This is the formula for the loan$deduction for the 2nd loan.
Local NumberVar SumDedJ := Sum ({@DedJ}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed27 := Sum ({@Ded27}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed30 := Sum ({@Ded30}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed36 := Sum ({@Ded36}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDedI := Sum ({@DedI}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed29 := Sum ({@Ded29}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed38 := Sum ({@Ded38}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed39 := Sum ({@Ded39}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
NumberVar i;
NumberVar loanCount;
NumberVar Array LoanArray := [SumDedJ, SumDedI, SumDed27, SumDed29, SumDed30, SumDed36, SumDed38, SumDed39];
NumberVar Array LoanAmt := [0,0];
NumberVar Array LoanNum := [0,0];
loanCount := 0;
For i := 1 To 8 Do
(
if LoanArray <> 0 and loanCount < 2 then
(
loanCount := loanCount + 1;
LoanAmt[loanCount]:= LoanArray;
LoanNum[loanCount]:= i;
);
);
LoanAmt[2]
For the 3rd valid loan, I tried making LoanAmt[3] and modifying the loanCount to say <3. I got the error message Subscript must be between 1 and the size of the array. What did I do wrong, and how do I fix it?
This is the loan calculation:
Local NumberVar SumDedJ := Sum ({@DedJ}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed27 := Sum ({@Ded27}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed30 := Sum ({@Ded30}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed36 := Sum ({@Ded36}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDedI := Sum ({@DedI}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed29 := Sum ({@Ded29}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed38 := Sum ({@Ded38}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed39 := Sum ({@Ded39}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
NumberVar i;
NumberVar loanCount;
NumberVar Array LoanArray := [SumDedJ, SumDedI, SumDed27, SumDed29, SumDed30, SumDed36, SumDed38, SumDed39];
Global NumberVar Array LoanAmt := [0,0];
Global NumberVar Array LoanNum := [0,0];
loanCount := 0;
For i := 1 To 8 Do
(
if LoanArray <> 0 and loanCount < 2 then
(
loanCount := loanCount + 1;
LoanAmt[loanCount]:= LoanArray;
LoanNum[loanCount]:= i;
);
);
-It works fine for two loans, but cannot figure out how to make it work for 3 loans.
This is the formula for the loan$deduction for the 2nd loan.
Local NumberVar SumDedJ := Sum ({@DedJ}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed27 := Sum ({@Ded27}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed30 := Sum ({@Ded30}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed36 := Sum ({@Ded36}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDedI := Sum ({@DedI}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed29 := Sum ({@Ded29}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed38 := Sum ({@Ded38}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
Local NumberVar SumDed39 := Sum ({@Ded39}, {earningsdeductions.REPORTS.V_CHK_VW_DEDUCTION.SOCIALSECURITY#});
NumberVar i;
NumberVar loanCount;
NumberVar Array LoanArray := [SumDedJ, SumDedI, SumDed27, SumDed29, SumDed30, SumDed36, SumDed38, SumDed39];
NumberVar Array LoanAmt := [0,0];
NumberVar Array LoanNum := [0,0];
loanCount := 0;
For i := 1 To 8 Do
(
if LoanArray <> 0 and loanCount < 2 then
(
loanCount := loanCount + 1;
LoanAmt[loanCount]:= LoanArray;
LoanNum[loanCount]:= i;
);
);
LoanAmt[2]
For the 3rd valid loan, I tried making LoanAmt[3] and modifying the loanCount to say <3. I got the error message Subscript must be between 1 and the size of the array. What did I do wrong, and how do I fix it?