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 *
========================================================================================================================
