home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Sams Cobol 24 Hours
/
Sams_Cobol_24_Hours.iso
/
Cobol32
/
PowerFRM
/
frmRTS.z
/
sale.cob
< prev
next >
Wrap
Text File
|
1997-03-31
|
13KB
|
257 lines
000010 IDENTIFICATION DIVISION.
000020 PROGRAM-ID. SALES.
000030 ENVIRONMENT DIVISION.
000040 CONFIGURATION SECTION.
000050 SPECIAL-NAMES.
000060 SYMBOLIC CONSTANT
000070 NORMAL IS " "
000080 .
000090*
000100* Define sequential file for printing
000110*
000120 INPUT-OUTPUT SECTION.
000130 FILE-CONTROL.
000140 SELECT PRINT-FILE ASSIGN TO PRTFILE
000150 ORGANIZATION IS SEQUENTIAL
000160 ACCESS MODE IS SEQUENTIAL
000170 FORMAT IS PRT-FORMAT
000180 GROUP IS PRT-GROUP
000190 .
000200 DATA DIVISION.
000210 FILE SECTION.
000220*
000230* Copy print record from format descriptor
000240*
000250 FD PRINT-FILE.
000260 COPY SALE OF XMDLIB.
000270* ~~~~~name of the format descriptor
000280 WORKING-STORAGE SECTION.
000290*
000300* Control Area
000310*
000320 01 PRT-PARAM.
000330 03 PRT-FORMAT PIC X(08) VALUE " ".
000340 03 PRT-GROUP PIC X(08) VALUE " ".
000350*
000360* Print Data
000370*
000380 01 SAMPLE-DATA.
000390* --- These data being loaded from DB in the actual program. ---
000400 02 DETAIL-LINE.
000410 03 REGION-NAME-DATA-TABLE.
000420 04 PIC X(10) VALUE "New York".
000430 04 PIC X(10) VALUE "Washington".
000440 04 PIC X(10) VALUE "Boston".
000450 04 PIC X(10) VALUE "San Jose".
000460 04 PIC X(10) VALUE "Chicago".
000470 04 PIC X(10) VALUE "Los angels".
000480 04 PIC X(10) VALUE "Sacramento".
000490 04 PIC X(10) VALUE "Honolulu".
000500 04 PIC X(10) VALUE "Tokyo".
000510 04 PIC X(10) VALUE "HongKong".
000520 03 REDEFINES REGION-NAME-DATA-TABLE.
000530 04 REGION-NAME-DATA PIC X(10) OCCURS 10.
000540 03 GROUP-NAME-TABLE.
000550 04 PIC X(10) VALUE "GOLF".
000560 04 PIC X(10) VALUE "FOOTBALL".
000570 04 PIC X(10) VALUE "SKI".
000580 04 PIC X(10) VALUE "TENNIS".
000590 03 REDEFINES GROUP-NAME-TABLE.
000600 04 G-NAME PIC X(10) OCCURS 4.
000610 03 GOODS-NAME-DATA-TABLE.
000620 04 PIC X(12) VALUE "Shoes".
000630 04 PIC X(12) VALUE "Bag".
000640 04 PIC X(12) VALUE "Wear".
000650 04 PIC X(12) VALUE "Ball".
000660 04 PIC X(12) VALUE "Shoes".
000670 04 PIC X(12) VALUE "Wear".
000680 04 PIC X(12) VALUE "Club Set".
000690 04 PIC X(12) VALUE "Bag".
000700 04 PIC X(12) VALUE "Ball".
000710 04 PIC X(12) VALUE "Wear".
000720 04 PIC X(12) VALUE "Shoes".
000730 04 PIC X(12) VALUE "Club Set".
000740 04 PIC X(12) VALUE "Shoes".
000750 04 PIC X(12) VALUE "Ball".
000760 04 PIC X(12) VALUE "Bag".
000770 04 PIC X(12) VALUE "Club Set".
000780 03 REDEFINES GOODS-NAME-DATA-TABLE.
000790 04 GOODS-NAME-DATA PIC X(12) OCCURS 16.
000800 03 DATE-DATA-TABLE.
000810 04 PIC 9(6) VALUE 200196.
000820 04 PIC 9(6) VALUE 200296.
000830 04 PIC 9(6) VALUE 200296.
000840 04 PIC 9(6) VALUE 200396.
000850 04 PIC 9(6) VALUE 200396.
000860 04 PIC 9(6) VALUE 200496.
000870 04 PIC 9(6) VALUE 200596.
000880 04 PIC 9(6) VALUE 200696.
000890 04 PIC 9(6) VALUE 200696.
000900 04 PIC 9(6) VALUE 200696.
000910 04 PIC 9(6) VALUE 200796.
000920 04 PIC 9(6) VALUE 200896.
000930 04 PIC 9(6) VALUE 200996.
000940 04 PIC 9(6) VALUE 201196.
000950 04 PIC 9(6) VALUE 201296.
000960 04 PIC 9(6) VALUE 201296.
000970 03 REDEFINES DATE-DATA-TABLE.
000980 04 DATE-DATA PIC 9(6) OCCURS 16.
000990 03 CUSTOMER-NAME-DATA-TABLE.
001000 04 PIC X(16) VALUE "Green Inc.".
001010 04 PIC X(16) VALUE "Blue Co.,Ltd.".
001020 04 PIC X(16) VALUE "Cyan Trading".
001030 04 PIC X(16) VALUE "White Inc.".
001040 04 PIC X(16) VALUE "Yellow Inc.".
001050 04 PIC X(16) VALUE "Black Trading".
001060 04 PIC X(16) VALUE "Brown Co.,Ltd.".
001070 04 PIC X(16) VALUE "Gray Trading".
001080 04 PIC X(16) VALUE "Pink Inc.".
001090 04 PIC X(16) VALUE "Light Blue Inc.".
001100 04 PIC X(16) VALUE "Red Business".
001110 04 PIC X(16) VALUE "Magenta Co.,Ltd".
001120 04 PIC X(16) VALUE "Purple Inc.".
001130 04 PIC X(16) VALUE "Silver Business".
001140 04 PIC X(16) VALUE "Orange Trading".
001150 04 PIC X(16) VALUE "Golden Inc.".
001160 03 REDEFINES CUSTOMER-NAME-DATA-TABLE.
001170 04 CUSTOMER-NAME-DATA PIC X(16) OCCURS 16.
001180 03 SALES-DATA-TABLE.
001190 04 PIC 9(13) VALUE 200000.
001200 04 PIC 9(13) VALUE 600000.
001210 04 PIC 9(13) VALUE 500000.
001220 04 PIC 9(13) VALUE 5000.
001230 04 PIC 9(13) VALUE 200000.
001240 04 PIC 9(13) VALUE 500000.
001250 04 PIC 9(13) VALUE 1800000.
001260 04 PIC 9(13) VALUE 600000.
001270 04 PIC 9(13) VALUE 5000.
001280 04 PIC 9(13) VALUE 500000.
001290 04 PIC 9(13) VALUE 200000.
001300 04 PIC 9(13) VALUE 1800000.
001310 04 PIC 9(13) VALUE 200000.
001320 04 PIC 9(13) VALUE 5000.
001330 04 PIC 9(13) VALUE 600000.
001340 04 PIC 9(13) VALUE 1800000.
001350 03 REDEFINES SALES-DATA-TABLE.
001360 04 SALES-DATA PIC 9(13) OCCURS 16.
001370 02 SUM-LINE.
001380 03 SALES-SUM PIC 9(13) VALUE 0.
001390 02 TOTAL-SUM-LINE.
001400 03 SALES-TOTAL-SUM PIC 9(13) VALUE 0.
001410 02 WORK-TABLE.
001420 03 GROUP-1-TABLE.
001430 04 PIC 9(2) VALUE 16.
001440 04 PIC 9(2) VALUE 12.
001450 04 PIC 9(2) VALUE 5.
001460 04 PIC 9(2) VALUE 9.
001470 04 PIC 9(2) VALUE 15.
001480 04 PIC 9(2) VALUE 8.
001490 04 PIC 9(2) VALUE 7.
001500 04 PIC 9(2) VALUE 5.
001510 04 PIC 9(2) VALUE 13.
001520 04 PIC 9(2) VALUE 10.
001530 03 GROUP-2-TABLE.
001540 04 PIC 9(2) VALUE 7.
001550 04 PIC 9(2) VALUE 8.
001560 04 PIC 9(2) VALUE 9.
001570 04 PIC 9(2) VALUE 14.
001580 04 PIC 9(2) VALUE 5.
001590 04 PIC 9(2) VALUE 9.
001600 04 PIC 9(2) VALUE 10.
001610 04 PIC 9(2) VALUE 7.
001620 04 PIC 9(2) VALUE 5.
001630 04 PIC 9(2) VALUE 13.
001640 03 GROUP-3-TABLE.
001650 04 PIC 9(2) VALUE 9.
001660 04 PIC 9(2) VALUE 6.
001670 04 PIC 9(2) VALUE 9.
001680 04 PIC 9(2) VALUE 12.
001690 04 PIC 9(2) VALUE 8.
001700 04 PIC 9(2) VALUE 13.
001710 04 PIC 9(2) VALUE 5.
001720 04 PIC 9(2) VALUE 8.
001730 04 PIC 9(2) VALUE 11.
001740 04 PIC 9(2) VALUE 8.
001750 03 GROUP-4-TABLE.
001760 04 PIC 9(2) VALUE 10.
001770 04 PIC 9(2) VALUE 11.
001780 04 PIC 9(2) VALUE 9.
001790 04 PIC 9(2) VALUE 13.
001800 04 PIC 9(2) VALUE 7.
001810 04 PIC 9(2) VALUE 10.
001820 04 PIC 9(2) VALUE 12.
001830 04 PIC 9(2) VALUE 6.
001840 04 PIC 9(2) VALUE 4.
001850 04 PIC 9(2) VALUE 7.
001860 02 REDEFINES WORK-TABLE.
001870 03 OCCURS 4.
001880 04 GROUP-N PIC 9(2) OCCURS 10.
001890* Counters
001900 77 CNTI PIC 9(2) BINARY.
001910 77 CNTJ PIC 9(2) BINARY.
001920 77 PAGEN PIC 9(3) BINARY.
001930*
001940******************************************************************
001950 PROCEDURE DIVISION.
001960*
001970* Open Print File
001980 OPEN OUTPUT PRINT-FILE
001990 INITIALIZE SALE
002000 .
002010* Header
002020* (fixed positional partition : HEAD)
002030 PERFORM VARYING PAGEN FROM 1 BY 1 UNTIL PAGEN > 2
002040 MOVE "SALE" TO PRT-FORMAT
002050 MOVE "HEAD" TO PRT-GROUP
002060 MOVE PAGEN TO PAGE-COUNT OF SALE
002070 WRITE SALE AFTER ADVANCING PAGE
002080* ~~~~~~~~~~~~~~~~~~~~ form feed
002090 PERFORM VARYING CNTI FROM 1 BY 1 UNTIL CNTI > 4
002100* Detail line printing
002110* (floating positional partition : DETAIL)
002120* Set sample data
002130 MOVE "DETAIL" TO PRT-GROUP
002140 PERFORM VARYING CNTJ FROM 1 BY 1 UNTIL CNTJ > GROUP-N(CNTI PAGEN)
002150 MOVE GOODS-NAME-DATA(CNTJ) TO GOODS-NAME OF SALE
002160 MOVE DATE-DATA(CNTJ) TO SALES-DATE OF SALE
002170 MOVE CUSTOMER-NAME-DATA(CNTJ) TO CUSTOMER-NAME OF SALE
002180 MOVE SALES-DATA(CNTJ) TO SALES OF SALE
002190 ADD SALES-DATA(CNTJ) TO SALES-SUM OF SUM-LINE
002200 IF CNTJ = 1 THEN
002210 MOVE REGION-NAME-DATA(PAGEN) TO REGION-NAME OF SALE
002220 MOVE G-NAME(CNTI) TO GROUP-NAME OF SALE
002230 IF CNTI = 1 THEN
002240 WRITE SALE AFTER ADVANCING 1 LINE
002250* ~~~~~~~~~~~~~~~~~~~~~ form feed
002260 ELSE
002270 WRITE SALE AFTER ADVANCING 0 LINE
002280* ~~~~~~~~~~~~~~~~~~~~ no form feed
002290 END-IF
002300 MOVE SPACE TO REGION-NAME OF SALE
002310 MOVE SPACE TO GROUP-NAME OF SALE
002320 ELSE
002330 WRITE SALE AFTER ADVANCING 0 LINE
002340* ~~~~~~~~~~~~~~~~~~~~ no form feed
002350 END-IF
002360 END-PERFORM
002370* Sum printing
002380* (floating positional partition : SUM)
002390 MOVE "SUM" TO PRT-GROUP
002400 MOVE CORR SUM-LINE OF SAMPLE-DATA TO SALE
002410 WRITE SALE AFTER ADVANCING 0 LINE
002420 ADD SALES-SUM OF SUM-LINE TO SALES-TOTAL-SUM OF TOTAL-SUM-LINE
002430 MOVE 0 TO SALES-SUM OF SUM-LINE
002440 END-PERFORM
002450* Total sum printing
002460* (floating positional partition : TOTAL)
002470 MOVE "TOTAL" TO PRT-GROUP
002480 MOVE "LOGO.BMP" TO LOGO-AREA OF SALE
002490 MOVE "B" TO EDIT-MODE OF LOGO-AREA OF SALE
002500 MOVE CORR TOTAL-SUM-LINE OF SAMPLE-DATA TO SALE
002510 WRITE SALE AFTER ADVANCING 0 LINE
002520 END-PERFORM
002530******************************************************************
002540 CLOSE PRINT-FILE
002550 STOP RUN
002560 .
002570 END PROGRAM SALES.