CB545 V2 LVL78 01MAY72                 IBM OS AMERICAN NATIONAL STANDARD COBOL                       DATE APR  2,1980
   1
00001   000100 IDENTIFICATION DIVISION.
00002   000200 PROGRAM-ID. RWEX04.
00003   000300 AUTHOR. JAY MOSELEY.
00004   000400 DATE-WRITTEN. APRIL, 2008.
00005   000500 DATE-COMPILED. APR  2,1980
00007   000700* ************************************************************* *
00008   000800* REPORT WRITER EXAMPLE #4.                                     *
00009   000900* ************************************************************* *
00011   001100 ENVIRONMENT DIVISION.
00012   001200 CONFIGURATION SECTION.
00013   001300 SOURCE-COMPUTER. IBM-370.
00014   001400 OBJECT-COMPUTER. IBM-370.
00015   001500
00016   001600 INPUT-OUTPUT SECTION.
00017   001700 FILE-CONTROL.
00018   001800
00019   001900     SELECT TRANSACTION-DATA
00020   002000         ASSIGN TO UT-S-DATAIN.
00021   002100
00022   002200     SELECT REPORT-FILE
00023   002300         ASSIGN TO UR-S-SYSPRINT.
00024   002400
00025   002500 DATA DIVISION.
00026   002600 FILE SECTION.
00027   002700
00028   002800 FD  TRANSACTION-DATA
00029   002900     LABEL RECORDS ARE OMITTED
00030   003000     BLOCK CONTAINS 0 RECORDS
00031   003100     RECORD CONTAINS 80 CHARACTERS
00032   003200     DATA RECORD IS TRANSACTION-RECORD.
00033   003300
00034   003400 01  TRANSACTION-RECORD.
00035   003500     03  TR-CUSTOMER-NUMBER      PIC 9(04).
00036   003600     03  FILLER                  PIC X(01).
00037   003700     03  TR-CUSTOMER-NAME        PIC X(16).
00038   003800     03  FILLER                  PIC X(01).
00039   003900     03  TR-ITEM-NUMBER          PIC 9(05).
00040   004000     03  FILLER                  REDEFINES TR-ITEM-NUMBER.
00041   004100         05  TR-ITEM-DEPARTMENT  PIC 9(01).
00042   004200         05  FILLER              PIC 9(04).
00043   004300     03  FILLER                  PIC X(01).
00044   004400     03  TR-ITEM-COST            PIC 9(03)V99.
00045   004500     03  FILLER                  PIC X(47).
00046   004600
00047   004700 FD  REPORT-FILE
00048   004800     LABEL RECORDS ARE OMITTED
00049   004900     REPORT IS CUSTOMER-REPORT.
00050   005000
00051   005100 WORKING-STORAGE SECTION.
00052   005200 77  END-OF-FILE-SWITCH          PIC X(1)    VALUE 'N'.
00053   005300     88  END-OF-FILE                         VALUE 'Y'.
00054   005400
00055   005500 01  DISCOUNT-TABLE.
00056   005600     02  FILLER                  PIC 99      VALUE 05.
========================================================================================================================
   2
