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

  1.     REMARK    **********************************************\
  2.         *  P/R120.BAS  PAYROLL DEDUCTION FILE PRINT  *\
  3.         *    5/16/79             3:38 PM     *\
  4.         **********************************************
  5.  
  6.     DIM G2$(5),G3(5)
  7. %INCLUDE CURSOR
  8.     GOTO 6000
  9. %INCLUDE SUBS1
  10. %INCLUDE GENINFO
  11.  
  12.                                     REMARK  ****  LINE PRINTER ROUTINE  ****
  13. 825    A1=65                                REMARK  SET CARRIAGE WIDTH
  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  TR  TC  FREQ  DESCRIPTION     RATE    AMOUNT"
  23.     PRINT
  24.     LINE.COUNT%=6                            REMARK  RESET LINE COUNTER FOR NEW REPORT PAGE
  25. RETURN 
  26. 6000    MASKA$="   ######   #   #   ##   /123456789/    ##.##   ####.##"
  27.  
  28.     PRINT CLEAR.SCREEN$;"PAYROLL DEDUCTION PRINT"
  29.     PRINT "(ENTER START EMPLOYEE NUMBER OF ZERO TO EXIT)"
  30.     PRINT:PRINT
  31.     PRINT"START EMPLOYEE NUMBER"
  32.     PRINT"END EMPLOYEE NUMBER"
  33.     X1=279:X2=3:X3=0:X4=999:GOSUB 345                REMARK  ENTER START EMPLOYEE NUMBER
  34.     IF X0=0 THEN GOTO 6135                        REMARK  END PROGRAM IF START EMPLOYEE NUMBER IS ZERO
  35.     E1=X0
  36.     X1=343:X2=3:X3=E1:X4=999:GOSUB 345                REMARK  ENTER ENDING EMPLOYEE NUMBER
  37.     E2=X0
  38.     X2$="ENTRY CORRECT?":X2=1:X3=0:X4=1:GOSUB 665            REMARK  VERIFY ENTRY:  '1'=O.K., '0'=RETRY
  39.     IF X0 <> 1 THEN GOTO 6000
  40.     Y9=2:OPEN "G/I0F010.DAT" RECL 200 AS Y9                REMARK  OPEN AND READ GENERAL INFORMATION FILE
  41.     GOSUB 700
  42.     Y3=1:OPEN "P/R0F030.DAT" RECL 38 AS Y3 BUFF 30 RECS 128        REMARK  OPEN PAYROLL DEDUCTION FILE
  43.     X4$="P/R DEDUCTION FILE"
  44.     LPRINTER                            REMARK  SELECT PRINTER AS OUTPUT DEVICE
  45.     LINE.COUNT%=60:GOSUB 825                    REMARK  SKIP TO NEW PAGE AND PRINT HEADINGS
  46.     IF END #Y3 THEN 6135                        REMARK  SET END-OF-FILE BRANCH CONDITION
  47. 6070    READ #Y3;D1,D2,D3,D4,D1$,D5,D6
  48.     IF D1 < E1 OR D1 > E2 THEN GOTO 6070                REMARK  IF EMPLOYEE NUMBER IS BELOW RANGE, GET NEXT
  49.     IF D1 > E2 THEN GOTO 6135                    REMARK  IF EMPLOYEE NUMBER IS PAST RANGE, EXIT ROUTINE
  50.  
  51.     GOSUB 825                            REMARK  CHECK FOR END OF PAGE
  52.  
  53.     PRINT USING MASKA$;D1,D2,D3,D4,D1$,D5,D6;            REMARK  PRINT DEDUCTION FILE FIELDS
  54.  
  55. 6090    IF D4>9 THEN 6130                        REMARK  IF ACTIVE DEDUCTION, PRINT ASTERISKS TO RIGHT
  56.     IF D4<3 THEN 6125
  57.     IF D4<5 THEN 6130
  58.     IF D4=5 AND G3(4)=1 THEN GOTO 6125
  59.     IF G3(4)=2 THEN GOTO 6125
  60.     GOTO 6130
  61. 6125    PRINT " *****";
  62. 6130    PRINT
  63.     LINE.COUNT%=LINE.COUNT% + 1
  64.     GOTO 6070
  65. 6135    CONSOLE                                REMARK  END OF PROCESSING; LOAD MENU
  66.     PRINT CLEAR.SCREEN$;"P/R DEDUCTION PRINT LOADING MENU"
  67.     CHAIN "P/R000"
  68.