REM GNSCREEN.BAS * PROGRAM REM * REM 11 23 82 * J.BUTLER REM SYSTEM CONTROL PROGRAM NUMBER : REM FILES UNDER 'DBFM' CONTROL : REM COMMONS GO HERE COMMON CLEAR$,NAME$,LINE$,DEMO$,CRSR$,FOCUS$,HIGH$,LOW$,PASSWORD$, \ DATE$,EOL$,CLRFORE$,ROWOFF,COLOFF,SCRPARA,CONT REM ADD HARD SCREEN FUNCTIONS HERE IF NECESSARY REM DIMENSIONS GO HERE DIM MONTHS$(12),MASK$(10) MONTHS$(1)="JANUARY":MONTHS$(2)="FEBRUARY":MONTHS$(3)="MARCH" MONTHS$(4)="APRIL":MONTHS$(5)="MAY":MONTHS$(6)="JUNE" MONTHS$(7)="JULY":MONTHS$(8)="AUGUST":MONTHS$(9)="SEPTEMBER" MONTHS$(10)="OCTOBER":MONTHS$(11)="NOVEMBER":MONTHS$(12)="DECEMBER" BLANK$=" ":SCNO$="":ERR=5 7 REM OPEN PARTICULAR FILE HERE GOTO 11 8 REM VERTICAL CURSOR POSITIONING ROUTINE FOR ZZ=1 TO VV:PRINT:NEXT ZZ:RETURN 9 REM DATE FORMATTING ROUTINE DATE$=MID$(P$,1,2)+"-"+MID$(P$,3,2)+"-"+MID$(P$,5,2) RETURN 10 REM CURSOR ADDRESS IF SCRPARA=1 THEN \ PRINT CRSR$;CHR$(ROW+ROWOFF);CHR$(COLUMN+COLOFF);:RETURN PRINT CRSR$;CHR$(COLUMN+COLOFF);CHR$(ROW+ROWOFF);:RETURN 15 REM SCREEN GENERATION HERE PRINT CLEAR$ PRINT TAB(40-LEN(COMPANY$)/2);COMPANY$ PRINT TAB(40-LEN(COMPANY$)/2);LINE$:PRINT TAB(62);"DATE:";DATE$ REM PUT YOUR SCREEN HERE IF SECOND=1 THEN SECOND=0:RETURN 20 PRINT HIGH$;CLRFORE$;:HOLD$=STR$(REC1) IF CHANGE$="C" THEN HOLD$=STR$(REC1-1) COLUMN=13:ROW=3:GOSUB 10:INPUT "";LINE RECORD$ IF RECORD$="STOP" OR RECORD$="END" THEN 9990 REC1=VAL(RECORD$) IF RECORD$="" THEN REC1=VAL(HOLD$)+1 25 PRINT CLRFORE$ COLUMN=13:ROW=3:GOSUB 10:PRINT REC1 GOSUB 1000:GOSUB 60 30 PRINT LOW$;:COLUMN=11:ROW=22:GOSUB 10 PRINT "IS THIS DATA CORRECT :";:INPUT "";LINE DATA$ GOSUB 10:PRINT EOL$; IF DATA$="" OR LEFT$(DATA$,1)="Y" THEN 15 40 REM ERROR CHECKING STATEMENT HERE RECUR$="":COLUMN=11:ROW=22:GOSUB 10 PRINT EOL$;"'S'TOP, 'D'ELETE, 'R'ECUR @, FIELD # :"; INPUT "";LINE CHANGE$ IF LEFT$(CHANGE$,1)="S" THEN GOSUB 2001:GOTO 9990 IF CHANGE$="" THEN GOSUB 2001:SECOND=1:GOSUB 15:GOTO 20 IF CHANGE$="D" THEN 8900 IF MID$(CHANGE$,1,1)="R" THEN RECUR$="R" \ :CHANGE$=MID$(CHANGE$,2,LEN(CHANGE$)-1) IF VAL(CHANGE$)=0 THEN 15 REM CHANGE THE NEXT NUMBER AS TO HOW MANY FIELDS ON SCREEN NUM=2 50 IF VAL(CHANGE$)<29 OR VAL(CHANGE$)>NUM THEN 40 REM ADD TO THE ROUTINE AS TO HOW MANY FIELDS ON SCREEN ON VAL(CHANGE$) GOSUB 7010,7020,..................... GOSUB 2001 IF RECUR$="R" AND VAL(CHANGE$)<=NUM THEN \ CHANGE$=STR$(VAL(CHANGE$)+1):GOTO 50 SECOND=1:GOSUB 15:GOTO 25 60 REM SCREEN PRINT HERE COLUMN=70:ROW=3:GOSUB 10:P$=G2$:GOSUB 9:PRINT DATE$ REM PUT YOUR ROW, COLUMN, AND PARTICULAR FIELDS TO DISPLAY, HERE RETURN 1000 IF END #1 THEN 6000 1001 REM CHANGE THIS AS TO HOW MANY FIELDS THERE ARE IN THE FILE READ #1,REC1;A1$ RETURN 2001 REM CHANGE THIS AS TO HOW MANY FIELDS THERE ARE IN THE FILE PRINT #1,REC1;A1$ RETURN 6000 COLUMN=2:ROW=22:GOSUB 10 PRINT EOL$;"RECORD #";REC1; \ " HAS NOT BEEN ESTABLISHED FOR ";DATAFIL$;CHR$(7); FOR X=1 TO 500:NEXT X GOSUB 10:PRINT EOL$;:GOTO 15 7010 REM SCREEN INPUT FUNCTIONS HERE SPC%=13:COLUMN=32:ROW=5:GOSUB 10:INPUT "";LINE A1$ IF LEN(A1$)>SPC%-1 THEN PRINT CHR$(7):GOTO 7010 RETURN REM ADD MORE STATEMENTS IF NECESSARY, FOR SCREEN INPUT, HERE 8900 REM DELETE RECORD FUNCTION HERE REM CHANGE THIS ACCORDING TO HOW MANY FIELDS THERE ARE IN THE FILE PRINT #1,REC1;"" GOTO 15 9990 CLOSE 1 PRINT LOW$;CLEAR$:STOP 9992 FOR X=1 TO 24:PRINT:NEXT X PRINT TAB(20);"ACCESS NOT PERMITTED! SEE YOUR SYSTEM SUPERVISOR..";ERR; Y%=CONCHAR% IF Y%=5EH THEN 9999 GOTO 9992 9999 PRINT LOW$;CLEAR$ STOP