00057   005700     02  FILLER                  PIC 99      VALUE 07.
00058   005800     02  FILLER                  PIC 99      VALUE 10.
00059   005900     02  FILLER                  PIC 99      VALUE 15.
00060   006000     02  FILLER                  PIC 99      VALUE 06.
00061   006100     02  FILLER                  PIC 99      VALUE 22.
00062   006200     02  FILLER                  PIC 99      VALUE 12.
00063   006300     02  FILLER                  PIC 99      VALUE 09.
00064   006400     02  FILLER                  PIC 99      VALUE 20.
00065   006500 01  FILLER                      REDEFINES DISCOUNT-TABLE.
00066   006600     02  DISCOUNT                OCCURS 9 TIMES
00067   006700                                 INDEXED BY DISCOUNT-IX
00068   006800                                 PIC V99.
00069   006900
00070   007000 01  CALCULATED-FIELDS.
00071   007100     03  WS-DISCOUNT-AMT         PIC 9(3)V99.
00072   007200     03  WS-CHARGE-AMT           PIC 9(3)V99.
00073   007300
00074   007400 REPORT SECTION.
00075   007500 RD  CUSTOMER-REPORT
00076   007600     CONTROLS ARE FINAL, TR-CUSTOMER-NUMBER
00077   007700     PAGE LIMIT IS 66 LINES
00078   007800     HEADING 1
00079   007900     FIRST DETAIL 5
00080   008000     LAST DETAIL 58.
00081   008100
00082   008200 01  PAGE-HEAD-GROUP TYPE PAGE HEADING.
00083   008300     02  LINE 1.
00084   008400         03  COLUMN 27   PIC X(41) VALUE
00085   008500             'C U S T O M E R  C H A R G E  R E P O R T'.
00086   008600         03  COLUMN 90   PIC X(04) VALUE 'PAGE'.
00087   008700         03  COLUMN 95   PIC ZZZZ9 SOURCE PAGE-COUNTER.
00088   008800     02  LINE PLUS 2.
00089   008900         03  COLUMN 01   PIC X(09) VALUE 'CUST. NO.'.
00090   009000         03  COLUMN 15   PIC X(10) VALUE 'CUST. NAME'.
00091   009100         03  COLUMN 51   PIC X(09) VALUE 'ITEM COST'.
00092   009200         03  COLUMN 76   PIC X(11) VALUE 'DISCT. AMT.'.
00093   009300         03  COLUMN 91   PIC X(06) VALUE 'CHARGE'.
00094   009400
00095   009500 01  CHARGE-DETAIL TYPE DETAIL.
00096   009600     02  LINE PLUS 1.
00097   009700         03  COLUMN 51   PIC $$$$.99 SOURCE TR-ITEM-COST.
00098   009800         03  COLUMN 78   PIC $$$$.99 SOURCE WS-DISCOUNT-AMT.
00099   009900         03  COLUMN 93   PIC $$$$.99 SOURCE WS-CHARGE-AMT.
00100   010000
00101   010100 01  CUSTOMER-TOTAL TYPE CONTROL FOOTING TR-CUSTOMER-NUMBER
00102   010200     NEXT GROUP IS PLUS 2.
00103   010300     02  LINE PLUS 1.
00104   010400         03  COLUMN 03   PIC Z(04) SOURCE TR-CUSTOMER-NUMBER.
00105   010500         03  COLUMN 10   PIC X(16) SOURCE TR-CUSTOMER-NAME.
00106   010600         03  COLUMN 50   PIC $$$$$.99 SUM TR-ITEM-COST.
00107   010700         03  COLUMN 77   PIC $$$$$.99 SUM WS-DISCOUNT-AMT.
00108   010800         03  COLUMN 92   PIC $$$$$.99 SUM WS-CHARGE-AMT.
00109   010900
00110   011000 01  FINAL-TOTAL TYPE CONTROL FOOTING FINAL.
00111   011100     02  LINE PLUS 2.
00112   011200         03  COLUMN 10   PIC X(12) VALUE 'GRAND TOTALS'.
00113   011300         03  COLUMN 48   PIC $$$,$$$.99 SUM TR-ITEM-COST.
========================================================================================================================
   3
