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_R170.BAS < prev    next >
BASIC Source File  |  1984-04-29  |  3KB  |  55 lines

  1.     REMARK    ****************************************\
  2.         *  P/R170.BAS  PAYROLL CHECK REGISTER  *\
  3.         *     3/14/79               9:20 AM    *\
  4.         ****************************************
  5. %INCLUDE CURSOR
  6.     DIM G2$(5),G3(5),S(96),R1(2),R2(5),R$(5)
  7.     GOTO 6000
  8. %INCLUDE SUBS1
  9. %INCLUDE MSTRIN
  10. %INCLUDE GENINFO
  11. 825    A1=30                                REMARK  ****    LINE PRINTER ROUTINE    ****
  12.     IF LINE.COUNT% < 55  THEN  RETURN                REMARK  IF SPACE REMAINS ON REPORT PAGE, RETURN
  13.     P=P+1                                REMARK  INCREMENT PAGE COUNTER
  14.     PRINT CHR$(12)                            REMARK  PRINT FORM FEED
  15.     PRINT TAB((A1-LEN(G2$(1)))/2);G2$(1);TAB(A1);"DATE ";        REMARK  PRINT COMPANY NAME AND DATE
  16.     X0=G3(1):GOSUB 680.5
  17.     PRINT
  18.     PRINT TAB((A1-LEN(X4$))/2);X4$;TAB(A1);"PAGE ";P        REMARK  PRINT REPORT TITLE AND PAGE NUMBER
  19.     PRINT
  20.     PRINT " CHECK NO.  NET AMOUNT"
  21.     PRINT
  22.     LINE.COUNT%=6                            REMARK  RESET LINE COUNTER FOR NEW REPORT PAGE
  23.     RETURN
  24. 6000    DEF FNR(A1)=INT(A1*100+.5)/100                    REMARK  ROUNDING FUNCTION
  25.     B$="TOTAL ## CHECKS     AMOUNT ######.##"
  26.     A$="   ######   ######.##"                    REMARK  SET UP PRINT MASKS
  27.     PRINT CLEAR.SCREEN$;"P/R CHECK REGISTER"            REMARK  DISPLAY PROGRAM I.D. ON CRT
  28.     PRINT "KEY RETURN TO BEGIN; CTRL-C TO EXIT"
  29. 6000.1    IF CONSTAT%=0 THEN GOTO 6000.1 ELSE A%=CONCHAR%            REMARK  POLL KEYBOARD FOR <RETURN> OR CTRL-C
  30.     IF A% = 03H THEN GOTO 7000                REMARK  IF CTRL-C WAS ENTERED, ABORT PROGRAM
  31.     IF A% <> 0DH THEN GOTO 6000.1                REMARK  WAIT FOR <RETURN> TO BE PRESSED
  32.  
  33.     Y9=2
  34.     OPEN "P/R0F110.DAT" RECL 1150 AS 1                REMARK  OPEN EMPLOYEE MASTER FILE
  35.     OPEN "G/I0F010.DAT" RECL 200 AS Y9                REMARK  OPEN GENERAL INFORMATION FILE
  36.     GOSUB 700                            REMARK  READ GENERAL INFORMATION FILE
  37.     LPRINTER                            REMARK  SELECT PRINTER AS OUTPUT DEVICE
  38.     X4$="PAYROLL CHECK REGISTER"
  39.     LINE.COUNT%=60
  40.     GOSUB 825                            REMARK  PRINT REPORT HEADINGS
  41.     FOR X0=1 TO MSTR.RECORDS                    REMARK  PROCESS ENTIRE EMPLOYEE MASTER FILE...
  42.  
  43.     GOSUB 745                            REMARK  READ EMPLOYEE RECORD
  44.     IF S(83)=0 OR R2(1)=99 OR S(1)=0 THEN 6070            REMARK  IF INVALID RECORD WAS READ, GET NEXT 
  45.     LINE.COUNT%=LINE.COUNT%+1
  46.     GOSUB 825                            REMARK  CHECK FOR END OF REPORT PAGE
  47.     PRINT USING A$;S(5),S(83)-S(90)                REMARK  PRINT CHECK NUMBER AND NET AMOUNT
  48.     C=C+1                                REMARK  ADD TO TOTAL CHECKS PRINTED
  49.     C1=C1+S(83)-S(90)                        REMARK  ADD TO TOTAL CHECK AMOUNTS
  50. 6070    NEXT X0
  51.     IF C>0 THEN PRINT USING B$;C,C1                    REMARK  PRINT CHECK REGISTER TOTALS
  52. 7000    CONSOLE
  53.     PRINT CLEAR.SCREEN$;"P/R CHECK REGISTER EXITING"        REMARK  EXIT PROGRAM AND LOAD MENU
  54.     CHAIN "P/R000"
  55.