Listing of file='SAC103AA' on disk='vmedia/701-2003.wvd.zip'
# Sector 371, program filename = 'SAC103AA' 0010 REM PROGRAM NAME = SAC103AA 0020 REM SYSTEM NAME = BAS1A 0030 REM PROGRAM FUNCTION = CUSTOMER INQUIRY/LIST 0040 REM MODULE NAME = MAIN 0050 REM THIS PROGRAM IS A PART OF A GENERALIZED APPLICATION 0060 REM SYSTEM COPYRIGHT, WANG LABS., INC. 1975 0070 REM DATE WRITTEN = 10/73 0080 REM REVISION DATE = 5/74 0090 REM REVISION DATE = MM/YY 0100 REM CURRENT WANG LIBRARY # = 0110 REM THIS PROGRAM GIVES AN INQUIRY/LIST OF A CUSTOMER RECORD 0120 REM A. FILES USED = CUSTOMER MASTER FILE 0130 REM B. FUNCTIONS PERFORMED = DISPLAYS AN INQUIRY/LIST,PRINTS OUT LIST 0140 REM 0150 REM FLOWCHART PAGE 1 BEGINS HERE 0160 DIM R$2,C$5,N$18,T(12),L(12) 0170 DIM C2$5,C3$5,C4$5,T5$ 0180 REM C2$=CURRENT,C3$=LAST,C4$=ENDING 0190 SELECT PRINT 005 0200 PRINT HEX(03) 0210 GOTO 580 0220 REM GET CUSTOMER FROM FILE 0230 REM B=0 BLOCK COUNT CHECK TO SEE IF FILE IS OPEN 0240 REM 0250 IF B=0 THEN 290 0260 C3$=C$ 0270 GOTO 340 0280 REM 0290 B=1 0300 REM OPEN FILE UTILITY-GOSUB'250 0310 REM 0320 GOSUB '250 (2,"SAC1F010",1) 0330 REM 0340 DATA LOAD DC #2,R$,C$,N$,S,T(),L() 0350 REM TEST FOR TYPE OF RECORD 0360 IF R$="A3" THEN 420 0370 B=B+1 0380 C3$=C$ 0390 RETURN 0400 REM CLOSE FILE UTILITY 0410 REM 0420 GOSUB '251(2) 0430 REM TEST TO SEE IF A3 IS EOF OR EOR 0440 IF Q5$="F" THEN 510 0450 REM OPEN NEXT VOL. 0460 B=1 0470 GOTO 340 0480 REM EOF ERROR MESSAGE DISPLAQ 0490 REM POSITION CURSOR UTILITY-GOSUB'248 0500 REM 0510 GOSUB '248(3,0,1) 0520 PRINT "FILE SAC1F010 IS MISSING NORMAL ENDING FORMAT, RECREATE FILE P ROPERLY." 0530 STOP "END OF PROGRAM" 0540 REM PAGE 1 OF FLOWCHART - 1B1 = FLOWCHART REFERENCE 0550 REM INITIALIZE COUNTERS SET UP DEFAULT CONDITIONS. 0560 REM END CUST =^^^^^,NO. OF RECORDS TO BE LISTED =99E99 0570 REM 0580 C4$="^^^^^" 0590 R=9.9E99 0600 L1 = 60 0610 P =1 0620 T5,L5=0 0630 REM TYPE OF LISTINGS 0640 REM 0650 GOSUB '243("ENTER 'A' - ALL,'T'-TOTALS,'R'-RANGE,'N'-NUMBER,'I'-INDIV IDUAL",1) 0660 REM CHECK FOR VALID CODE 0670 T5$=Q6$ 0680 IF Q6$="A" THEN 1370 0690 IF Q6$="T" THEN 3570 0700 IF Q6$="N" THEN 790 0710 IF Q6$="R" THEN 1240 0720 IF Q6$="I" THEN 1370 0730 REM INVALID CODE 0740 GOSUB '248(3,0,1) 0750 PRINT "ERROR - RE-ENTER" 0760 GOTO 650 0770 REM INQUIRY - NO. OF CUSTOMERS OPTION 0780 REM 0790 GOSUB '245 ("NUMBER OF CUSTOMERS TO BE LISTED",8,0) 0800 IF Q9<=0 THEN 840 0810 R=INT(Q9) 0820 GOTO 890 0830 REM 0840 GOSUB '248(3,0,1) 0850 PRINT "NUMBER MUST BE GREATER THAN 0" 0860 GOTO 790 0870 REM INQUIRY - STARTING CUSTOMER ID 0880 REM 0890 GOSUB '243("STARTING CUSTOMER ID",5) 0900 C2$=Q6$ 0910 GOTO 1370 0920 REM INDIVIDUAL OPTION 0930 REM INQUIRY - CUSTOMER ID 0940 REM 0950 GOSUB '243("ENTER CUSTOMER ID",5) 0960 IF Q6$="END" THEN 3280 0970 REM INVALID RESPONSES 0980 IF Q6$=" "THEN 950 0990 IF Q6$="^^^^^"THEN 950 1000 REM OUT OF SEQUENCE CHECK 1010 IF Q6$<C2$ THEN 1180 1020 REM ON FILE CHECK 1030 IF Q6$>=C3$ THEN 1120 1040 PRINT HEX(01) 1050 PRINT " " 1060 PRINT " " 1070 PRINT " " 1080 PRINT "CUSTOMER NOT ON FILE. NEXT CUSTOMER IS ";C3$;"YOU ENTERED:";C2 $ 1090 GOTO 950 1100 REM CHECK IF YOU WANT TO LIST CURRENT 1110 REM 1120 IF Q6$=C3$ THEN 2270 1130 REM SET STARTING, CURRENT, AND END CUST. EQUAL 1140 C2$,C4$=Q6$ 1150 GOTO 1940 1160 REM ERROR-CUSTOMER ID OUT OF SEQUENCE 1170 REM 1180 GOSUB '248 (3,0,1) 1190 PRINT "CUSTOMER OUT OF SEQUENCE" 1200 GOTO 950 1210 REM RANGE OPTION 1220 REM INQUIRY - STARTING CUSTOMER ID 1230 REM 1240 GOSUB '243("STARTING CUSTOMER ID",5) 1250 C2$ = Q6$ 1260 REM INQUIRY - ENDING CUSTOMER ID 1270 REM 1280 GOSUB '243("ENDING CUSTOMER ID",5) 1290 IF Q6$=" " THEN 1370 1300 C4$=Q6$ 1310 IF C2$<C4$ THEN 1370 1320 GOSUB '248(3,0,1) 1330 PRINT "RANGE IS NOT SEQUENTIAL" 1340 GOTO 1240 1350 REM INQUIRY - HARD COPY 1360 REM 1370 GOSUB '243("HARD COPY (Y OR N)",1) 1380 IF Q6$ = "Y" THEN 1450 1390 IF Q6$= "N" THEN 1480 1400 GOSUB '248 (3,0,1) 1410 PRINT "ERROR, ENTER 'Y' OR 'N'" 1420 GOTO 1370 1430 REM INQUIRY - TYPEWRITER OR LINE PRINTER 1440 REM 1450 H2 = 1 1460 REM INQUIRY - SCREEN DISPLAY 1470 REM 1480 GOSUB '243 ("SCREEN DISPLAY (Y OR N)",1) 1490 IF Q6$="Y" THEN 1620 1500 IF Q6$= "N" THEN 1560 1510 GOSUB '248 (3,0,1) 1520 PRINT "ERROR, ENTER 'Y' OR 'N'" 1530 GOTO 1480 1540 REM MUST HAVE EITHER SCREEN OR HARD COPY OUTPUT - 1J2 1550 REM 1560 IF H2 = 1 THEN 1870 1570 GOSUB '248 (3,0,1) 1580 PRINT "ERROR, MUST CHOOSE METHOD OF OUTPUT" 1590 GOTO 1370 1600 REM SET SCREEN INDICATOR 1610 REM 1620 D1=1 1630 REM PAUSE IS USED FOR ALL, RANGE,AND NUMBER OPTION 1640 REM 1650 IF T5$="A" THEN 1720 1660 IF T5$="N" THEN 1720 1670 IF T5$="R" THEN 1720 1680 M = 2 1690 GOTO 1870 1700 REM PAUSE OPTIONS 1710 REM 1720 GOSUB '243("AUTO OR MANUAL (A OR M)",1) 1730 IF Q6$ = "A" THEN 1800 1740 IF Q6$="M" THEN 1870 1750 GOSUB '248(3,0,1) 1760 PRINT "ERROR, ENTER'A'OR 'M'" 1770 GOTO 1720 1780 REM AUTOMATIC PAUSE 1790 REM 1800 M=1 1810 REM 1820 GOSUB '245("ENTER PAUSE TIME (IN SECONDS)",2,0) 1830 IF Q9 <0 THEN 1820 1840 D=Q9 1850 REM CHECK IF TOTAL OPTION IS REQUESTED 1860 REM 1870 IF T5$="T" THEN 3620 1880 REM CHECK IF INDIVIDUAL OPTION IS REQUESTED 1890 REM 1900 IF T5$="I" THEN 950 1910 REM SEARCH CUSTOMER ID OR CURRENT ID 1920 REM CHECK IF CURRENT EQUALS LAST 1930 REM 1940 IF C2$=C3$ THEN 2100 1950 REM CHECK IF CURRENT IS GREATER THAN LAST 1960 REM 1970 IF C2$>C3$ THEN 2170 1980 REM ERROR- CUSTOMER NOT ON FILE 1990 REM 2000 GOSUB '248(3,0,1) 2010 IF T5$<>"I" THEN 2130 2020 PRINT "CUSTOMER NOT ON FILE. NEXT CUSTOMER IS ";C3$;" YOU ENTERED:";C2 $ 2030 GOTO 950 2040 REM NUMBER OF RANGE OPTION 2050 REM 2060 C2$=C3$ 2070 GOTO 2270 2080 REM GET NEXT RECORD 2090 REM 2100 GOSUB 250 2110 REM SET CURRENT EQUAL TO LAST 2120 REM 2130 C2$ = C3$ 2140 GOTO 2210 2150 REM NEXT RECORD 2160 REM 2170 GOSUB 250 2180 REM CHECK IF CURRENT EQUALS LAST 2190 IF C2$<>C3$ THEN 1970 2200 REM 2210 IF R$="A2" THEN 3710 2220 REM CHECK FOR RANGE OPTION 2230 REM 2240 IF C2$>C4$ THEN 3280 2250 REM DISPLAY RECORD ACCORDING TO PARAMETER CHOSEN 2260 REM 2270 IF D1=0 THEN 2470 2280 SELECT PRINT 005 2290 PRINT HEX(03) 2300 GOSUB '248 (4,0,1) 2310 PRINT "CUSTOMER ID ";C$ 2320 PRINT " (NAME) CUSTOMER NAME ";N$ 2330 PRINT " (SLSM) SALESMAN NO. ";S 2340 PRINT " (TYMS) THIS YEAR MONTHLY SALES ";"(LYMS) LAST YEAR MONTHLY S ALES" 2350 PRINT "MO THIS YR SLS MO THIS YR SLS MO LAST YR SLS MO LAST YR SL S" 2360 REM DISPLAY THIS YEARS MONTHLY SALES 2370 FOR X = 1 TO 6 2380 Y=0 2390 Y= 6 + X 2400 PRINTUSING 2420,X;T(X);Y;T(Y);X;L(X);Y;L(Y) 2410 REM 2420 %##-#,###,###.## ##-#,###,###.## ##-#,###,###.## ##-#,###,###.## 2430 REM 2440 NEXT X 2450 REM HARD COPY PRINT OUT - 2C3 2460 REM 2470 IF H2=0 THEN 3080 2480 REM 2490 SELECT PRINT 215(150) 2500 IF L1<60 THEN 2890 2510 IF P=1 THEN 2610 2520 P1 = P1 + 1 2530 REM 2540 SELECT PRINT 215(150) 2550 REM 2560 PRINT HEX(0C) 2570 L1 = 0 2580 GOTO 2680 2590 REM 2600 REM 2610 L1,P=0 2620 P1 = P1 + 1 2630 GOSUB '248(0,0,3) 2640 PRINT "MOUNT NEW PAPER IN PRINTER" 2650 GOSUB '254 2660 GOSUB '248(0,0,3) 2670 REM 2680 SELECT PRINT 215(150) 2690 REM CUSTOMER PRINTTOUT 2700 REM 2710 IF L1<>0 THEN 2890 2720 REM 2730 PRINT " " 2740 PRINT " " 2750 PRINT TAB(58);"COMPANY NAME";TAB(110);"DATE";TAB(122);"PAGE" 2760 PRINT TAB(54);"CUSTOMER SALES ANALYSIS";TAB(108);Q1$;TAB(123);P1 2770 L1 = L1 + 4 2780 IF T5$="T" THEN 3850 2790 PRINT " " 2800 PRINT TAB(11);"CUST ID";TAB(21);"CUSTOMER NAME";TAB(42);"SLSM NO" 2810 PRINT "LAST YR JAN FEB MAR APR MAY JU N JUL AUG SEP OCT NOV DEC" 2820 PRINT "THIS YR" 2830 L1 = L1 + 5 2840 GOTO 2890 2850 REM 2860 SELECT PRINT 215(150) 2870 REM PRINT DETAIL LINE 2880 REM 2890 PRINT " " 2900 PRINTUSING 2920,C$,N$,S 2910 REM 2920 % ##### ################## ##### 2930 PRINT TAB(3); 2940 FOR X=1 TO 12 2950 PRINTUSING 2970,L(X); 2960 REM 2970 %-######.## 2980 REM 2990 NEXT X 3000 PRINT " " 3005 PRINT TAB(3); 3010 FOR Y=1 TO 12 3020 PRINTUSING 2970,T(Y); 3030 NEXT Y 3040 PRINT " " 3050 L1=L1+4 3060 REM PAUSE ONLY FOR ALL, NUMBER, AND RANGE OPTIONS 3070 REM 3080 IF M = 2 THEN 3210 3090 IF D1 = 0 THEN 3210 3100 IF M<>0 THEN 3170 3110 REM MANUAL PAUSE 3120 REM 3130 GOSUB '254 3140 GOTO 3210 3150 REM AUTOMATIC PAUSE 3160 REM 3170 FOR I9= 1 TO D*200 3180 NEXT I9 3190 REM INCREASE NO. OF CUSTOMERS LISTED 3200 REM 3210 IF T5$="T" THEN 3750 3220 R1=R1+1 3230 IF R1=R THEN 3280 3240 IF C2$<C4$ THEN 1940 3250 IF T5$ ="I" THEN 950 3260 REM CLOSE CUSTOMER MASTER FILE - 2J3 3270 REM 3280 % DUMMY 3300 REM 3310 IF H2=1 THEN 3410 3320 IF D1=0 THEN 3410 3330 REM 3340 SELECT PRINT 005 3350 PRINT HEX(03) 3360 GOSUB '248(7,0,1) 3370 PRINT "TOTAL NUMBER OF CUSTOMERS LISTED = ";R1 3380 PRINT "END OF REPORT" 3390 GOTO 3520 3400 REM 3410 IF H2=0 THEN 3520 3420 SELECT PRINT 215(150) 3430 REM 3440 REM 3450 PRINT " " 3460 REM 3470 PRINT "TOTAL NUMBER OF CUSTOMERS LISTED = ";R1 3480 PRINT "END OF REPORT" 3490 IF D1 = 1 THEN 3340 3500 REM END OF PROGRAM 3510 REM 3520 SELECT PRINT 005 3530 PRINT HEX(01) 3540 STOP "END OF PROGRAM" 3550 REM TOTAL OPTION - 2D4 3560 REM 3570 GOSUB '245("NO. OF VOLS. IN CUSTOMER FILE",3,0) 3580 IF Q9 <=0 THEN 3570 3590 R2=Q9 3600 GOTO 1370 3610 REM 3620 GOSUB '250 (2,"SAC1F010",R2) 3630 REM 3640 B=1 3650 REM 3660 GOSUB 250 3670 IF R$="A2" THEN 3710 3680 GOTO 3660 3690 REM SPECIAL TOTAL FIGURES FOR T & A OPTIONS 3700 REM 3710 IF T5$="A" THEN 3750 3720 IF T5$ <> "T" THEN 3280 3730 GOTO 2470 3740 REM 3750 IF H2=0 THEN 4100 3760 SELECT PRINT 215(150) 3770 REM 3780 IF L1<36 THEN 3920 3790 REM 3800 FOR I = 1 TO 66-L1 3810 PRINT " " 3820 NEXT I 3830 L1=0 3840 REM 3850 IF T5$ <>"A" THEN 3920 3860 P1=P1+1 3870 PRINT " " 3880 PRINT " " 3890 PRINT TAB(58);"COMPANY NAME";TAB(110);"DATE";TAB(125);"PAGE" 3900 PRINT TAB(54);"CUSTOMER SALES ANALYSIS";TAB(108);Q1$;TAB(126);P1 3910 REM 3920 FOR C = 1 TO 5 3930 PRINT " " 3940 NEXT C 3950 PRINT TAB(54);"THIS YR SALES";TAB(71);"LAST YR SALES" 3960 PRINT " " 3970 REM 3980 PRINT " " 3990 PRINT TAB(39);"TOTAL SALES"; 4000 PRINTUSING 4020,T(1);L(1) 4010 REM 4020 % -##,###,###.## -##,###,###.## 4030 REM 4040 PRINT " " 4050 PRINT "TOTAL NUMBER OF CUSTOMERS ON FILE = ";S 4060 PRINT " " 4070 PRINT "END OF REPORT" 4100 IF D1<>1 THEN 4170 4110 SELECT PRINT 005(64) 4120 PRINT HEX(03) 4130 GOSUB '248(7,0,1) 4140 PRINT "TOTAL NUMBER OF CUSTOMERS ON FILE =";S 4150 PRINT "END OF REPORT" 4160 REM 4170 GOTO 3520 4180 REM $