00114   011400         03  COLUMN 59   PIC X VALUE '*'.
00115   011500         03  COLUMN 75   PIC $$$,$$$.99 SUM WS-DISCOUNT-AMT.
00116   011600         03  COLUMN 86   PIC X VALUE '*'.
00117   011700         03  COLUMN 90   PIC $$$,$$$.99 SUM WS-CHARGE-AMT.
00118   011800         03  COLUMN 101  PIC X VALUE '*'.
00119   011900
00120   012000 PROCEDURE DIVISION.
00121   012100
00122   012200 000-INITIATE.
00123   012300
00124   012400     OPEN INPUT TRANSACTION-DATA,
00125   012500          OUTPUT REPORT-FILE.
00126   012600
00127   012700     INITIATE CUSTOMER-REPORT.
00128   012800
00129   012900     READ TRANSACTION-DATA
00130   013000         AT END
00131   013100             MOVE 'Y' TO END-OF-FILE-SWITCH.
00132   013200*    END-READ.
00133   013300
00134   013400     PERFORM 100-PROCESS-TRANSACTION-DATA THRU 199-EXIT
00135   013500         UNTIL END-OF-FILE.
00136   013600
00137   013700 000-TERMINATE.
00138   013800     TERMINATE CUSTOMER-REPORT.
00139   013900
00140   014000     CLOSE TRANSACTION-DATA,
00141   014100           REPORT-FILE.
00142   014200
00143   014300     STOP RUN.
00144   014400
00145   014500 100-PROCESS-TRANSACTION-DATA.
00146   014600     SET DISCOUNT-IX TO TR-ITEM-DEPARTMENT.
00147   014700     COMPUTE WS-DISCOUNT-AMT ROUNDED =
00148   014800         TR-ITEM-COST * DISCOUNT (DISCOUNT-IX).
00149   014900     COMPUTE WS-CHARGE-AMT =
00150   015000         TR-ITEM-COST - WS-DISCOUNT-AMT.
00151   015100     GENERATE CUSTOMER-REPORT.
00152   015200     READ TRANSACTION-DATA
00153   015300         AT END
00154   015400             MOVE 'Y' TO END-OF-FILE-SWITCH.
00155   015500*    END-READ.
00156   015600
00157   015700 199-EXIT.
00158   015800     EXIT.
00159   015900
00160   016000
========================================================================================================================
   4
       INTRNL NAME   LVL SOURCE NAME                     BASE   DISPL   INTRNL NAME   DEFINITION   USAGE      R  O  Q  M
       DNM=1-121     FD  TRANSACTION-DATA               DCB=01          DNM=1-121                  QSAM                F
       DNM=1-150     01  TRANSACTION-RECORD              BL=1     000   DNM=1-150     DS 0CL80     GROUP
       DNM=1-181     02  TR-CUSTOMER-NUMBER              BL=1     000   DNM=1-181     DS 4C        DISP-NM
       DNM=1-209     02  FILLER                          BL=1     004   DNM=1-209     DS 1C        DISP
       DNM=1-225     02  TR-CUSTOMER-NAME                BL=1     005   DNM=1-225     DS 16C       DISP
       DNM=1-251     02  FILLER                          BL=1     015   DNM=1-251     DS 1C        DISP
       DNM=1-270     02  TR-ITEM-NUMBER                  BL=1     016   DNM=1-270     DS 5C        DISP-NM
       DNM=1-294     02  FILLER                          BL=1     016   DNM=1-294     DS 0CL5      GROUP      R
       DNM=1-316     03  TR-ITEM-DEPARTMENT              BL=1     016   DNM=1-316     DS 1C        DISP-NM
       DNM=1-344     03  FILLER                          BL=1     017   DNM=1-344     DS 4C        DISP-NM
       DNM=1-363     02  FILLER                          BL=1     01B   DNM=1-363     DS 1C        DISP
       DNM=1-382     02  TR-ITEM-COST                    BL=1     01C   DNM=1-382     DS 5C        DISP-NM
       DNM=1-404     02  FILLER                          BL=1     021   DNM=1-404     DS 47C       DISP
       DNM=1-423     FD  REPORT-FILE                    DCB=02          DNM=1-423                  QSAM                F
       DNM=1-447     01  -0001                           BL=2     000   DNM=1-447     DS 133C      DISP
       DNM=1-462     77  END-OF-FILE-SWITCH              BL=3     000   DNM=1-462     DS 1C        DISP
       DNM=2-000     88  END-OF-FILE                                    DNM=2-000
       DNM=2-022     01  DISCOUNT-TABLE                  BL=3     008   DNM=2-022     DS 0CL18     GROUP
       DNM=2-049     02  FILLER                          BL=3     008   DNM=2-049     DS 2C        DISP-NM
       DNM=2-068     02  FILLER                          BL=3     00A   DNM=2-068     DS 2C        DISP-NM
       DNM=2-087     02  FILLER                          BL=3     00C   DNM=2-087     DS 2C        DISP-NM
       DNM=2-106     02  FILLER                          BL=3     00E   DNM=2-106     DS 2C        DISP-NM
       DNM=2-125     02  FILLER                          BL=3     010   DNM=2-125     DS 2C        DISP-NM
       DNM=2-144     02  FILLER                          BL=3     012   DNM=2-144     DS 2C        DISP-NM
       DNM=2-163     02  FILLER                          BL=3     014   DNM=2-163     DS 2C        DISP-NM
       DNM=2-182     02  FILLER                          BL=3     016   DNM=2-182     DS 2C        DISP-NM
       DNM=2-201     02  FILLER                          BL=3     018   DNM=2-201     DS 2C        DISP-NM
       DNM=2-220     01  FILLER                          BL=3     008   DNM=2-220     DS 0CL18     GROUP      R
       DNM=2-242         DISCOUNT-IX                                    DNM=2-242                  INDEX-NM
       DNM=2-260     02  DISCOUNT                        BL=3     008   DNM=2-260     DS 2C        DISP-NM       O
       DNM=2-278     01  CALCULATED-FIELDS               BL=3     020   DNM=2-278     DS 0CL10     GROUP
       DNM=2-308     02  WS-DISCOUNT-AMT                 BL=3     020   DNM=2-308     DS 5C        DISP-NM
       DNM=2-333     02  WS-CHARGE-AMT                   BL=3     025   DNM=2-333     DS 5C        DISP-NM
       DNM=2-356     01  PRINT-SWITCH                    BL=3     030   DNM=2-356     DS 1C        DISP-NM
       DNM=2-378     RD  CUSTOMER-REPORT                                DNM=2-378
       DNM=2-405     01  CTL.LVL                         BL=3     038   DNM=2-405     DS 2P        COMP-3
       DNM=2-422     01  TER.COD                         BL=3     040   DNM=2-422     DS 1C        DISP
       DNM=2-439     01  FRS.GEN                         BL=3     048   DNM=2-439     DS 1C        DISP
       DNM=2-456     01  LIN.SAV                         BL=3     050   DNM=2-456     DS 2C        COMP
       DNM=2-473     01  FRS.GRP                         BL=3     058   DNM=2-473     DS 1C        DISP
       DNM=2-490     01  ABS.LIN                         BL=3     060   DNM=2-490     DS 2C        COMP
       DNM=3-000     01  LIN.NUM                         BL=3     068   DNM=3-000     DS 2P        COMP-3
       DNM=3-017     77  -0002                           BL=3     06A   DNM=3-017     DS 4C        DISP-NM
       DNM=3-032     77  -0003                           BL=3     06E   DNM=3-032     DS 4C        DISP-NM
       DNM=3-050     01  LINE-COUNTER                    BL=3     078   DNM=3-050     DS 3P        COMP-3
       DNM=3-072     01  PAGE-COUNTER                    BL=3     080   DNM=3-072     DS 3P        COMP-3
       DNM=3-094     01  RPT.RCD                         BL=3     088   DNM=3-094     DS 0CL133    GROUP
       DNM=3-114     02  CTL.CHR                         BL=3     088   DNM=3-114     DS 1C        DISP
       DNM=3-131     02  RPT.LIN                         BL=3     089   DNM=3-131     DS 132C      DISP
       DNM=3-148     02  E.0001                          BL=3     0A3   DNM=3-148     DS 41C       DISP       R
       DNM=3-164     02  E.0002                          BL=3     0E2   DNM=3-164     DS 4C        DISP       R
       DNM=3-183     02  E.0003                          BL=3     0E7   DNM=3-183     DS 5C        NM-EDIT    R
       DNM=3-206     02  E.0004                          BL=3     089   DNM=3-206     DS 9C        DISP       R
       DNM=3-222     02  E.0005                          BL=3     097   DNM=3-222     DS 10C       DISP       R
       DNM=3-238     02  E.0006                          BL=3     0BB   DNM=3-238     DS 9C        DISP       R
