Profits Program Example

This program prints a profits report.  A SELECT must be performed before running this program.

EQU AM TO CHAR(254), VM TO CHAR(253)
BUDGET = 0; REV.BUDGET = 
!
* Input from file
* Total attributes 5, 7, and 23 
!
OPEN 'PROJ' ELSE
    PRINT "CANT OPEN PROJ"; STOP
END
!
READ TOT.PRC FROM 'TOT.PRC' ELSE
    PRINT "CANT READ TOT.PRC"; STOP
END
!
READ REV.TOT.PRC FROM "REV.TOT.PRC" ELSE
    PRINT "CANT READ REV.TOT.PRC"
    STOP
END
!
READ NUM.UNITS FROM 'NUM.UNITS' ELSE
    PRINT "CANT READ NUM.UNITS"; STOP
END
!
LOOP WHILE READNEXT ID DO
    IF LEN(ID) # 7 THEN PRINT
       "I.D. NOT 7 CHARACTERS"; STOP
    END
    READ ITEM FROM ID ELSE
       PRINT "CANT READ ":ID; STOP
    END
    BUDGET = BUDGET + ITEM<5>
    IF ITEM<7> > 0 THEN
       REV.BUDGET = REV.BUDGET + ITEM<7>
    END
    REV.BUDGET = REV.BUDGET + : SUMMATION(ITEM<23>)
REPEAT
!
* Convert to dollars and compute budget
* totals
!
BUDGET = BUDGET/100
REV.BUDGET = REV.BUDGET/100
TOT.PRC = TOT.PRC/100
REV.TOT.PRC=REV.TOT.PRC/100
OVER.UNDER = BUDGET - REV.BUDGET
TOT.PRC.O.U = TOT.PRC-REV.TOT.PRC
!
* Compute profits 
!
PROJ.PROF = TOT.PRC-BUDGET
REV.PROJ.PROF = REV.TOT.PRC-REV.BUDGET
PROJ.PROF.O.U.= PROJ.PROF-REV.PROJ.PROF
!
* Compute per/unit profits and percentages 
!
PU1 = PROJ.PROF/NUM.UNITS
PU2 = REV.PROJ.PROF/NUM.UNITS
PU3 = PROJ.PROF.O.U./NUM.UNITS
P1 = PROJ.PROF/(TOT.PRC/100)
P2 = REV.PROJ.PROF/(REV.TOT.PRC/100)
!
* Print
!
FMT = 'R2,#14'
PRINT
PRINT "                           BUDGET REV-BUDGET":
PRINT " OVER/UNDER"
PRINT " TOTAL SALES PRICE ":TOT.PRC FMT:... 
     REV.TOT.PRC FMT:TOT.PRC.O.U FMT
PRINT " TOTAL COST ":BUDGET FMT:REV.BUDGET FMT:O.U FMT
PRINT " PROJECTED PROFIT ":PROJ.PROF FMT:...
     REV.PROJ.PROF FMT:PROJ.PROF.O.U FMT
PRINT " PER UNIT ":PU1 FMT:PU2 FMT:PU2 FMT
PRINT " AS % OF SALES ":P1 FMT:P2 FMT
END