This is an assignment for my CS 370 class. I am having some issues getting my HEADING 3 & HEADING 4 to line up properly. I'm sure it is something small and stupid that I am not seeing. I am a complete beginner in the language and this is our first assignment so I am walking into this blind. I have attached the image of what the output looks like and what it is supposed to look like.
Here is my code.
IDENTIFICATION DIVISION.
PROGRAM-ID. PROGRAM1.
AUTHOR. KJONES.
****************************************************************
* Program1 produces a TRUCK INVENTORY REPORT listing the current
* inventory for all three trucks. Listing the truck ID, employee
* ID, item ID, quantity in stock, purchase price, and selling
* price.
* ******
* INPUT:
* The PIZZA FILE contains the following data in
* each record:
* 1. TRUCK ID
* 2. EMPLOYEE ID
* 3. DRIVERS FIRST NAME & LAST NAME
* 4. NUMBER IN STOCK
* 5. PURCHASE PRICE
* 6. SELL PRICE
* ******
* OUTPUT:
****************************************************************
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. PC.
OBJECT-COMPUTER. PC.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT PIZZA-FILE
ASSIGN TO "PIZZA.TXT"
ORGANIZATION IS LINE SEQUENTIAL.
SELECT INVENTORY-FILE
ASSIGN TO PRINTER "TRUCK-INVENTORY".
DATA DIVISION.
FILE SECTION.
FD PIZZA-FILE
RECORD CONTAINS 80 CHARACTERS.
01 ROLLING-PIZZA-RECORD.
05 TRUCK-ID-IN PIC X(5).
05 EMPLOYEE-ID-IN PIC X(4).
05 EMPLOYEE-NAME-IN PIC X(20).
05 ITEM-ID-IN PIC AA.
05 NUM-IN-STOCK-IN PIC 9(3).
05 PURCH-PRICE-IN PIC 9(3).
05 SELL-PRICE-IN PIC 9(3).
05 FILLER PIC X(40).
FD INVENTORY-FILE
RECORD CONTAINS 80 CHARACTERS.
01 REPORT-RECORD PIC X(80).
WORKING-STORAGE SECTION.
01 FLAGS-N-SWITCHES.
05 EOF-FLAG PIC X VALUE ' '.
88 NO-MORE-DATA VALUE 'N'.
01 REPORT-FIELDS.
05 PROPER-SPACING PIC S9 VALUE +3.
01 WS-WORK-AREAS.
05 ARE-THERE-MORE-RECORDS PIC X(3) VALUE 'YES'.
********************* OUTPUT AREA ****************************
01 HEADING-ONE.
05 PIC X(2) VALUE SPACES.
05 H1-DATE PIC 9999/99/99.
05 PIC X(23) VALUE SPACES.
05 PIC X(32) VALUE 'ROLLING PIZZA'.
05 PIC X(12) VALUE 'KJJ'.
01 HEADING-TWO.
05 PIC X(33) VALUE SPACES.
05 PIC X(46) VALUE
'INVENTORY REPORT'.
01 HEADING-THREE.
05 PIC X(5) VALUE SPACES.
05 PIC X(10) VALUE 'TRUCK'.
05 PIC X(13) VALUE 'EMPLOYEE'.
05 PIC X(9) VALUE 'ITEM'.
05 PIC X(11) VALUE 'NUM IN'.
05 PIC X(13) VALUE 'PURCHASE'.
05 PIC X(18) VALUE 'SELLING'.
01 HEADING-FOUR.
05 PIC X(6) VALUE SPACES.
05 PIC X(12) VALUE 'ID'.
05 PIC X(11) VALUE 'ID'.
05 PIC X(8) VALUE 'ID'.
05 PIC X(12) VALUE 'STOCK'.
05 PIC X(13) VALUE 'PRICE'.
05 PIC X(17) VALUE 'PRICE'.
01 DETAIL-LINE.
05 PIC X(5) VALUE SPACES.
05 DL-TRK-ID PIC X(12).
05 DL-EMP-ID PIC X(12).
05 DL-ITM-ID PIC AA.
05 FILLER PIC X(7) VALUE SPACES.
05 DL-IN-STK PIC 999.
05 FILLER PIC X(9) VALUE SPACES.
05 DL-PURCH-PRCE PIC 999.
05 FILLER PIC X(10) VALUE SPACES.
05 DL-SELL-PRCE PIC 999.
PROCEDURE DIVISION.
100-MAIN-MODULE.
PERFORM 125-HOUSEKEEPING-ROUTINE
PERFORM 175-READ-RECORDS
PERFORM 200-PROCESS-RTN
PERFORM 325-CLOSE-PROGRAM
.
125-HOUSEKEEPING-ROUTINE.
OPEN INPUT PIZZA-FILE
OUTPUT INVENTORY-FILE
ACCEPT H1-DATE FROM DATE YYYYMMDD
PERFORM 150-HEADER-ROUTINE
.
150-HEADER-ROUTINE.
WRITE REPORT-RECORD FROM HEADING-ONE
AFTER ADVANCING PAGE
MOVE 2 TO PROPER-SPACING
MOVE HEADING-TWO TO REPORT-RECORD
PERFORM 300-WRITE-A-LINE
WRITE REPORT-RECORD FROM HEADING-THREE
WRITE REPORT-RECORD FROM HEADING-FOUR
MOVE 3 TO PROPER-SPACING
.
175-READ-RECORDS.
PERFORM UNTIL ARE-THERE-MORE-RECORDS = 'NO'
READ PIZZA-FILE
AT END
MOVE 'NO' TO ARE-THERE-MORE-RECORDS
NOT AT END
PERFORM 200-PROCESS-RTN
END-READ
END-PERFORM
.
200-PROCESS-RTN.
MOVE TRUCK-ID-IN TO DL-TRK-ID
MOVE EMPLOYEE-ID-IN TO DL-EMP-ID
MOVE ITEM-ID-IN TO DL-ITM-ID
MOVE NUM-IN-STOCK-IN TO DL-IN-STK
MOVE PURCH-PRICE-IN TO DL-PURCH-PRCE
MOVE SELL-PRICE-IN TO DL-SELL-PRCE
MOVE DETAIL-LINE TO REPORT-RECORD
WRITE REPORT-RECORD AFTER
ADVANCING 1 LINE
.
300-WRITE-A-LINE.
WRITE REPORT-RECORD
AFTER ADVANCING PROPER-SPACING
.
325-CLOSE-PROGRAM.
CLOSE PIZZA-FILE
CLOSE INVENTORY-FILE
STOP RUN
.
Changing 150-HEADER-ROUTINE
to:
150-HEADER-ROUTINE.
WRITE REPORT-RECORD FROM HEADING-ONE
AFTER ADVANCING PAGE
WRITE REPORT-RECORD FROM HEADING-TWO
AFTER ADVANCING 2 LINES
WRITE REPORT-RECORD FROM HEADING-THREE
AFTER ADVANCING 3 LINES
WRITE REPORT-RECORD FROM HEADING-FOUR
AFTER ADVANCING 1 LINE
WRITE REPORT-RECORD FROM SPACE
AFTER ADVANCING 1 LINE
.
Will give the following order of lines for output.
HEADING-ONE
blank
HEADING-TWO
blank
blank
HEADING-THREE
HEADING-FOUR
blank
DETAIL
DETAIL
. . .
Note that 300-WRITE-A-LINE
was only used once, is not needed and the paragraph may be removed; along with:
01 REPORT-FIELDS.
05 PROPER-SPACING PIC S9 VALUE +3.