========================================================================================================================
   5
       INTRNL NAME   LVL SOURCE NAME                     BASE   DISPL   INTRNL NAME   DEFINITION   USAGE      R  O  Q  M
       DNM=3-254     02  E.0007                          BL=3     0D4   DNM=3-254     DS 11C       DISP       R
       DNM=3-270     02  E.0008                          BL=3     0E3   DNM=3-270     DS 6C        DISP       R
       DNM=3-286     02  E.0009                          BL=3     0BB   DNM=3-286     DS 7C        NM-EDIT    R
       DNM=3-311     02  E.0010                          BL=3     0D6   DNM=3-311     DS 7C        NM-EDIT    R
       DNM=3-336     02  E.0011                          BL=3     0E5   DNM=3-336     DS 7C        NM-EDIT    R
       DNM=3-361     02  E.0012                          BL=3     08B   DNM=3-361     DS 4C        NM-EDIT    R
       DNM=3-382     02  E.0013                          BL=3     092   DNM=3-382     DS 16C       DISP       R
       DNM=3-398     02  E.0014                          BL=3     0BA   DNM=3-398     DS 8C        NM-EDIT    R
       DNM=3-423     02  E.0015                          BL=3     0D5   DNM=3-423     DS 8C        NM-EDIT    R
       DNM=3-448     02  E.0016                          BL=3     0E4   DNM=3-448     DS 8C        NM-EDIT    R
       DNM=3-473     02  E.0017                          BL=3     092   DNM=3-473     DS 12C       DISP       R
       DNM=4-000     02  E.0018                          BL=3     0B8   DNM=4-000     DS 10C       NM-EDIT    R
       DNM=4-029     02  E.0019                          BL=3     0C3   DNM=4-029     DS 1C        DISP       R
       DNM=4-045     02  E.0020                          BL=3     0D3   DNM=4-045     DS 10C       NM-EDIT    R
       DNM=4-074     02  E.0021                          BL=3     0DE   DNM=4-074     DS 1C        DISP       R
       DNM=4-090     02  E.0022                          BL=3     0E2   DNM=4-090     DS 10C       NM-EDIT    R
       DNM=4-119     02  E.0023                          BL=3     0ED   DNM=4-119     DS 1C        DISP       R
       DNM=4-135     01  N.0001                          BL=3     110   DNM=4-135     DS 2C        COMP
       DNM=4-151     01  N.0002                          BL=3     118   DNM=4-151     DS 2C        COMP
       DNM=4-167     01  N.0003                          BL=3     120   DNM=4-167     DS 2C        COMP
       DNM=4-186     01  GRP.IND                         BL=3     128   DNM=4-186     DS 0CL1      GROUP
       DNM=4-206     02  GP.0000                         BL=3     128   DNM=4-206     DS 1C        DISP
       DNM=4-223     01  S.0001                          BL=3     130   DNM=4-223     DS 4P        COMP-3
       DNM=4-239     01  S.0002                          BL=3     138   DNM=4-239     DS 4P        COMP-3
       DNM=4-255     01  S.0003                          BL=3     140   DNM=4-255     DS 4P        COMP-3
       DNM=4-271     01  S.0004                          BL=3     148   DNM=4-271     DS 4P        COMP-3
       DNM=4-290     01  S.0005                          BL=3     150   DNM=4-290     DS 4P        COMP-3
       DNM=4-306     01  S.0006                          BL=3     158   DNM=4-306     DS 4P        COMP-3
