home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
database
/
maint.zip
/
MAIN.PRG
< prev
next >
Wrap
Text File
|
1988-04-02
|
14KB
|
636 lines
*************************************************=-
* Program..: MAIN.PRG
* Author...: Gary Sears
* Date.....: 03/13/88
* Notice...: Copyright (c) 1988, Gary Sears, All Rights Reserved
* Notes....:
* Reserved.: selectnum
*
SET PRINTER TO LPT1:
SET DELIM OFF
SET ESCAPE ON
SET TALK OFF
SET BELL OFF
SET STATUS ON
SET CONFIRM OFF
MSG = "It's "+CDOW(DATE())+" the "+str(DAY(DATE()),2)+"th"
SET ODOMETER TO 10
SET PROC TO MAIN
PUBLIC DIMENSION BTIME(16), BTASK(16), BTAG(16), BMAN(16), BSHORT(16), BDATE(16), PTRCODE
PTRCODE=' '
DO WHILE .T.
* ---Display menu options, centered on the screen.
* draw menu border and print heading
CLEAR
SET MESSAGE TO MSG
@ 2, 0 TO 15,79 DOUBLE
@ 3,10 SAY [P R E V E N T A T I V E M A I N T E N A N C E S Y S T E M]
@ 4,1 TO 4,78 DOUBLE
* ---display detail lines
@ 6,24 SAY [1. enter daily data]
@ 7,24 SAY [2. create pm report]
@ 8,24 SAY [3. print daily ledger entries]
@ 9,24 SAY [4. print & reset employee hours]
@ 10,24 SAY [5. monthly close of machine stats]
@ 11,24 SAY [6. change a database - add employees, machines, etc.]
@ 13, 24 SAY '0. EXIT'
STORE 0 TO selectnum
@ 15,33 SAY " select "
@ 15,42 GET selectnum PICTURE "9" RANGE 0,7
READ
CLEAR
DO CASE
CASE selectnum = 0
QUIT
CASE selectnum = 1
* DO enter daily data
do daily
SET FORMAT TO
CASE selectnum = 2
* DO create pm report
do pm
CASE selectnum = 3
* DO print daily ledger entries
do ledger
CASE selectnum = 4
* DO print & reset employee hours
do hours
CASE selectnum = 5
* DO end of machine month
do eom
CASE selectnum = 6
* DO use bid database
do futz
CASE selectnum = 7
* DO ESCAPE TO DBASE
RETURN
ENDCASE
ENDDO T
RETURN
************************************************=-
* Program..: DAILY.PRG
* Author...: Gary Sears
* Date.....: 03/18/1988
* Notice...: Copyright (c) 1988, Gary Sears, All Rights Reserved
* Notes....:
* Reserved.:
*
PROC DAILY
SELE 1
USE MACHINE INDE MSHORT
SELE 2
USE JOBS INDE JDATE
SELE 3
USE MAN INDE MNAME
SELE 4
USE EMP INDE ENAME
SELE 1
ANOTHER='Y'
DO WHILE UPPER(ANOTHER)='Y'
CLEAR
MMAN=SPACE(20)
MSHORT=SPACE(8)
@ 0, 32 SAY "DAILY SHEET"
@ 1, 1 SAY "WORKER " GET MMAN
@ 1, 59 SAY " MACHINE" GET MSHORT
READ
SELE 4
MMAN = RTRIM(MMAN)
FIND &MMAN
DO WHILE .NOT. FOUND()
CLEAR
X= ' '
@ 10,10 SAY "THAT NAME ISN'T IN THE EMPLOYEE LIST AS GIVEN. PLEASE CHECK..."
@ 13,10 SAY "PUT AN 'X' IN TO ABANDON " GET X
READ
IF UPPER(X) = 'X'
RETURN
ENDIF
MMAN=STUFF(SPACE(20),1, LEN(MMAN),MMAN)
@ 20,20 SAY MMAN
@ 21,20 GET MMAN
READ
@ 19,0 CLEAR
MMAN = RTRIM(MMAN)
FIND &MMAN
CLEAR
ENDDO
SELE 1
MSHORT = RTRIM(MSHORT)
FIND &MSHORT
DO WHILE .NOT. FOUND()
CLEAR
X= ' '
@ 10,10 SAY "THAT NAME ISN'T IN THE MACHINE LIST AS GIVEN. PLEASE CHECK..."
@ 13,10 SAY "PUT AN 'X' IN TO ABANDON " GET X
READ
IF UPPER(X) = 'X'
RETURN
ENDIF
MSHORT=STUFF(SPACE(20),LEN(MSHORT),MSHORT)
@ 20,20 SAY MSHORT
@ 21,20 GET MSHORT
READ
@ 19,0 CLEAR
MSHORT = RTRIM(MSHORT)
FIND &MSHORT
CLEAR
ENDDO
MDATE = DATE()
@ 2, 59 SAY "DATE"
@ 2, 68 GET MDATE
READ
REPLACE MACHINE->DATE WITH MDATE
REPLACE MAN->DATE WITH MDATE
I=1
DO WHILE I < 17
BTIME(I)=0
BTASK(I)=SPACE(40)
BTAG(I)=99999
BMAN(I)=MMAN
BSHORT(I)=MSHORT
BDATE(I)=MDATE
I=I+1
ENDDO
@ 3, 12 SAY "JOB CODE"
@ 3, 22 SAY "WHAT WAS DONE"
@ 3, 63 SAY "TIME IT TOOK"
SET MESSAGE TO "Use PgDn to leave this screen fast..."
@ 4, 12 GET BTAG(1) PICT "999999"
@ 4, 22 GET BTASK(1)
@ 4, 66 GET BTIME(1) PICT "999.9"
@ 5, 12 GET BTAG(2) PICT "999999"
@ 5, 22 GET BTASK(2)
@ 5, 66 GET BTIME(2) PICT "999.9"
@ 6, 12 GET BTAG(3) PICT "999999"
@ 6, 22 GET BTASK(3)
@ 6, 66 GET BTIME(3) PICT "999.9"
@ 7, 12 GET BTAG(4) PICT "999999"
@ 7, 22 GET BTASK(4)
@ 7, 66 GET BTIME(4) PICT "999.9"
@ 8, 12 GET BTAG(5) PICT "999999"
@ 8, 22 GET BTASK(5)
@ 8, 66 GET BTIME(5) PICT "999.9"
@ 9, 12 GET BTAG(6) PICT "999999"
@ 9, 22 GET BTASK(6)
@ 9, 66 GET BTIME(6) PICT "999.9"
@ 10, 12 GET BTAG(7) PICT "999999"
@ 10, 22 GET BTASK(7)
@ 10, 66 GET BTIME(7) PICT "999.9"
@ 11, 12 GET BTAG(8) PICT "999999"
@ 11, 22 GET BTASK(8)
@ 11, 66 GET BTIME(8) PICT "999.9"
@ 12, 12 GET BTAG(9) PICT "999999"
@ 12, 22 GET BTASK(9)
@ 12, 66 GET BTIME(9) PICT "999.9"
@ 13, 12 GET BTAG(10) PICT "999999"
@ 13, 22 GET BTASK(10)
@ 13, 66 GET BTIME(10) PICT "999.9"
@ 14, 12 GET BTAG(11) PICT "999999"
@ 14, 22 GET BTASK(11)
@ 14, 66 GET BTIME(11) PICT "999.9"
@ 15, 12 GET BTAG(12) PICT "999999"
@ 15, 22 GET BTASK(12)
@ 15, 66 GET BTIME(12) PICT "999.9"
@ 16, 12 GET BTAG(13) PICT "999999"
@ 16, 22 GET BTASK(13)
@ 16, 66 GET BTIME(13) PICT "999.9"
@ 17, 12 GET BTAG(14) PICT "999999"
@ 17, 22 GET BTASK(14)
@ 17, 66 GET BTIME(14) PICT "999.9"
@ 18, 12 GET BTAG(15) PICT "999999"
@ 18, 22 GET BTASK(15)
@ 18, 66 GET BTIME(15) PICT "999.9"
@ 19, 12 GET BTAG(16) PICT "999999"
@ 19, 22 GET BTASK(16)
@ 19, 66 GET BTIME(16) PICT "999.9"
READ
SELE 1
CLEAR
YNH=.F.
YNP=.F.
SET MESSAGE TO "Use CTL-PgUp to get into and out of MEMO fields."
@ 0, 0 TO 21, 80 DOUBLE
@ 1, 1 SAY "FUEL"
@ 1, 30 SAY "FUEL M.T.D"+STR(MACHINE->FUEL,6,1)
MFUEL=MACHINE->FUEL
@ 1, 12 GET MFUEL
@ 3, 1 SAY "COOLANT"
@ 3, 12 GET COOLANT1
@ 4, 1 SAY "COOLANT2"
@ 4, 12 GET COOLANT2
@ 7, 1 SAY "GREASE: (LOTS OR LITTLE)"
@ 7, 26 GET GREASE
@ 9, 1 SAY "NOTES: SEALS, TIRES, CYLINDERS, WHATEVER:"
@ 11, 1 GET NOTES
@ 13, 1 SAY "EDIT PARTS EDIT HISTORY ODOMETER/HOURS"
@ 14, 1 GET YNP
@ 14, 16 GET YNH
@ 14, 32 GET OD_HRS
MOIL1 = MACHINE->OIL1
MOIL2 = MACHINE->OIL2
@ 16, 30 SAY "OIL-1 M.T.D. "+STR(MACHINE->OIL1,5,1)
@ 17, 30 SAY "OIL-2 M.T.D. "+STR(MACHINE->OIL2,5,1)
@ 16, 1 SAY "OIL-1" GET MOIL1
@ 17, 1 SAY "OIL-2" GET MOIL2
MT1 = MACHINE->TRANS1
MT2 = MACHINE->TRANS2
@ 19, 30 SAY "TRANS-1 M.T.D. "+STR(MACHINE->TRANS1,5,1)
@ 20, 30 SAY "TRANS-2 M.T.D. "+STR(MACHINE->TRANS2,5,1)
@ 19, 1 SAY "TRANS-1" GET MT1
@ 20, 1 SAY "TRANS-2" GET MT2
READ
REPL MACHINE->FUEL WITH MACHINE->FUEL + MFUEL
REPL MACHINE->OIL1 WITH MACHINE->OIL1+MOIL1, MACHINE->OIL2 WITH MACHINE->OIL2+MOIL2
REPL MACHINE->TRANS1 WITH MACHINE->TRANS1+MT1, MACHINE->TRANS2 WITH MACHINE->TRANS2+MT2
IF YNH
SET MESSAGE TO "History.. use Ctl-PgUp to get in and out."
EDIT FIELD HISTORY
ENDIF
IF YNP
SET MESSAGE TO "Parts.. use Ctl-PgUp to get in and out."
EDIT FIELD PARTS
ENDIF
SELE 2 && JOBS
I=1
SET MESSAGE TO "updating job sheet records..."
DO WHILE I < 17
IF BTIME(I) > 0
APPE BLANK
REPL TIME WITH BTIME(I), TASK WITH BTASK(I), TAG WITH BTAG(I)
REPL MAN WITH BMAN(I), MACHINE WITH BSHORT(I), DATE WITH BDATE(I)
SELE 3
REPL HOURS WITH HOURS + BTIME(I)
SELE 2
ELSE
EXIT
ENDIF
I=I+1
ENDDO
SET MESSAGE TO
@ 20,55 SAY "ADD ANOTHER? (Y/N) " GET ANOTHER PICT 'X'
READ
ENDDO
SELE 4
USE
SELE 3
USE
SELE 2
USE
SELE 1
USE
RETURN
************************************************=-
* Program..: PM.PRG
* Author...: Gary Sears
* Date.....: 03/18/1988
* Notice...: Copyright (c) 1988, Gary Sears, All Rights Reserved
* Notes....:
* Reserved.:
*
PROC PM
SELE 1
USE PM INDE PMSHORT
SELE 2
USE MACHINE INDE MSHORT
SELE 3
USE PMRPT
SET SAFETY OFF
ZAP
SET SAFETY ON
SELE 2
GO TOP
DO WHILE .NOT. EOF()
MCOMP=SHORT
MMETER = OD_HRS
MCOMMENT=NOTES
SELE 1
FIND &MCOMP
IF EOF()
SELE 2
SKIP
LOOP
ENDIF
DO WHILE SHORT=MCOMP
IF FREQ+LASTPM > MMETER
SKIP
LOOP
ENDIF
MS=SHORT
MT=TASK
MF=FREQ
ML=LASTPM
SELE 3
APPE BLANK
REPL SHORT WITH MS, TASK WITH MT, FREQ WITH MF, LASTPM WITH ML, NOTES WITH MCOMMENT
SELE 1
REPL LASTPM WITH MACHINE->OD_HRS
SKIP
ENDDO
SELE 2
SKIP
ENDDO
*
* PRINT REPORT
*
SELE 1
USE
SELE 2
USE
SELE 3
GO TOP
SET PRINT ON
? PTRCODE
? "PM DUTY SHEET "+DTOC(DATE())
?
?
? "MACHINE FREQUENCY LAST PM"
? "TASK"
?
DO WHILE .NOT. EOF()
? SHORT, SPACE(8), FREQ, SPACE(8), LASTPM
? TASK
? NOTES
?
SKIP
ENDDO
SET PRINT OFF
EJECT
USE
RETURN
************************************************=-
* Program..: LEDGER.PRG
* Author...: Gary Sears
* Date.....: 03/13/88
* Notice...: Copyright (c) 1988, Gary Sears, All Rights Reserved
* Notes....:
* Reserved.:
*
PROC LEDGER
SELE 1
USE JOBS
SELE 2 USE BID INDE BIDNO
SELE 1
STDATE=DATE()
@ 5,5 SAY "WHAT DATE TO START? "GET STDATE
READ
CLEAR
INDE ON DTOC(DATE) TO JDATE
SDATE=DTOC(STDATE)
FIND &SDATE
IF EOF()
GO TOP
ENDIF
SET PRINT ON
? "LEDGER DATA DUMP FOR "+DTOC(STDATE)+ " TO "+DTOC(DATE())
? " JOB # MAN MACHINE"
? " TIME TASK"
?
DO WHILE .NOT. EOF()
?
? STR(TAG,6),SPACE(5),MAN,MACHINE
? STR(TIME,5,1),TASK
SKIP
ENDDO
SET PRINT OFF
EJECT
CLEAR
YN='Y'
@ 20,20 SAY "SHOULD I CLEAR THE DATABASE NOW? " GET YN
READ
IF UPPER(YN) = 'Y'
SET SAFETY OFF
ZAP
SET SAFETY ON
ENDIF
USE
RETURN
************************************************=-
* Program..: HOURS.PRG
* Author...: Gary Sears
* Date.....: 03/13/88
* Notice...: Copyright (c) 1988, Gary Sears, All Rights Reserved
* Notes....:
* Reserved.:
*
PROC HOURS
USE MAN INDE MNAME
GO TOP
SET PRINT ON
? PTRCODE
? " HOURS PER MAN SCHEDULE AS OF ",DTOC(DATE())
?
? "DATE HOURS NAME"
?
DO WHILE .NOT. EOF()
? DTOC(DATE),STR(HOURS,5,1),NAME
?
SKIP
ENDDO
SET PRINT OFF
EJECT
REPLACE ALL HOURS WITH 0
RETURN
************************************************=-
* Program..: EOM.PRG
* Author...: Gary Sears
* Date.....: 03/13/88
* Notice...: Copyright (c) 1988, Gary Sears, All Rights Reserved
* Notes....:
* Reserved.: selectnum
*
PROC EOM
USE MACHINE INDE MSHORT
SET PRINT ON
? SPACE(20)+"END OF MONTH P.M. STATUS REPORT"
?
?
? PTRCODE
? "SHORT WHERE FUEL OIL1 OIL1 TRANS1 TRANS2 HYDR GREASE METER DATE"
? " LAST MO. FUEL OIL1 OIL2 TRANS1 TRANS2 HYDR GREASE METER DATE"
DO WHILE .NOT. EOF()
?
? SHORT,WHERE,STR(FUEL,5),STR(OIL1,5),STR(OIL2,5),STR(TRANS1,5),STR(TRANS2,5),STR(HYDRAULIC,5),GREASE,STR(OD_HRS,11),DTOC(DATE())
? SPACE(15),STR(FUELLM,5),STR(OIL1LM,5),STR(OIL2LM,5),STR(TRANS1LM,5),STR(TRANS2LM,5),STR(HYDRAULICL,5),GREASELM,STR(METERLM,11),DTOC(DATE)
?
SKIP
ENDDO
SET PRINT OFF
EJECT
SET MESSAGE TO "now updating the records in MACHINE."
REPL FUELLM WITH FUEL, OIL1LM WITH OIL1, OIL2LM WITH OIL2,TRANS1LM WITH TRANS1
REPL TRANS2LM WITH TRANS2, HYDRAULICLM WITH HYDRAULIC, GREASELM WITH GREASE
REPL METERLM WITH METER, DATE WITH DATE()
REPL FUEL WITH 0, OIL1 WITH 0, OIL2 WITH 0, TRANS1 WITH 0, TRANS2 WITH 0
REPL HYDRAULIC WITH 0
USE
RETURN
************************************************=-
* Program..: FUTZ.PRG
* Author...: Gary Sears
* Date.....: 03/18/1988
* Notice...: Copyright (c) 1988, Gary Sears, All Rights Reserved
* Notes....:
* Reserved.:
*
PROC FUTZ
DB = SPACE(8)
@ 1,1 TO 21,77 DOUBLE
@ 5,20 SAY "THESE ARE THE DATABASES TO CHOOSE FROM:"
@ 9,5 SAY "MACHINE machine stats "
@ 11,5 SAY "EMP employee names, rates and hours "
@ 13,5 SAY "JOBS daily job description and time specs "
@ 15,5 SAY "PM prev. maint. schedules and intervals "
@ 17,5 SAY "BID client bid data "
@ 20,20 SAY "which database to use? " GET DB
READ
DB = UPPER(DB)
DO CASE
CASE DB = 'MACHINE'
USE MACHINE INDE MSHORT
GETIT = SPACE(8)
CASE DB = 'EMP'
USE EMP INDE ENAME
GETIT = SPACE(20)
CASE DB = 'JOBS'
USE JOBS INDE JDATE
GETIT = DATE()
CASE DB = 'PM'
USE PM INDE PMSHORT
GETIT = SPACE(8)
CASE DB = 'BID'
USE BID INDE BIDNO
GETIT = SPACE(6)
OTHERWISE
RETURN
ENDCASE
FN = 0
YN = 'Y'
CLEAR
@ 1,1 TO 22,77 DOUBLE
@ 5,5 SAY "THESE ARE THE FUNCTIONS:"
@ 9,5 SAY "1. EXAMINE this allows you to do random changes."
@ 11,5 SAY "2. ADD add new records. (don't leave empties!)"
@ 13,5 say "3. DELETE erase records. "
@ 15,5 say "4. PRINT dump records to the printer."
@ 17,5 SAY "5. REINDEX makes things sane when they go whacko."
@ 19,5 SAY "0. EXIT"
@ 21,5 say "which function to do? " GET FN PICT "9" RANGE 0,5
READ
DO CASE
CASE FN = 1
CLEAR
@ 18,20 SAY "THIS IS THE BROWSE MODE. USE CTL-ARROW KEYS TO MOVE"
@ 19,20 SAY "AROUND THE DATABASE. USE CTL-U TO DELETE RECORDS."
@ 20,20 SAY " DO YOU WANT TO FIND AN ENTRY FIRST?" GET YN
READ
IF UPPER(YN) = 'Y'
@ 21,10 SAY "FIND THIS:" GET GETIT
READ
IF DB='JOBS'
GETME = DTOC(GETIT)
FIND &GETME
ELSE
FIND &GETIT
ENDIF
ENDIF
BROWSE
PACK
REIN
CASE FN = 3
CLEAR
@ 18,20 SAY "THIS IS THE BROWSE MODE. USE CTL-ARROW KEYS TO MOVE"
@ 19,20 SAY "AROUND THE DATABASE. USE CTL-U TO DELETE RECORDS."
@ 20,20 SAY " DO YOU WANT TO FIND AN ENTRY FIRST?" GET YN
READ
IF UPPER(YN) = 'Y'
@ 21,10 SAY "FIND THIS:" GET GETIT
READ
FIND &GETIT
ENDIF
BROWSE
PACK
REIN
CASE FN = 2
APPE
CASE FN = 4
LIST TO PRINT OFF
CASE FN = 5
USE
CLEAR
SET SAFE OFF
SET TALK ON
USE BID
DELETE FOR LEN(TRIM(CLIENT))=0
PACK
INDEX ON BIDNO TO BIDNO
USE PM
DELETE FOR LEN(TRIM(TASK))=0
PACK
INDEX ON SHORT TO PMSHORT
USE JOBS
DELE FOR LEN(TRIM(TASK))=0
PACK
INDE ON DTOC(DATE) TO JDATE
USE EMP
DELETE FOR LEN(TRIM(NAME))=0
PACK
INDE ON NAME TO ENAME
REIN
USE MACHINE
DELETE FOR LEN(TRIM(NAME))=0 .OR. LEN(TRIM(TYPE))=0
PACK
INDE ON NAME TO MNAME
INDE ON SHORT TO MSHORT
SET TALK OFF
SET SAFE ON
CASE FN = 0
RETURN
ENDCASE
USE
RETURN
************************************************=-