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

  1.         REM NADREPT.BAS   * PROGRAM TO PRINT NAME & ADDRESSES   *
  2.         REM               * 2350
  3.         REM 05 29 83      * J.BUTLER
  4.         REM SYSTEM CONTROL PROGRAM NUMBER    :
  5.  
  6.         REM COMMONS GO HERE
  7.         COMMON CLEAR$,NAME$,LINE$,DEMO$,CRSR$,EOL$,DATE$,ID$,SCRPARA,EOS$
  8.         COMMON ROWOFF,COLOFF,DIO
  9.  
  10.         REM DIMENSIONS GO HERE
  11.         DIM MONTHS$(12),CA$(10)
  12.         REV$="052983"
  13.         BLANK$="                                                        ":ERR=1
  14.         B$="============"
  15.         FOR X=1 TO 11:B9$=B9$+B$:NEXT X
  16.  
  17. 7       REM OPEN PARTICULAR FILE HERE
  18.         ERR=5.1
  19.         IF END #1 THEN 9992
  20.         OPEN "NAD.FIL" RECL 224 AS 1
  21.         GOTO 11
  22.  
  23. 8       REM VERTICAL CURSOR POSITIONING ROUTINE
  24.         FOR ZZ=1 TO VV:PRINT:NEXT ZZ:RETURN
  25.  
  26. 9       REM DATE FORMATTING ROUTINE
  27.         DATE$=MID$(P$,1,2)+"-"+MID$(P$,3,2)+"-"+MID$(P$,5,2)
  28.         RETURN
  29.  
  30. 10      REM CURSOR ADDRESS
  31.         IF SCRPARA=1 THEN \
  32.         PRINT CRSR$;CHR$(ROW+ROWOFF);CHR$(COLUMN+COLOFF);:RETURN
  33.         PRINT CRSR$;CHR$(COLUMN+COLOFF);CHR$(ROW+ROWOFF);:RETURN
  34.  
  35. 11      REM START-END ROUTINE HERE
  36.         PRINT CLEAR$:PRINT TAB(40-LEN(NAME$)/2);NAME$
  37.         PRINT TAB(40-LEN(NAME$)/2);LINE$
  38.         PRINT TAB(2);"NAME & ADDRESS REPORT";TAB(62);"DATE:";DATE$:VV=7:GOSUB 8
  39.         PRINT TAB(25);"STARTING RECORD NO:";:INPUT "";LINE START$
  40.         IF START$="END" OR START$="STOP" THEN 9990
  41.         IF LEN(START$)=0 OR START$="1" THEN START$="2"
  42.         IF VAL(START$)=0 THEN 11
  43.         PRINT:START=VAL(START$)
  44.         IF VAL(START$)<>INT(VAL(START$)) THEN 11
  45.         PRINT TAB(25);"ENDING   RECORD NO:";:INPUT "";LINE RECEND$
  46.         IF ONCE=1 THEN RECEND$=STR$(RECEND):GOTO 11.5
  47.         IF LEN(RECEND$)=0 THEN GOSUB 13:ONCE=1
  48.  
  49. 11.5    PRINT:RECEND=VAL(RECEND$)
  50.         IF VAL(RECEND$)<>INT(VAL(RECEND$)) THEN 11
  51.  
  52. 12      COLUMN=14:ROW=21:GOSUB 10:PRINT EOS$;
  53.         PRINT "DEPRESS 'RETURN' WHEN PRINTER IS READY";:Y%=CONCHAR%
  54.         GOTO 15
  55.  
  56. 13      RECEND%=0
  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
  69.         TEMP=LEN(CA$(1)+CA$(2)+CA$(3)+CA$(4)+CA$(5)+CA$(6))
  70.         IF TEMP<1 THEN 50
  71.         GOTO 60
  72.  
  73. 50      REC1=REC1+1
  74.         IF REC1>RECEND THEN 200
  75.         GOTO 20
  76.  
  77. 60      IF M1>0 THEN 100
  78.         GOSUB 500
  79.  
  80. 100     REM PRINT ONE LINE ON SHEET
  81.         IF M1>=55 THEN PRINT CHR$(12):GOSUB 500:M1=0
  82.         PRINT USING " #### ";REC1-1;:PRINT CA$(1);TAB(36);CA$(2);TAB(67);
  83.         PRINT CA$(3);TAB(98);CA$(4);TAB(119);CA$(5);" ";CA$(6)
  84.         PRINT TAB(8);CA$(7);TAB(21);CA$(8);TAB(59);CA$(9);TAB(89);CA$(10)
  85. REM     SUBTOTAL=SUBTOTAL + ....
  86.         PRINT B9$:M1=M1+3:GOTO 50
  87.  
  88. 200     GOSUB 700:PRINT CHR$(12):CONSOLE:GOTO 11
  89.  
  90. 500     REM PRINT HEADING INFO
  91.         PRINT TAB(66-LEN(NAME$)/2);NAME$
  92.         PRINT TAB(66-LEN(NAME$)/2);LINE$
  93.         PRINT TAB(9);"REV";REV$;TAB(116);"DATE:";DATE$:PRINT
  94.         PRINT " RECD";TAB(18);"NAME";TAB(46);"ADDRESS 1";TAB(77);"ADDRESS 2";
  95.         PRINT TAB(105);"CITY";TAB(119);"ST";TAB(125);"ZIP"
  96.         PRINT TAB(6);"STARTUP DATE";TAB(26);"COMPANY REPRESENTING";TAB(61);
  97.         PRINT "TELEPHONE";TAB(97);"MISCELLANEOUS":PRINT
  98.         M1=7:RETURN
  99.  
  100. 600     REM SUBTOTAL ROUTINE
  101.         IF SUBTOTAL=0 THEN RETURN
  102.         PRINT TAB(114);"SUBTOTAL";:PRINT USING S4$;ABS(SUBTOTAL)
  103.         PRINT:PRINT:GRANDTOTAL=GRANDTOTAL+SUBTOTAL:M1=M1+5
  104.         SUBTOTAL=0:RETURN
  105.  
  106. 700     IF GRANDTOTAL=0 THEN RETURN
  107.         PRINT:PRINT TAB(114);"GRANDTOTAL: ";
  108.         PRINT USING S4$;ABS(GRANDTOTAL):GRANDTOTAL=0:RETURN
  109.  
  110. 1000    ERR=5.2
  111.         IF END #1 THEN 6000
  112.  
  113. 1001    READ #1,REC1;CA$(1),CA$(2),CA$(3),CA$(4),CA$(5),CA$(6),CA$(7), \
  114.                 CA$(8),CA$(9),CA$(10) 
  115.         RETURN
  116.  
  117. 6000    PRINT CHR$(12):CONSOLE:COLUMN=2:ROW=22:GOSUB 10
  118.         PRINT EOL$;"RECORD #";REC1;" HAS NOT BEEN ESTABLISHED";CHR$(7);
  119.         FOR X=1 TO 500:NEXT X
  120.         GOSUB 10:PRINT EOL$;:GOTO 12
  121.  
  122. 8802    ROW=ROW-1:GOSUB 10:PRINT EOS$:RETURN
  123.  
  124. 9990    CLOSE 1
  125.         PRINT LOW$;CLEAR$:CHAIN "NADMENU"
  126.  
  127. 9992    FOR X=1 TO 24:PRINT:NEXT X
  128.         PRINT TAB(20);"ACCESS NOT PERMITTED! SEE YOUR SYSTEM SUPERVISOR..";ERR;
  129.         Y%=CONCHAR%
  130.         IF Y%=5EH THEN 9999
  131.         GOTO 9992
  132.  
  133. 9999    PRINT LOW$;CLEAR$
  134.         STOP
  135.