home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG045.ARK / P_R260.BAS < prev    next >
BASIC Source File  |  1984-04-29  |  2KB  |  60 lines

  1.     REMARK    *********************************\
  2.         *  P/R260.BAS  ABSENTEE REPORT  *\
  3.         *    3/16/79           2:45 PM  *\
  4.         *********************************
  5. %INCLUDE CURSOR
  6.     DIM G2$(5),G3(5)
  7.     DIM S(96),R$(5),R1(2),R2(5),B1(5)
  8.     GOTO 6000
  9. %INCLUDE SUBS1
  10. %INCLUDE GENINFO
  11. %INCLUDE MSTRIN
  12. 825    A1=44                                REMARK  ****    LINE PRINTER ROUTINE    ****
  13.  
  14.     IF LINE.COUNT% < 55 THEN RETURN                    REMARK  IF SPACE REMAINS ON REPORT PAGE, RETURN
  15.     P=P+1
  16.     PRINT CHR$(12);
  17. 830    PRINT TAB((A1-LEN(G2$(1)))/2);G2$(1);TAB(A1);"DATE ";        REMARK  PRINT COMPANY NAME AND DATE
  18.     X0=G3(1):GOSUB 680.5
  19.     PRINT
  20.     PRINT TAB((A1-LEN(X4$))/2);X4$;TAB(A1);"PAGE ";P        REMARK  PRINT REPORT TITLE AND PAGE NUMBER
  21.     PRINT
  22. 835    PRINT" EMPLOYEE  NAME";TAB(35);"HRS SHORT"
  23.     PRINT
  24.     LINE.COUNT%=6                            REMARK  SET LINE COUNTER FOR NEW REPORT PAGE
  25.     RETURN 
  26. 6000    DEF FNR(Z1)=INT(Z1*100+.5)/100
  27.     MASKA$=" ######    /23456789.123456789.123/ ####.##"        REMARK  SET UP PRINT MASK
  28.     MASKB$="####.##"
  29.     PRINT CLEAR.SCREEN$;"P/R ABSENTEE REPORT"
  30.     PRINT "KEY RETURN TO BEGIN; CTRL-C TO EXIT"
  31. 6000.1    IF CONSTAT%=0 THEN GOTO 6000.1 ELSE A%=CONCHAR%            REMARK  POLL KEYBOARD FOR <RETURN> OR CTRL-C
  32.     IF A%=03H THEN GOTO 6200                    REMARK  TERMINATE PROGRAM IF CTRL-C PRESSED
  33.     IF A% <> 0DH THEN GOTO 6000.1                    REMARK  WAIT FOR <RETURN> TO BE PRESSED
  34.     Y9=2:OPEN "G/I0F010.DAT" RECL 200 AS Y9
  35.     GOSUB 700                            REMARK  READ GENERAL INFORMATION FILE
  36.     LPRINTER                            REMARK  SELECT PRINTER AS OUTPUT DEVICE
  37.     OPEN "P/R0F110.DAT" RECL 1150 AS 1                REMARK  OPEN EMPLOYEE MASTER FILE
  38.     OPEN "P/R0F050.DAT" AS 3                    REMARK  OPEN SUMMARY FILE FOR SUBSEQUENT DELETION
  39.     X4$="ABSENTEE REPORT"
  40.     LINE.COUNT%=60
  41.     FOR J%=1 TO MSTR.RECORDS                    REMARK  USE THE ENTIRE MASTER FILE
  42.     X0=J%
  43.     GOSUB 745                            REMARK  READ EMPLOYEE RECORD
  44.     Z1=S(73)+S(75)+S(77)+S(80)                    REMARK  ADD UP TOTAL HOURS FOR CURRENT EMPLOYEE
  45.     IF R2(1)=1 AND Z1<80 \                        REMARK IF AN HOURLY EMPLOYEE HAS LESS THAN 80 HOURS
  46.     THEN \
  47.     LINE.COUNT%=LINE.COUNT%+1:\                    REMARK PRINT DETAIL ON THE REPORT
  48.      GOSUB 825:\
  49.     PRINT USING MASKA$;S(1);R$(1);80-Z1:\
  50.     A=A+(80-Z1)                            REMARK  ADD TO TOTAL HOURS SHORT
  51.     NEXT J%
  52.     PRINT
  53.     PRINT " TOTAL";TAB(37);
  54.     PRINT USING MASKB$;A                        REMARK  PRINT TOTAL HOURS SHORT
  55.     DELETE 3:CREATE "P/R0F050.DAT" AS 3                REMARK  DELETE AND RECREATE SUMMARY FILE
  56. 6200    CONSOLE
  57.     PRINT CLEAR.SCREEN$;"P/R ABSENTEE REPORT LOADING MENU"        REMARK  EXIT PROGRAM AND LOAD MENU
  58.     CHAIN "P/R000"
  59.  
  60.