========================================================================================================================
   6

                                                  CONDENSED LISTING
 124     OPEN       00110E                    127     INITIATE   00117E                    129     READ       001184
 131     MOVE       0011A4                    134     PERFORM    0011AA                    138     TERMINATE  0011D4
 140     CLOSE      0011DA                    143     STOP       001256                    146     SET        00125C
 147     COMPUTE    001270                    149     COMPUTE    0012BE                    151     GENERATE   0012DA
 152     READ       0012EC                    154     MOVE       00130C                    158     EXIT       001312

*STATISTICS*     SOURCE RECORDS =   160     DATA DIVISION STATEMENTS =    36     PROCEDURE DIVISION STATEMENTS =    15
*OPTIONS IN EFFECT*     SIZE = 3145728  BUF = 1048576  LINECNT = 57  SPACE1, FLAGW,   SEQ,   SOURCE
*OPTIONS IN EFFECT*       DMAP, NOPMAP,   CLIST,   SUPMAP, NOXREF,   LOAD, NODECK, APOST, NOTRUNC, NOLIB,   VERB
*OPTIONS IN EFFECT*       ZWB
========================================================================================================================

 
 
                          C U S T O M E R  C H A R G E  R E P O R T                      PAGE     1
CUST. NO.     CUST. NAME                          ITEM COST                DISCT. AMT.    CHARGE
   152   L. MORRISEY                               $50.41                      $6.50         $43.91
  2468   M. JACKSON                               $268.33                     $39.66        $228.67
  3451   S. LEVITT                                $222.84                     $23.96        $198.88
  4512   K. CONKLIN                               $383.18                     $45.88        $337.30
  5417   Z. HAMPTON                               $543.41                     $60.50        $482.91
  6213   M. LARSON                                $299.35                     $26.05        $273.30
  7545   M. LARSON                                $798.87                     $75.57        $723.30

         GRAND TOTALS                           $2,566.39 *                  $278.12 *    $2,288.27 *
========================================================================================================================