home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 058.lha / LabelPrint < prev    next >
Encoding:
Text File  |  1986-11-20  |  7.0 KB  |  269 lines

  1.  REM ADDR.MASTER
  2.  REM LR RUFFALO - 4/86
  3.  REM -----------------------------------------
  4.  REM Comments and/or critique welcomed.    
  5.                                               
  6.  REM Send to:    Lr Ruffalo
  7.  REM             1350 W. Rincon St. Suite 'A'
  8.  REM             Corona, Ca 91720
  9.  REM -----------------------------------------
  10.  
  11.   CLEAR,75000&
  12.   CLS:OPTION BASE 1:DIM A$(550,6)
  13.  
  14.  ON ERROR GOTO NEWFILE
  15.  
  16.  LOCATE 12,20:PRINT "LOADING DATA, PLEASE WAIT . . . "
  17.  OPEN "I", #1, "DF1:ADDR.DATA"
  18.  WHILE NOT EOF(1)
  19.    F=F+1
  20.    INPUT #1, A$(F,2),A$(F,1),A$(F,3),A$(F,4),A$(F,5),A$(F,6)
  21.  WEND
  22.  CLOSE:ON ERROR GOTO 0
  23.  
  24. START: 
  25.  CLS:R$=""
  26.  PRINT :PRINT:PRINT:PRINT
  27.  PRINT TAB(15)"     ENTER OPTION NUMBER:":PRINT 
  28.  PRINT TAB(15)"      [1] - Enter New Addresses
  29.  PRINT TAB(15)"      [2] - Print Address List
  30.  PRINT TAB(15)"      [3] - Display Address List
  31.  PRINT TAB(15)"      [4] - Edit Address List
  32.  PRINT TAB(15)"      [5] - Search Address List
  33.  PRINT TAB(15)"      [6] - Delete Address(s)
  34.  PRINT TAB(15)"      [7] - Print Labels
  35.  PRINT TAB(15)"      [8] - Re-Sort List
  36.  PRINT TAB(15)"      [9] - End Program
  37.  PRINT:PRINT
  38.    LINE (140,42)-(400,125),1,B 
  39.    LINE (145,45)-(395,122),1,B
  40.  WHILE R$<"1" OR R$>"9"
  41.    R$=INKEY$
  42.  WEND
  43.  CLS
  44.  ON VAL(R$) GOTO ENTER, L.PRINT, DISPLAY, ED.IT, SEARCH
  45.  ON VAL(R$)-5 GOTO D.LETE, LABELS, SORT.FIELD
  46.  IF X=1 THEN SF=2:GOTO RE.SORT
  47.  IF X=2 THEN WRITE.MAST
  48.  END
  49.    
  50. ENTER:
  51.  F=F+1
  52.  CLS: LOCATE 6,20 
  53.  PRINT TAB(20)"FIRST NAME      >                  <"
  54.  PRINT TAB(20)"LAST NAME       >                  <" 
  55.  PRINT TAB(20)"ADDRESS NO. 1   >                  <"
  56.  PRINT TAB(20)"ADDRESS NO. 2   >                  <"
  57.  PRINT TAB(20)"CITY            >                  <"
  58.  PRINT TAB(20)"STATE           >  <"
  59.  PRINT TAB(20)"ZIP CODE        >     <"
  60.  FOR I=1 TO 6
  61.     IF I=1 THEN LOCATE 15,32:PRINT"ENTER 'END' TO EXIT"
  62.     IF I=2 THEN LOCATE 15,32:PRINT"                   "
  63.     LOCATE I+5,37
  64.     INPUT"",A$(F,I)
  65.     A$(F,I)=UCASE$(A$(F,I))
  66.     IF A$(F,1)="END" THEN F=F-1:GOTO START
  67.  NEXT 
  68.     LOCATE 12,37:INPUT"", Z$
  69.     IF Z$="" THEN Z$="     "
  70.     CLS:LOCATE 9,30
  71.     PRINT A$(F,1)" "A$(F,2)
  72.     PRINT TAB(30);A$(F,3)" "A$(F,4)
  73.     PRINT TAB(30);A$(F,5)", "A$(F,6)" "Z$
  74.  LOCATE 15,30:PRINT "1=ACCEPT   2=REJECT"
  75. 20 R$=INKEY$:IF R$="" THEN 20
  76.  IF R$<"1" OR R$>"2" THEN 20  
  77.  IF R$="2" THEN F=F-1:GOTO ENTER
  78.  X=1
  79.  A$(F,6)=A$(F,6)+" "+Z$
  80.  GOTO ENTER
  81.  
  82. L.PRINT:
  83.  P$="\           \ \              \ \                    \"
  84.  P$=P$+"\            \\      \"
  85.  N$="###"
  86.  CLS:LOCATE 12,20:PRINT"ALIGN PAPER AND HIT A KEY TO PRINT"
  87.  WHILE INKEY$="":WEND
  88.  FOR I=1 TO F
  89.   LPRINT USING P$;A$(I,2);A$(I,1);A$(I,3)+" "+A$(I,4);A$(I,5);A$(I,6)
  90.   LPRINT
  91.    P=P+2
  92.    IF P>59 THEN GOSUB PAGE
  93.  NEXT 
  94.  GOTO START
  95.  
  96. PAGE:
  97.  FOR L=1 TO 66-P
  98.    LPRINT
  99.  NEXT 
  100.  P=0:RETURN
  101.  
  102. DISPLAY:
  103.  CLS
  104.  FOR I=1 TO F
  105. 25 IF A$(I,2)="" THEN I=I+1:GOTO 25
  106.    J=J+1
  107.    PRINT
  108.    PRINT TAB(5);I;TAB(10); A$(I,1);" ";A$(I,2)
  109.    PRINT TAB(10);A$(I,3);" ";A$(I,4)
  110.    PRINT TAB(10);A$(I,5);", ";A$(I,6)
  111.       IF J/5=J\5 THEN GOSUB PAUSE
  112.       IF UCASE$(R$)="N" THEN I=F:GOTO START
  113.  NEXT  I
  114.  GOSUB PAUSE
  115.  GOTO START
  116.  
  117. PAUSE:
  118.   J=0
  119.   LOCATE 23,35:PRINT "LIST MORE?     (Y)es  -  (N)o"
  120. 30 R$=INKEY$:IF R$="" THEN 30
  121.    PRINT:RETURN
  122.  
  123. ED.IT:
  124.  N$(1)="FIRST NAME":N$(2)="LAST NAME":N$(3)="ADDR #1":N$(4)="ADDR #2"
  125.  N$(5)="CITY":N$(6)="STATE":N$(7)="ZIP CODE":N$(8)="DONE"
  126. 40 CLS:PRINT :INPUT" ENTER RECORD NUMBER TO EDIT (0) TO END";R
  127.  IF R=0 THEN START
  128.  IF R<=F GOTO CHANGE
  129.  BEEP:PRINT:PRINT:PRINT"  RECORD DOES NOT EXIST"
  130.  FOR I=1 TO 1000:NEXT:GOTO 40
  131.  
  132.     
  133. CHANGE:
  134.  CLS :LOCATE 6
  135.  FOR I= 1 TO 5
  136.    PRINT TAB(10); I" - ";N$(I)": "TAB(30);A$(R,I)
  137.  NEXT 
  138.    PRINT TAB(11);"6  - ";N$(6)": "TAB(30);LEFT$(A$(R,6),2)
  139.    PRINT TAB(11);"7  - ";N$(7)": "TAB(30);RIGHT$(A$(R,6),5)
  140.    PRINT TAB(11);"8  - ";N$(8)": "
  141.    LOCATE 16,10
  142.    PRINT "ENTER ITEM NUMBER FOR CHANGE"
  143. 120 C$=INKEY$:IF VAL(C$)<1 OR VAL(C$)>8 GOTO 120
  144.    IF VAL(C$)=8 GOTO START
  145.    X=1
  146. 125 CLS:LOCATE 6,20:PRINT "ENTER NEW "N$(VAL(C$))
  147.    LOCATE 8,20:INPUT":",T$
  148.    IF VAL(C$)>5 GOTO 130
  149.    A$(R,VAL(C$))=UCASE$(T$): GOTO CHANGE
  150. 130 IF VAL(C$)=7 GOTO 140
  151.    T$=UCASE$(T$)
  152.    MID$(A$(R,6),1,2)=LEFT$(T$,2): GOTO CHANGE
  153. 140 MID$(A$(R,6),4,5)=UCASE$(T$): GOTO CHANGE
  154.  GOTO START
  155.  
  156. SEARCH:
  157.  N$(1)="FIRST NAME":N$(2)="LAST NAME":N$(3)="ADDR #1":N$(4)="ADDR #2"
  158.  N$(5)="CITY":N$(6)="STATE":N$(7)="ZIP CODE":N$(8)="DONE"
  159.  CLS
  160.  FOR I=1 TO 8
  161.    LOCATE 5+I,30:PRINT I" - "N$(I)
  162.  NEXT 
  163.  PRINT:PRINT TAB(25)"ENTER NUMBER OF SEARCH FIELD:"
  164. 145 R$=INKEY$:IF VAL(R$)<1 OR VAL(R$)>8 GOTO 145
  165.  S=VAL(R$):IF S=8 THEN START
  166.  CLS:LOCATE 10,20:PRINT "ENTER "N$(S)" TO SEARCH FOR:"
  167.  LOCATE 10,42+LEN(N$(S)):INPUT "",S$
  168.  S$=UCASE$(S$)
  169.  FOR I=1 TO F
  170.    IF A$(I,S)=S$ THEN GOSUB FOUND
  171.  NEXT I
  172.  BEEP:PRINT "  SEARCH COMPLETE":FOR I=1 TO 2000:NEXT I:GOTO SEARCH
  173.  
  174. FOUND:
  175.   CLS:LOCATE 8,20
  176.   PRINT I;TAB(25);A$(I,1)" "A$(I,2)
  177.   PRINT TAB(25);A$(I,3)" "A$(I,4)
  178.   PRINT TAB(25);A$(I,5)", "A$(I,6)
  179.   PRINT :PRINT :PRINT TAB(25)"HIT ANY KEY TO CONTINUE"
  180.   WHILE INKEY$="":WEND
  181.  RETURN
  182.  
  183. D.LETE:
  184. 150 IF D=0 THEN 170
  185.   CLS:LOCATE 6,20
  186.   PRINT "MORE RECORDS TO DELETE?":LOCATE 8,20:PRINT"(Y)es  - (N)o"
  187. 160 C$=INKEY$:IF C$="" THEN 160
  188.   IF UCASE$(C$)="Y" THEN 170
  189.   IF UCASE$(C$)="N" THEN START
  190.   BEEP:GOTO 160
  191. 170 CLS:LOCATE 6,20:PRINT"ENTER RECORD NUMBER TO DELETE"
  192.    LOCATE 8,34:INPUT":",D
  193.      CLS:LOCATE 8,25:PRINT A$(D,1)" "A$(D,2)
  194.      PRINT TAB(25);A$(D,3)" "A$(D,4)
  195.      PRINT TAB(25);A$(D,5)", "A$(D,6)
  196.      PRINT :PRINT :PRINT TAB(25)"DELETE THIS RECORD? (Y)es  -  (N)o"
  197. 180  R$=INKEY$:IF R$="" GOTO 180
  198.      IF UCASE$(R$)<>"Y" GOTO 150
  199.      FOR I=1 TO 6:A$(D,I)="":NEXT:IF X<>1 THEN X=2:GOTO 150
  200.          
  201. LABELS:
  202.   CLS:LOCATE 12,25:PRINT"ALIGN LABELS AND HIT A KEY TO PRINT"
  203.   WHILE INKEY$="":WEND
  204.  FOR I=1 TO F
  205.    LOCATE 10,40:PRINT F-I
  206.    LPRINT A$(I,1)" "A$(I,2)
  207.    LPRINT A$(I,3)" "A$(I,4)
  208.    LPRINT A$(I,5)", "A$(I,6)
  209.   
  210.    LPRINT:LPRINT:LPRINT
  211.  NEXT 
  212.  GOTO START
  213.  
  214. SORT.FIELD:
  215.  CLS
  216.  PRINT :PRINT:PRINT:PRINT 
  217.  PRINT TAB(15)"     ENTER SORT FIELD:":PRINT:PRINT  
  218.  PRINT TAB(15)"      [1] - First Name
  219.  PRINT TAB(15)"      [2] - Last Name
  220.  PRINT TAB(15)"      [3] - Address No. 1
  221.  PRINT TAB(15)"      [4] - Address No. 2
  222.  PRINT TAB(15)"      [5] - City
  223.  PRINT TAB(15)"      [6] - State & Zip Code
  224.  PRINT:PRINT
  225.  LINE (140,42)-(412,117),1,B 
  226.  LINE (145,45)-(407,114),1,B   
  227. 190 Q$=INKEY$:IF Q$="" THEN 190
  228.  IF Q$<"1" OR Q$>"6" THEN BEEP:GOTO 190
  229. 195 SF=VAL(Q$)
  230.  
  231. RE.SORT:   
  232.    CLS:LOCATE 12,25:PRINT "SORTING, PLEASE WAIT . . . . ."
  233.     I=F:I1=I:X=2
  234. 200 I1 =I1\2
  235.     IF I1=0 THEN WRITE.MAST
  236.     I2=I-I1:I3=1
  237. 210 I4=I3
  238. 220 I5=I4+I1
  239.     I6=I6+1
  240.     IF A$(I4,SF)<=A$(I5,SF) GOTO 230
  241.     FOR J=1 TO 6
  242.       SWAP A$(I4,J),A$(I5,J)
  243.     NEXT J
  244.     I4=I4-I1
  245.     IF I4>=1 THEN 220
  246. 230 I3=I3+1
  247.     IF I3>I2 THEN 200
  248.     GOTO 210
  249.     
  250. NEWFILE:
  251.  IF ERR=53 THEN
  252.    OPEN "O",#1,"DF1:ADDR.DATA"
  253.    CLOSE
  254.    RUN
  255.  END IF
  256.    PRINT "ERROR " ERR
  257.    END
  258.  
  259.  WRITE.MAST:
  260.  IF R$="8" THEN START
  261.  OPEN "O", #1, "DF1:ADDR.DATA"
  262.    FOR J=1 TO F
  263. 300 IF A$(J,2)="" THEN J=J+1:GOTO 300
  264.      WRITE #1,A$(J,2),A$(J,1),A$(J,3),A$(J,4),A$(J,5),A$(J,6)
  265.    NEXT 
  266.  CLOSE
  267.  END
  268.  
  269.