home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol163 / gnreport.bas < prev    next >
Encoding:
BASIC Source File  |  1984-04-29  |  3.1 KB  |  120 lines

  1.     REM GNREPORT.BAS * PROGRAM
  2.     REM              *
  3.     REM 11 23 82     * J.BUTLER
  4.     REM SYSTEM CONTROL PROGRAM NUMBER :
  5.     REM FILES UNDER 'DBFM' CONTROL    :
  6.  
  7.     REM COMMONS GO HERE
  8.     COMMON CLEAR$,NAME$,LINE$,DEMO$,CRSR$,FOCUS$,HIGH$,LOW$,PASSWORD$, \
  9.            DATE$,EOL$,CLRFORE$,ROWOFF,COLOFF,SCRPARA,CONT
  10.     
  11.     REM ADD HARD SCREEN FUNCTIONS HERE IF NECESSARY
  12.  
  13.     REM DIMENSIONS GO HERE
  14.     DIM MONTHS$(12),MASK$(10)
  15.  
  16.     MONTHS$(1)="JANUARY":MONTHS$(2)="FEBRUARY":MONTHS$(3)="MARCH"
  17.     MONTHS$(4)="APRIL":MONTHS$(5)="MAY":MONTHS$(6)="JUNE"
  18.     MONTHS$(7)="JULY":MONTHS$(8)="AUGUST":MONTHS$(9)="SEPTEMBER"
  19.     MONTHS$(10)="OCTOBER":MONTHS$(11)="NOVEMBER":MONTHS$(12)="DECEMBER"
  20.  
  21.     BLANK$="                             ":SCNO$="":ERR=5
  22.  
  23.  
  24. 7       REM OPEN PARTICULAR FILE HERE
  25.  
  26.         GOTO 11
  27.  
  28. 8       REM VERTICAL CURSOR POSITIONING ROUTINE
  29.         FOR ZZ=1 TO VV:PRINT:NEXT ZZ:RETURN
  30.  
  31. 9       REM DATE FORMATTING ROUTINE
  32.         DATE$=MID$(P$,1,2)+"-"+MID$(P$,3,2)+"-"+MID$(P$,5,2)
  33.         RETURN
  34.  
  35. 10      REM CURSOR ADDRESS
  36.         IF SCRPARA=1 THEN \
  37.            PRINT CRSR$;CHR$(ROW+ROWOFF);CHR$(COLUMN+COLOFF);:RETURN
  38.         PRINT CRSR$;CHR$(COLUMN+COLOFF);CHR$(ROW+ROWOFF);:RETURN
  39.  
  40. 11      REM START-END ROUTINE HERE
  41.     PRINT CLEAR$:VV=7:GOSUB 8
  42.     PRINT TAB(25);"STARTING RECORD NO:";:INPUT "";LINE START$
  43.     IF START$="END" OR START$="STOP" THEN 9990
  44.     IF LEN(START$)=0 OR START$="1" THEN START$="2"
  45.     IF VAL(START$)=0 THEN 11
  46.     PRINT:START=VAL(START$)
  47.     IF VAL(START$)<>INT(VAL(START$)) THEN 11
  48.     PRINT TAB(25);"ENDING   RECORD NO:";:INPUT "";LINE RECEND$
  49.     IF LEN(RECEND$)=0 THEN GOSUB 13
  50.     PRINT:RECEND=VAL(RECEND$)
  51.     IF VAL(RECEND$)<>INT(VAL(RECEND$)) THEN 11
  52.     COLUMN=4:ROW=22:GOSUB 10
  53.     PRINT "DEPRESS 'RETURN' WHEN PRINTER IS READY";:Y%=CONCHAR%
  54.     GOTO 15
  55.  
  56. 13    RECEND%=5000
  57.     IF END #1 THEN 14
  58.     FOR F%=14 TO 1 STEP-1
  59.     READ #1,2^F%+RECEND%;LINE X$
  60.     RECEND%=RECEND%+2^F%
  61.  
  62. 14    NEXT F%
  63.     RECEND$=STR$(RECEND%):RETURN
  64.  
  65. 15    REM PRINT GENERATION HERE
  66.     K1=1:M1=0:REC1=START:SUBTOTAL=0:GRANDTOTAL=0:LPRINTER
  67.  
  68. 20    GOSUB 1000:GOTO 60
  69.  
  70. 50    REC1=REC1+1:GOTO 20
  71.  
  72. 60    IF M1>0 THEN 100
  73.     GOSUB 500
  74.  
  75. 100    REM PRINT ONE LINE ON SHEET
  76.     IF M1>=55 THEN PRINT CHR$(12):GOSUB 500:M1=0
  77.     PRINT TAB(3);PRINT USING "##";VAL(STR$(A1$))
  78. REM    SUBTOTAL=SUBTOTAL + ....
  79.     M1=M1+1:GOTO 50
  80.  
  81. 200    GOSUB 700:PRINT CHR$(12):CONSOLE:GOTO 11
  82.  
  83. 500    REM PRINT HEADING INFO
  84.     PRINT TAB(40-LEN(COMPANY$)/2);COMPANY$
  85.     PRINT TAB(40-LEN(COMPANY$)/2));LINE$:PRINT TAB(110);DATE$
  86.     M1=12:RETURN
  87.  
  88. 600    REM SUBTOTAL ROUTINE
  89.     IF SUBTOTAL=0 THEN RETURN
  90.     PRINT TAB(114);"SUBTOTAL";:PRINT USING S4$;ABS(SUBTOTAL)
  91.     PRINT:PRINT:GRANDTOTAL=GRANDTOTAL+SUBTOTAL:M1=M1+5
  92.     SUBTOTAL=0:RETURN
  93.  
  94. 700    IF GRANDTOTAL=0 THEN RETURN
  95.     PRINT:PRINT TAB(114);"GRANDTOTAL: ";
  96.     PRINT USING S4$;ABS(GRANDTOTAL):GRANDTOTAL=0:RETURN
  97.  
  98. 1000    IF END #1 THEN 6000
  99.  
  100. 1001    READ #1,REC1;A1$
  101.     RETURN
  102.  
  103. 6000    COLUMN=2:ROW=22:GOSUB 10
  104.     PRINT EOL$;"RECORD #";REC1; \
  105.     " HAS NOT BEEN ESTABLISHED FOR ";DATAFIL$;CHR$(7);
  106.      FOR X=1 TO 500:NEXT X
  107.     GOSUB 10:PRINT EOL$;:GOTO 15
  108.  
  109. 9990    CLOSE 1
  110.         PRINT LOW$;CLEAR$:STOP
  111.  
  112. 9992    FOR X=1 TO 24:PRINT:NEXT X
  113.         PRINT TAB(20);"ACCESS NOT PERMITTED! SEE YOUR SYSTEM SUPERVISOR..";ERR;
  114.         Y%=CONCHAR%
  115.         IF Y%=5EH THEN 9999
  116.         GOTO 9992
  117.  
  118. 9999    PRINT LOW$;CLEAR$
  119.         STOP
  120.