tinycobol/test.code/ReportGen/report.cob

90 lines
2.8 KiB
COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. report_example.
AUTHOR. Rildo Pragana.
* REMARKS.
* Example report.
*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT sales-file
ASSIGN TO "sales.dat"
ORGANIZATION IS LINE SEQUENTIAL
ACCESS MODE IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD sales-file.
01 sales-record.
05 sales-vendor-name pic X(20).
05 sales-value pic S9(6).
05 sales-number pic X(13).
05 sales-type pic X.
05 sales-vendor-region pic X(17).
05 sales-vendor-city pic X(20).
05 sales-comments pic X(60).
WORKING-STORAGE SECTION.
77 data-end-flag pic X.
77 REPORT-OUTPUT-NAME pic X(80).
77 REPORT-LAYOUT-NAME pic X(80).
77 END-OF-STRING pic X value low-values.
01 transaction-dsp.
* This is temporary fix due to some bug in the preprocessor
* which causes a seg fault.
* COPY displayable.
COPY 'displayable.cpy'.
77 transaction-eos pic X value low-values.
01 totals-accumulators.
05 vendor-total pic 9(12) comp.
05 city-total pic 9(12) comp.
05 region-total pic 9(12) comp.
05 grand-total pic 9(12) comp.
PROCEDURE DIVISION.
move zeros to vendor-total city-total region-total
string "repoutput.pdf" END-OF-STRING into REPORT-OUTPUT-NAME
string "report.layout" END-OF-STRING into REPORT-LAYOUT-NAME
CALL "rep_initiate" using REPORT-OUTPUT-NAME REPORT-LAYOUT-NAME.
*
open input sales-file
move 'N' to data-end-flag
read sales-file
perform 200-CONV-DISPLAY
perform 100-GENERATE
until data-end-flag = 'Y'.
close sales-file
perform 200-CONV-DISPLAY
call "rep_terminate"
* display "vendor-total = " vendor-total ", city-total = " city-total
STOP RUN.
100-GENERATE.
perform 200-CONV-DISPLAY
* display "COBOL record: [" transaction-dsp "]"
call "rep_generate" using transaction-dsp vendor-total
city-total region-total grand-total-dsp
add sales-value to
vendor-total, city-total, region-total, grand-total
read sales-file
at end
move 'Y' to data-end-flag.
200-CONV-DISPLAY.
move sales-vendor-name to vendor-name-dsp
move sales-value to value-dsp
move sales-number to number-dsp
move sales-type to type-dsp
move sales-vendor-region to vendor-region-dsp
move sales-vendor-city to vendor-city-dsp
move sales-comments to comments-dsp
move vendor-total to vendor-total-dsp
move city-total to city-total-dsp
move region-total to region-total-dsp
move grand-total to grand-total-dsp
.