Previous Topic: What You Can DoNext Topic: Using Files Defined to the Data Dictionary


Demonstration

Objective

This example produces two reports:

Procedure

The contents of the input buffer for this run:

File 1 (SYS010)

File 2 (SYS011)

.0500 .0525 .0550

rule=no.

.0525 .0550 .0575

rule=no.

.0550 .0575 .0600

rule=no.

.0550 .0575 .0625

rule=no.

 

15060

 

15999

 

16070

 

19235

 

21056

 

23055

 

27777

 

29557 . . .

Complete Code

 col. 2
 ▼
 IN 80                                $Read first, no match key
 REC FILE-TEST            0  1  1
 REC INTEREST-RATE-DATA  1             GROUP AA 4.3
 REC INTEREST-RATE       1  4  2  DP=4  ELMNT AA

 IN 150 MK=ACCOUNT-NO             $Read second, one match key
 REC ACCOUNT-NO   1  5           'ACCOUNT' 'NUMBER'
 REC ACCT-TYPE    6  2  2        'ACCOUNT' 'TYPE'
 REC OPEN-BAL     8 11  2  DP=2  'OPENING' 'BALANCE'
 REC NAME        19 20           'NAME'
 REC DATE-OPENED 39  6  2        'DATE' 'OPENED'
 GW0  RATE.12 DP=4   COUNT    ZERO
 00OUT 65 D
 003 INTEREST RATE TABLE         $First report
 0051*010 INTEREST-RATE.1  HH ' ' 'RATE CODE 1' '(ACCOUNT TYPE 1)'
 0051*020 INTEREST-RATE.2  HH 'RATE CODE 2' '(ACCOUNT TYPE 2)'
 0051*030 INTEREST-RATE.3  HH 'RATE CODE 3' '(ACCOUNT TYPE 3)'
 92SORT  ACCT-TYPE 0  OPEN-BAL D
 92OUT  120 D
 920  NTH
 920  FIRST-MO-INT  DP=3
 923  FIRST MONTH'S INTEREST     $Second report
 9241*010 ' '
 9251*010 ACCOUNT-NO        HR
 9251*020 NAME              HR
 9251*030 DATE-OPENED  FD   HR
 9251*040 ACCT-TYPE         HR
 9251*050 RATE.NTH     SZ=4 HH 'INTEREST' 'RATE'
 9251*060 OPEN-BAL          HR
 9251*070 FIRST-MO-INT SZ=8 HH 'INTEREST' '(FIRST' 'MONTH)'
 007010   IF FILE-TEST EQ 1  DROP
 007      COUNT + 1  COUNT
 007      MOVE INTEREST-RATE.1 TO RATE.COUNT
 007      COUNT + 1  COUNT
 007      MOVE INTEREST-RATE.2 TO RATE.COUNT
 007      COUNT + 1  COUNT
 007      MOVE INTEREST-RATE.3 TO RATE.COUNT
 007      IF COUNT GT 12  040
 007      TAKE
 007040   ZERO DIVIDE ZERO  ZERO  $Forced buffer dump if more than 12 entries
 007      STOP-RUN                $Error, stop processing
 927      IF FILE-TEST NE 1 DROP
 927      IF DATE-OPENED GE mmddyy   100
 927      IF DATE-OPENED GE mmddyy   110
 927      IF DATE-OPENED GE mmddyy   120
 927      IF DATE-OPENED GE mmddyy   130
 927      DROP
927100   ACCT-TYPE + 9  NTH
927      B 150
927110   ACCT-TYPE + 6  NTH
927      B 150
927120   ACCT-TYPE + 3  NTH
927      B 150
927130   ACCT-TYPE + 0  NTH
927150   COMPUTE (OPEN-BAL X RATE.NTH) / 12  FIRST-MO-INT

Note: For 'IF DATE-OPENED GE', the code would be actual dates in the format shown.

Result

REPORT NO. 00 INTEREST RATE TABLE mm/dd/yy PAGE 1 RATE CODE 1 RATE CODE 2 RATE CODE 3 (ACCOUNT TYPE 1) (ACCOUNT TYPE 2) (ACCOUNT TYPE 3) .0500 .0525 .0550 .0525 .0550 .0575 .0550 .0575 .0600 .0550 .0575 .0625 REPORT NO. 92 FIRST MONTH'S INTEREST mm/dd/yy PAGE 1 INTEREST ACCOUNT DATE ACCOUNT INTEREST OPENING (FIRST NUMBER NAME OPENED TYPE RATE BALANCE MONTH) 33470 VICTORIA DAY mm/dd/yy 1 .0550 51,954.10 238.123 16070 ARTHUR LINK mm/dd/yy 1 .0550 10,800.45 49.502 99083 HELEN SANTOVEC mm/dd/yy 1 .0550 4,685.28 21.474 69876 BRUCE THORPE mm/dd/yy 2 .0575 6,375.58 30.550 19235 GARY NOBLES mm/dd/yy 2 .0575 3,800.45 18.210 34440 HELEN WRIGHT mm/dd/yy 2 .0575 1,950.10 9.344 36682 JEAN WREN mm/dd/yy 3 .0575 40,007.80 191.704 15999 SHELLY BROWN mm/dd/yy 3 .0550 852.45 3.907 30115 IRMA DOONES mm/dd/yy 3 .0625 366.29 1.908 31113 MARY CATREY mm/dd/yy 3 .0600 360.00 1.800 15060 SHARON ARMSTRONG mm/dd/yy 3 .0625 21056 AMOS JOHNSON mm/dd/yy 3 .0625 23055 JACK JACKSON mm/dd/yy 3 .0625 27777 ANDY PIGGOTT mm/dd/yy 3 .0625 29557 IRWIN TRIMBLE mm/dd/yy 3 .0625 31275 FOR ANOTHER mm/dd/yy 3 .0625 32115 BOB DATO mm/dd/yy 3 .0625

Note: The report would show actual dates in the format shown.