Listing of file='SAC120AA' on disk='vmedia/701-2003.wvd.zip'
# Sector 292, program filename = 'SAC120AA' 0010 REM PROGRAM NAME = SAC120AA 0020 REM SYSTEM NAME = BASIC ACCOUNTING SYSTEM 1A 0030 REM PROGRAM FUNCTION = PRINTS SALES REPORT 0040 REM MODULE NAME = 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 PRINTS A SALES REPORT FOR A SPECIFIED BUT 0120 REM FLEXIBLE PERIOD 0130 REM A.FILES USED = 1. CUSTOMER MASTER FILE 0140 REM B.FUNCTIONS PERFORMED = PRINTS REPORT 0150 REM SALES ANALYSIS REPORT BY CUSTOMER 0160 REM 0170 DIM R$2,C$5,N$18,T(12),L(12) 0180 DIM U4$,U2$,U6$ 0190 DIM D$8,U3$8,U$10,U0$,P$ 0200 SELECT PRINT 005(64) 0210 PRINT HEX(03) 0220 GOTO 550 0230 REM GET CUSTOMER FILE ROUTINE 0240 REM B=0 BLOCK COUNT CHECK TO SEE IF FILE IS OPEN 0250 REM 0260 IF B=0 THEN 290 0270 GOTO 340 0280 REM 0290 B=1 0300 REM OPEN FILE ROUTINE 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 REM STEP BLOCK COUNT AND RETURN TO MAIN PROGRAM 0380 B=B+1 0390 RETURN 0400 REM CLOSE FILE ROUTINE 0410 REM 0420 GOSUB '251 (2) 0430 REM TEST TO SEE IF A3 IS EOF OR EOR 0440 IF Q5$ = "F" THEN 500 0450 REM OPEN NEXT VOL. 0460 B=1 0470 GOTO 340 0480 REM ERROR MESSAGE DISPLAY 0490 REM 0500 GOSUB '248 (3,0,1) 0510 PRINT "FILE SAC1F010 IS MISSING NORMAL ENDING FORMAT. RECREATE FILE P ROPERLY." 0520 END 0530 REM INITIALIZED COUNTERS FLOWCHART POINT 1B1 0540 REM 0550 L1=60 0560 R1,R3,B = 0 0570 P1=0 0580 P=1 0590 REM INPUT ROUTINE 0600 REM INQUIRY #1 REPORT DATE 1C1 0610 REM 0620 GOSUB '243 ("ENTER REPORT DATE AS MM/DD/YY",8) 0630 IF Q6$ =" " THEN 680 0640 D$ = Q6$ 0650 U3$ =Q6$ 0660 GOTO 730 0670 REM 0680 GOSUB '248(3,0,1) 0690 PRINT "RE-ENTER REPORT DATE" 0700 GOTO 620 0710 REM INQUIRY #2 1E1 0720 REM 0730 GOSUB '245("ENTER BEGINNING MONTH OF PERIOD AS MM",2,0) 0740 IF Q9<=0 THEN 790 0750 M7 = Q9 0760 GOTO 910 0770 REM DATE ERROR ROUTINE 0780 REM 0790 PRINT HEX(03) 0800 GOSUB '248(3,0,1) 0810 PRINT "RE-ENTER DATES" 0820 GOTO 730 0830 REM ENDING MONTH GREATER THAN REPORT DATE - ERROR 0840 REM 0850 GOSUB '248 (0,0,15) 0860 PRINT "REPORT DATE IS ";D$;" YOUR ENDING MONTH IS ";M8 0870 PRINT "RE-ENTER DATES" 0880 GOTO 620 0890 REM INQUIRY # 3 1G1 0900 REM 0910 GOSUB '245("ENTER ENDING MONTH OF PERIOD AS MM",2,0) 0920 IF Q9=0 THEN 790 0930 M8=Q9 0940 REM CHECK ENDING DATE< BEGINNING DATE 0950 IF M8<M7 THEN 790 0960 REM CHECK IF ENDING >12 0970 IF M8>12 THEN 790 0980 REM CHECK IF ENDING <0 0990 IF M8<0 THEN 790 1000 REM UTILITY FOR CHANGING AND EXTRACTING MONTH FROM REPORT DATE 1010 REM 1020 U$ = "0123456789" 1030 REM V3 = RESULTS 1040 V3=0 1050 FOR V2 = 1 TO LEN(U3$) 1060 U0$ = STR(U3$,V2,1) 1070 FOR V = 1 TO 10 1080 IF U0$ = STR(U$,V,1) THEN 1120 1090 NEXT V 1100 GOTO 1610 1110 REM 1120 V3=10*V3+V-1 1130 NEXT V2 1140 REM CALCULATE NET SALES THIS PERIOD 1150 REM 1160 T4,L5,P3,T5,L7,P4 =0 1170 REM M + E ARE VARIABLES USED AS REPRESENTATIVES 1180 M=M7 1190 E=M8 1200 REM 1210 FOR I = M TO E 1220 T4=T4 + T(I) 1230 NEXT I 1240 REM CALCULATE NET SALES LAST YEAR FOR THIS PERIOD 1250 REM 1260 M=M7 1270 E=M8 1280 REM 1290 FOR I = M TO E 1300 L5 = L5 + L(I) 1310 NEXT I 1320 REM CALCULATE % CHANGED FOR THIS PERIOD 1330 REM 1340 REM IF LAST YEAR = 0 DO NOT CALCULATE % 1350 IF L5=0 THEN 1380 1360 P3 =((T4-L5)/L5)*100 1370 REM CALCULATE YTD SALES FOR THIS YEAR 1380 M=1 1390 E=V3 1400 REM 1410 FOR I = M TO E 1420 T5 = T5 + T(I) 1430 NEXT I 1440 REM CALCULATE YTD SALES LAST YEAR 1450 REM 1460 M=1 1470 E=V3 1480 REM 1490 FOR I = M TO E 1500 L7 = L7 + L(I) 1510 NEXT I 1520 REM CALCULATE % CHANGED FOR YTD 1530 REM 1540 REM IF LAST YTD =0 DO NOT CALCULATE % 1550 IF L7=0 THEN 1580 1560 P4= ((T5-L7)/L7)*100 1570 REM 1580 RETURN 1590 REM A CHECK FOR ENDING > REPORT DATE 1600 REM 1610 IF M8>V3 THEN 850 1620 REM MAIN LINE 1E3 1630 REM 1640 GOSUB 260 1650 IF C$="ZZZZZ" THEN 2420 1660 IF R$ = "A2" THEN 2740 1670 REM CALCULATE NET SALES FOR PERIOD + YTD AND % CHG 1680 REM GOSUB 1140 CALCULATION SUBROUTINE 1690 GOSUB 1160 1700 IF P1=0 THEN 1830 1710 IF L1<60 THEN 1920 1720 IF P<>0 THEN 1830 1730 SELECT PRINT 215(150) 1740 P1=P1+1 1750 REM 1760 PRINT HEX(0C) 1790 L1=0 1800 GOTO 2040 1810 REM MOUNT PAPER 1820 REM 1830 P=0 1840 L1=60 1850 SELECT PRINT 005(64) 1860 PRINT HEX(03) 1870 PRINT "MOUNT NEW PAPER IN PRINTER" 1880 GOSUB ' 254 1890 GOTO 1920 1900 REM CHECK LINE COUNTER AND PRINT HEADINGS 1910 REM 1920 PRINT HEX(03) 1930 SELECT PRINT 215(150) 1940 IF L1<>60 THEN 2040 1950 P1=P1+1 1960 REM 1970 PRINT HEX(0C) 2000 REM 2010 L1=0 2020 REM PRINT HEADINGS 2030 REM 2040 IF L1<>0 THEN 2180 2050 REM 2060 PRINT " " 2070 PRINT TAB(41);"CUSTOMER NAME";TAB(77);"DATE PAGE" 2080 PRINT " " 2090 PRINT TAB(16);"CUSTOMER SALES ANALYSIS PERIOD = MONTH ";M7;" TO ";M8 ;TAB(75);D$;TAB(88);P1 2100 PRINT " " 2110 PRINT "C U S T O M E R";TAB(28);"NET SALES LAST YEAR SALES % YTD NET SLS YTD NET SLS SALES %" 2120 PRINT "I D N A M E";TAB(27);"THIS PERIOD SAME PERIOD CHANGE THIS YEAR LAST YEAR CHANGE" 2130 PRINT " " 2140 L1=L1+12 2150 GOTO 2180 2160 REM PRINT DETAIL LINE 2170 REM 2180 IF R$ = "A2" THEN 2760 2190 P$=" " 2200 REM 2210 IF T4>=0 THEN 2230 2220 GOTO 2240 2230 IF L5>0 THEN 2260 2240 PRINTUSING 2550,C$,N$,T4,L5,P$; 2250 GOTO 2270 2260 PRINTUSING 2550,C$,N$,T4,L5,P3; 2270 IF T5>=0 THEN 2290 2280 GOTO 2300 2290 IF L7>0 THEN 2320 2300 PRINTUSING 2555,T5,L7,P$ 2310 GOTO 2590 2320 PRINTUSING 2555,T5,L7,P4 2330 GOTO 2590 2410 REM 2420 SELECT PRINT 215(150) 2430 PRINT HEX(0A) 2440 PRINTUSING 2460,T(1);L(1);T(1);L(1) 2450 REM 2460 %ZZZZZ WASH ACCOUNT #,###,### #,###,### #,###, ### #,###,### 2470 REM 2480 L1=L1+2 2490 C4 = C4 + T(1) 2500 C5 = C5 + T(1) 2510 C6 = C6 + L(1) 2520 C7 = C7 + L(1) 2530 GOTO 2650 2540 REM 2550 %##### ################## -#,###,### -#,###,### -###.## 2555 % -##,###,### -##,###,### -###.## 2570 REM ADD DETAIL DATA TO CONTROL TOTALS 2580 REM 2590 C4=C4+T4 2600 C6=C6+L5 2610 C5=C5+T5 2620 C7=C7+L7 2630 REM ADD TO LINE COUNTER 2640 REM 2650 L1=L1+1 2660 REM INCREASE NO. OF CUSTOMERS LISTED 2C1 2670 REM 2680 R1=R1+1 2690 REM RESELECT CRT 2700 GOTO 1640 2710 REM A2 CALCULATIONS AND PRINT ROUTINES 2720 REM C6 + C7 ARE CHECKED - IF 0 -% CALCULATION NOT DONE 2730 REM 2740 GOTO 1920 2750 REM 2760 IF C6=0 THEN 2790 2770 P5=((C4-C6)/C6)*100 2780 REM 2790 IF C7=0 THEN 2830 2800 P6=((C5-C7)/C7)*100 2810 REM PRINT CONTROL TOTALS 1 H3 2820 REM 2830 PRINT " " 2840 PRINT TAB(12);"REPORT TOTALS "; 2850 IF C4>=0 THEN 2870 2860 GOTO 2880 2870 IF C6>0 THEN 2900 2880 PRINTUSING 3050,C4,C6,P$; 2890 GOTO 2910 2900 PRINTUSING 3050,C4,C6,P5; 2910 IF C5>=0 THEN 2930 2920 GOTO 2940 2930 IF C7>0 THEN 2960 2940 PRINTUSING 3055,C5,C7,P$ 2950 GOTO 3090 2960 PRINTUSING 3055,C5,C7,P6 2970 GOTO 3090 3040 REM 3050 %-##,###,### -##,###,### -###.## 3055 % -###,###,### -###,###,### -###.## 3060 REM 3070 REM OUT OF BALANCE CHECK 1J3 3080 REM 3090 R3= S-R1 3100 IF R3 <> 0 THEN 3220 3110 REM 3120 PRINT "END OF REPORT" 3130 REM CLOSE ROUTINE 3140 REM 3150 SELECT PRINT 005(64) 3180 PRINT HEX(03) 3190 STOP "END OF PROGRAM" 3200 REM OUT OF BALANCE PRINT 1J4 3210 REM 3220 FOR C = 1 TO 4 3230 PRINT " " 3240 NEXT C 3250 PRINTUSING 3270,S;R1;R3 3260 REM 3270 %INPUT CUSTOMER SALES ANALYSIS FILE OUT OF BALANCE #,### CUST. EXPECTED #,### READ #,### DIFF 3280 REM 3290 PRINT " " 3300 GOTO 3120 3310 REM $