The following example uses the aggregate range routines to specify
the SUM function.
***Using aggregate range routines to specify the SUM function
MOVE WS-COMPANY TO DB-COMPANY.
MOVE WS-ACCOUNT TO DB-ACCOUNT.
MOVE WS-FROM-SUB-ACCT TO DB-SUB-ACCOUNT.
MOVE WS-THRU-SUB-ACCT TO DBRNG-SUB-ACCOUNT.
MOVE GLMSET1-SUB-ACCOUNT TO WS-DB-SUB-RNG.
PERFORM 880-INIT-DBAG-GLMSET1.
SET DBSUM-GLMSET1-AMOUNT (WS-PERIOD) TO TRUE.
SET DBSUM-GLMSET1-AMOUNT (WS-PERIOD+1) TO TRUE.
SET DBSUM-GLMSET1-AMOUNT (WS-PERIOD-1) TO TRUE.
PERFORM 880-FIND-DBAG-GLMSET1.
IF (DBAG-GLMASTER-COUNT NOT = ZERO)
MOVE DBAG-SUM-GLMSET1-AMOUNT (WS-PERIOD) TO WS-CURR-PERIOD-TOTAL
MOVE DBAG-SUM-GLMSET1-AMOUNT (WS-PERIOD + 1) TO WS-NEXT-PERIOD-TOTAL
MOVE DBAG-SUM-GLMSET1-AMOUNT (WS-PERIOD - 1) TO WS-PREV-PERIOD-TOTAL.
|
Now, compare the code for the aggregate
range routines to the code you would have to write to get the same
functionality by using the 850-FIND-SUBRNG-<Index> and 860-FIND-NXTRNG-<Index> routines, shown
in the following example.
*** Using SUBRNG routines to specify the SUM function
MOVE WS-COMPANY TO DB-COMPANY.
MOVE WS-ACCOUNT TO DB-ACCOUNT.
MOVE WS-FROM-SUB-ACCT TO DB-SUB-ACCOUNT.
MOVE WS-THRU-SUB-ACCT TO DBRNG-SUB-ACCOUNT.
MOVE GLMSET1-SUB-ACCOUNT TO WS-DB-SUB-RNG.
PERFORM 850-FIND-SUBRNG-GLMSET1.
PERFORM UNTIL (GLMASTER-NOTFOUND)
ADD GLM-AMOUNT (WS-PERIOD) TO WS-CURR-PERIOD-TOTAL
ADD GLM-AMOUNT (WS-PERIOD + 1) TO WS-NEXT-PERIOD-TOTAL
ADD GLM-AMOUNT (WS-PERIOD - 1) TO WS-PREV-PERIOD-TOTAL
PERFORM 860-FIND-NXTRNG-GLMSET1
END-PERFORM.
|