10 Rem Copyright 1981 by David E. Trachtenbarg 11 Dim Today$(5),Last'edited$(5),Last'sorted$(5) 12 Dim Edit'file$(13),Data'file$(13),Sort'file$(13) 30 Dim File$(73),Name$(34) 40 Endcommon 45 If Today$="" Then Run"date.sav" 50 Dim Sort'key$(39) 60 Dim Command$(10),Command2$(35),Name2$(34),Today$(5),Last'zip$(5) 70 Integer I,J,K,Item,To'printer,Zips,Row,Page,Print'item(3) 80 Set 0,-1 90 On Esc Goto Main'menu 150 On Error Gosub Create'file 160 Kopen\1\Data'file$ 170 On Error Stop 180 Kclose\1\ 190 @ Chr$(7) 200 *Print'options 210 Gosub Screen'erase 220 @"*******" : @ 230 @" PRINTER OPTIONS" : @ 240 @"1. Print mailing labels by zip code." 250 @"2. Print mailing labels alphabetically" 260 @"3. Print alphabetical membership list" 270 @"4. Print all membership information alphabetically" 280 @"5. Sort by zip code."; 290 @" Last sorted - ";Last'sorted$(0,1);"/";Last'sorted$(2,3);"/";Last'sorted$(4,5) 300 @"6. Set people to print now: "; 310 If Print'item(0)=0 Then @"(Non-members)"; 320 If Print'item(1)=0 Then @"(Members)"; 330 If Print'item(2)=0 Then @"(Institutions)"; 340 @ 350 @"7. Goto main index." 360 @ : Input" Type the number or your choice or RETURN to go on. ",Command2$ 370 Item=Asc(Command2$) : If Item=0 Then Goto Print'options 380 If Item>48 And Item<53 Then Do 390 To'printer=0 400 @ : Input" Type 'P' to send to the printer. ",Command2$ 410 Gosub Capitalize 420 If Command2$="P" Then To'printer=1 430 Enddo 440 On Item-48 Goto Print'by'zip,Printer,Membership,Printer,Zip'sort,Set'print'items,Main'menu 450 Goto Print'options 460 *Set'print'items 470 Gosub Screen'erase 480 Local I 490 @"1. Non-members "; 500 If Print'item(0)=0 Then Do : @"YES" : Else : @"NO" : Enddo 510 @"2. Members "; 520 If Print'item(1)=0 Then Do : @"YES" : Else : @"NO" : Enddo 530 @"3. Institutions "; 540 If Print'item(2)=0 Then Do : @"YES" : Else : @"NO" : Enddo 545 @ : @"Enter a number to change an item, press RETURN for the index. "; 550 Input"",Command2$ 560 If Command2$="" Then Goto Print'options 561 I=Val(Command2$)-1 570 If I<0 Or I>2 Then Goto Set'print'items 580 If Print'item(I)=0 Then Do 581 Print'item(I)=1 582 Else 583 Print'item(I)=0 584 Enddo 585 Goto Set'print'items 590 *Record 600 Gosub Screen'erase 610 @ : @" 1. Name: ";Name$(0,14);", ";Name$(15,34) 620 @" 2. Street: ";File$(0,23) 630 @" 3. City: ";File$(24,43) 640 @" 4. State: ";File$(44,45) 650 @" 5. Zip: ";File$(46,50) 660 @" 6. Area Code: ";File$(51,53) 670 @" 7. Phone: ";File$(54,56);"-";File$(57,60) 680 @" 8. Date Joined: ";File$(61,62);"/";File$(63,64) 690 @" 9. Date Entered: ";File$(65,66);"/";File$(67,68);"/";File$(69,70) 700 @"10. Congressional District: ";File$(71,72) 710 @"11. Status: "; 720 If File$(73,73)="0" Then @"NON-MEMBER" 730 If File$(73,73)="1" Then @"MEMBER" 740 If File$(73,73)="2" Then @"INSTITUTION" 750 If File$(73,73)="" Then @"??????" 760 @ : @ 770 Return 780 *Screen'erase 790 Out 1,126 : Out 1,28 : Return 800 *Bottom'lines 810 Out 1,126 : Out 1,17 : Out 1,0 : Out 1,22 820 Out 1,126 : Out 1,24 : Return 830 *Error1 840 Close 850 Gosub Bottom'lines 860 @"Error No. ";Sys(3);" has occured." 870 Input"Press RETURN to go on. ",Command2$ 880 Goto Print'options 890 *Create'file 900 Kcreate\74,35\Data'file$ 910 Retry 920 *Printer 930 I=0 : If To'printer Then @ Chr$(23); 940 Kopen\1\Data'file$ 950 On Esc Goto Escape 960 On Error Goto 1050 970 Kgetfwd\1\File$(-1) 980 Kretrieve\1\Name$(-1) 1000 If File$(73,73)<>"" And Print'item(Val(File$(73,73)))=0 Then Do 1010 On Item-49 Gosub Label,Line,Record 1020 Enddo 1040 Goto 970 1050 Close 1060 @ Chr$(20); 1070 On Esc Stop 1080 Goto Print'options 1090 *Label 1100 If Item=49 Then Gosub Zip'number 1130 If Name$(15,15)="*" Then @"MR. & MRS."; : Name$(15,15)=" " 1140 @ Name$(15,34);" ";Name$(0,14) 1150 @ File$(0,23) 1160 @ File$(24,43);",";File$(44,45);" ";File$(46,50) 1170 @ 1171 @ 1172 @ 1180 Return 1190 *Zip'number 1200 If Last'zip$=File$(46,50) Then Zips=Zips+1 : Return 1210 If Zips<10 Then Zips=1 : Last'zip$=File$(46,50) : Return 1240 @"Number of ";Last'zip$;" zip codes = ";Zips 1250 @ 1260 @ 1270 @ 1271 @ 1280 Zips=1 1290 Last'zip$=File$(46,50) 1300 Return 1310 *Zip'sort 1320 @ : @"Preparing to sort by zip code........" 1330 Open\1,6\Edit'file$ 1340 Put\1,2\"??????" 1350 Close\1\ 1360 Run"ZIPSORT.SAV" 1370 *Print'by'zip 1380 Zips=0 1390 Last'zip$(-1)="" 1400 @ : @"Printing labels sorted by zip code...." 1410 On Esc Goto Escape 1420 Kopen\1\Data'file$ 1430 On Error Goto Error1 1440 Kopen\2\Sort'file$ 1450 On Error Goto 1560 1460 If To'printer Then @ Chr$(23) 1470 Kgetfwd\2\ 1480 Kretrieve\2\Sort'key$(-1) 1490 Name$=Sort'key$(5,39) 1510 Kgetkey\1,Name$(-1)\File$(-1) 1520 If File$(73,73)<>"" And Print'item(Val(File$(73,73)))=0 Then Do 1530 Gosub Label 1540 Enddo 1550 Goto 1470 1560 Close 1570 @ Chr$(20); 1580 On Esc Stop 1590 Goto Print'options 1600 *Capitalize 1610 K=Len(Command2$) 1620 For I=0 To K 1630 J=Asc(Command2$(I,I)) 1640 If J>96 And J<123 Then Command2$(I,I)=Chr$(J-32) 1650 Next I 1660 Return 1670 *Escape 1680 Close 1690 @ Chr$(20); 1700 On Esc Goto Main'menu 1710 Goto Print'options 1720 *Main'menu 1730 Close 1740 Run"MMENU.SAV" 1750 *Membership 1760 Page=1 1770 If To'printer Then @ Chr$(23); 1780 @ : @ : @"Mailing List on ";Today$(0,1);"/";Today$(2,3);"/";Today$(4,5) : @ : @ 1790 @ Chr$(20); 1800 Row=7 1810 Kopen\1\Data'file$ 1820 On Esc Goto Escape 1830 On Error Goto 1920 1840 Kgetfwd\1\File$(-1) 1850 Kretrieve\1\Name$(-1) 1860 If File$(73,73)<>"" Then Do 1870 If Print'item(Val(File$(73,73)))=0 Then Call .Line 1880 Else 1890 Gosub Ok 1900 Enddo 1910 Goto 1840 1920 Close 1930 On Esc Stop 1940 Goto Print'options 1950 Procedure .Line 1960 Begincommon 1961 Dim Files$(59) 1970 Dim Address$(23),City$(19),State$(1),Zip$(4),Area$(2),Phone$(6) 1980 Dim Dates$(11),Member$(0),Last$(14),First$(19) 1990 Endcommon 2000 Set 0,-1 2010 Set 4,0 2020 Row=Row+1 2030 If To'printer Then @ Chr$(23); 2040 @ Last$;", "; 2050 If First$(0,0)="*" Then @"MR. & MRS."; : First$(0,0)=" " 2060 @ First$;Tab(37);Address$;" ";City$;", "; 2070 @ State$;" ";Zip$;Tab(85); 2080 If Area$="" Then @" ";" "; 2090 If Area$<>"" Then @ Area$;" "; 2100 If Phone$="" Then @" ";"-" 2110 If Phone$<>"" Then @ Phone$(0,2);"-";Phone$(3,6) 2120 If Row=60 Then @ : @ : @ : @ : @ : @ : @ : @ : @ : @ : @ : @ : Row=6 2130 @ Chr$(20); 2140 Endproc 2150 *Ok 2160 @ : @"Print ";Name$(0,14);", ";Name$(15,34);" ";"(Y/N)? "; 2170 Open\2\"$SY" 2180 Get\2\Command$(0,0) 2190 Close\2\ 2200 Gosub Capitalize 2210 If Asc(Command$(0,0))=27 Then Goto Escape 2220 @ Command$ 2230 If Command$(0,0)="N" Then Return 2240 If Command$(0,0)="Y" Then Call .Line : Return 2250 Goto Ok