Listing of file='INVT010A' on disk='vmedia/701-2616C.wvd.zip'
# Sector 93, program filename = 'INVT010A' 0010 REM INVT010A, RELEASE 2.2, (09/11/80) THIS PROGRAM IS A COPYRIGHT PRODUCT OF WANG LABORATORIES INC. UNAUTHORIZED REPRODUCTION OR USE IS PROHIBITED 0020 REM --------------------------------------------------------------------- - 0030 REM SYSTEM & MODULE = GBS/MVP INVENTORY SYSTEM, PRINT/DISPLAY INVENTOR Y 0040 REM PROGRAM FUNCTION = DISPLAY AND/OR PRINT THE INVENTORY MASTER FILE 0050 REM DATE WRITTEN = 03/08/79 MK 0060 REM LAST REVISION = 09/11/80 TM 0065 REM THIS PROGRAM WAS UPGRADED TO 2.2 BY ERRATA 1159 0070 REM --------------------------------------------------------------------- - 0170 DIM A6$1,B6$1,C6$1,D6$8,D9$25 0172 DIM K$1,K1$Q0,K2$Q0,K3$32 0174 DIM K(6),K1(6) 0198 GOTO 4000 3990 REM 3996 REM ************************************** 3997 REM ! INVENTORY MASTER FILE INQUIRY/LIST ! 3998 REM ************************************** 3999 REM 4000 SELECT @PART S0$ 4010 REM %PROGRAM CONSTANTS 4020 K2$=ALL(FF) 4030 A6$,Q$=" " 4040 B6$="Y" 4050 K,P1=0 4060 L=L0 4070 MAT K=ZER 4080 MAT K1=ZER 4090 REM %ACQUIRE REPORT OPTIONS 4100 GOSUB '100("N,Y","NnYyY ",1,1,"PRINT REPORT (Y OR N)",2) 4110 IF Q6$=HEX(1F) THEN GOSUB '31 4120 A6$=Q6$ : REM SAVE 'PRINT' SWITCH 4130 IF A6$="Y" THEN 4160 4140 $CLOSE : REM RELEASE PRINTER 4150 GOTO 4240 4160 GOSUB '93(" ") : REM IS PRINTER AVAILABLE? 4170 IF I0$=" "THEN A6$="N" : REM DID WE GET THE PRINTER? 4180 REM %SCREEN DISPLAY? 4190 GOSUB '100("N,Y","NnYyY ",1,1,"SCREEN DISPLAY (Y OR N)",2) 4200 IF Q6$=HEX(1F) THEN GOSUB '31 4210 B6$=Q6$ : REM SAVE 'DISPLAY' SWITCH 4220 IF B6$="N" AND A6$="N" THEN 5400 : REM NO PRINT, NO DISPLAY? 4230 REM %CHOOSE REPORT TYPE 4240 PRINT AT(5,0,);TAB(16);"A = Full report" 4250 PRINT TAB(16);"B = Price list" 4260 PRINT TAB(16);"C = Sales analysis" 4270 GOSUB '100("A,B,C","AaBbCc",1,1,"ENTER REPORT TYPE",2) 4280 IF Q6$=HEX(1F) THEN GOSUB '31 4290 C6$=Q6$ 4292 Q6$="FULL REPORT PRICE LIST SALES ANALYSIS" 4294 K3$=STR(Q6$,Q9*14-13,14) 4300 PRINT AT(5,0,) 4310 REM %CHOOSE INQUIRY TYPE 4320 GOSUB '100("A,R,I","AaIiRr",1,1,"ENTER INQUIRY TYPE (A=ALL, R=RANGE, I=INDIVIDUAL)",2) 4330 IF Q6$=HEX(1F) THEN GOSUB '31 4340 K$=Q6$ 4350 Q6$="ALL RANGE INDIVIDUAL" 4360 K3$=K3$&", "&STR(Q6$,Q9*10-9,10) 4370 K3$=K3$&" OPTION" : REM INITIALIZE OPTION CAPTION 4380 ON Q9GOTO ,4540,4450 : REM BRANCH BASED ON INQUIRY TYPE 4390 REM %ALL OPTION 4400 GOSUB '235(1,0) : REM ALL OPTION => FIND FIRST 4410 GOSUB '91 4420 ON J0+1 GOTO 4690,,,,,,,4000 4430 GOTO 5460 4440 REM %INDIVIDUAL OPTION 4450 GOSUB '34(HEX(08)) : REM ACQUIRE PRODUCT ID 4460 IF Q6$="END"THEN 5270 4470 K1$,K2$=Q6$ 4480 GOSUB '232(1,0,K1$) : REM INDIVIDUAL OPTION => FIND OLD 4490 GOSUB '91 : REM KFAM ERROR PROCESSING 4500 ON J0+1 GOTO 4690,,,4450,,,,4450 4510 GOTO 5460 4520 REM %RANGE OPTION 4530 PRINT AT(3,0,80);"Starting ID must be lower than Ending ID.";HEX(07) 4540 K,P1=0 4550 MAT K=ZER 4560 GOSUB '34("STARTING") : REM ACQUIRE STARTING PRODUCT ID 4570 IF Q6$="END"THEN 5270 4580 L=L0 4590 K1$=Q6$ 4600 GOSUB '34("ENDING") : REM ACQUIRE ENDING PRODUCT ID 4610 K2$=HEX(FF) 4620 IF Q6$<>"END"THEN K2$=Q6$ 4630 IF K1$>K2$ THEN 4530 : REM STARTING ID > ENDING ID ? 4640 GOSUB '232(1,0,K1$) : REM RANGE OPTION => STARTING POSITION 4650 J$(3)=" " 4660 GOSUB '91 4670 ON J0 GOTO ,,5020,,,,4000 4680 IF J0>0 THEN 5460 4690 GOSUB '52(2) : REM READ PRODUCT RECORD 4700 IF F1$>K2$THEN 4970 : REM INVALID RANGE VALUES RANGE CHECK 4710 REM %CONVERT DATES 4720 K=K+1 : REM INCREMENT NO. OF RECORDS - RANGE 4730 GOSUB '123(H0) : REM CONVERT DATE (TO GREGORIAN) 4740 D6$=U9$ 4750 IF MAX(H1())>0 THEN $PACK(D=HEX(002F))D9$FROMH1() : ELSE D9$=" " 4760 REM ACCUMULATE TOTALS 4770 IF C6$<>"C"THEN 4920 4780 K(1)=K(1)+H 4790 K(2)=K(2)+H1 4800 K(3)=K(3)+F3 4810 K(4)=K(4)+H+H2 4820 K(5)=K(5)+H1+H4 4830 K(6)=K(6)+F3+H3 4840 K1(1)=K1(1)+H 4850 K1(2)=K1(2)+H1 4860 K1(3)=K1(3)+F3 4870 K1(4)=K1(4)+H+H2 4880 K1(5)=K1(5)+H1+H4 4890 K1(6)=K1(6)+F3+H3 4900 GOSUB '39(H1,F3,H1+H4,F3+H3) 4910 REM %DISPLAY/PRINT 4920 PRINT AT(5,0,) 4930 IF B6$="Y"THEN ON VAL(C6$)-64 GOSUB 6560,6330,7030 : ELSE PRINT "Processing product ID ";STR(F1$) 4940 IF A6$="Y"THEN GOSUB '90 4950 IF A6$="Y"THEN ON VAL(C6$)-64 GOSUB 7490,7290,8030 4960 SELECT PRINT 005(80) 4970 IF K$="I"THEN 4450 : REM GET ANOTHER INDIVIDUAL RECORD? 4980 IF F1$>=K2$THEN 5100 : REM END OF RANGE? 4990 IF B6$="Y"THEN GOSUB '254 : REM PAUSE AFTER EACH SCREEN 5000 IF Q6$=HEX(1F)THEN GOSUB '31 5010 REM %PROCESS NEXT RECORD 5020 IF J0=7 THEN GOSUB '92 5030 GOSUB '237(1,0) : REM ALL/RANGE OPTIONS => FIND NEXT 5040 IF Q$="E" THEN 5100 5050 IF Q$=" " THEN 4690 5060 GOSUB '91 5070 IF J0=7THEN 5020 5080 GOTO 5460 : REM FATAL KFAM ERROR 5090 REM %PRINT TOTALS 5100 IF A6$="N"AND K$="R"THEN 4540 : REM ANOTHER RANGE? 5110 IF A6$="N"OR K$<>"R"THEN 5270 : REM PRINT RANGE TOTALS? 5120 L=L+2 5130 GOSUB '90 5140 IF C6$<>"C"THEN 5220 5150 L=L+2 5160 GOSUB '90 5170 PRINT HEX(0A) 5180 F1$=" " 5190 F2$="RANGE TOTAL" 5200 GOSUB '39(K(2),K(3),K(5),K(6)) 5210 GOSUB '38(K(1),K(2),K(3),K(4),K(5),K(6)) 5220 PRINT HEX(0A) 5230 IF K>0 THEN PRINT "NO. OF RECORDS PROCESSED = ";K 5240 SELECT PRINT 005(80) 5250 GOTO 4540 5260 REM %FINAL TOTALS 5270 IF A6$="N" THEN 5400 5280 SELECT PRINT <I0$>(132) 5290 IF C6$<>"C"THEN 5380 5300 L=L+3 5310 GOSUB '90 5320 PRINT HEX(0A) 5330 F1$=" " 5340 F2$="FINAL TOTAL" 5350 GOSUB '39(K1(2),K1(3),K1(5),K1(6)) 5360 GOSUB '38(K1(1),K1(2),K1(3),K1(4),K1(5),K1(6)) 5370 PRINT HEX(0A) 5380 PRINT HEX(0C) 5390 REM %RESTART/MENU 5400 SELECT PRINT 005(80) 5410 PRINT AT(1,0,) 5420 GOSUB '100("M,R","MmRr",1,1,"ENTER R TO RESTART, M FOR MENU",2) 5430 IF Q6$="R"THEN 4000 5440 J0=0 5450 REM %END OF PROGRAM 5460 DEFFN'31 5470 IF J0>0 THEN GOSUB '254 5480 LOAD TM$ 6000 REM %^SUBROUTINES 6010 REM %PAGE EJECT 6020 DEFFN'90 6030 Q6$=" " 6040 KEYIN Q6$,6050,6050 : REM OPERATOR INTERRUPT CHECK 6050 IF Q6$="P" THEN GOSUB '254 6060 IF Q6$=HEX(1F) THEN GOSUB '31 6070 SELECT PRINT <I0$>(132) 6080 Q9=0 6090 IF C6$="A" THEN Q9=6 6100 IF L<L0-Q9THEN RETURN : REM LINE COUNT CHECK 6110 P1=P1+1 6120 PRINT HEX(0C0A0E);TAB(3);N2$ : REM COMPANY NAME 6130 PRINT K3$;TAB(55);"INVENTORY MASTER FILE";TAB(110);Q1$;TAB(122);"PAGE ";P1 6140 PRINT HEX(0A) 6150 L=4 6160 RETURN 6170 REM %ACQUIRE PRODUCT ID 6180 DEFFN'34(Q7$) 6190 IF B6$="N" THEN PRINT AT(5,0,80) 6200 PRINT AT(1,0,80);"ENTER ";Q7$;" PRODUCT ID (OR END)" 6210 GOSUB '100(" ",HEX(7F),Q0,0," ",2) 6220 IF Q6$=HEX(1F) THEN GOSUB '31 6230 IF Q6$="end" THEN Q6$="END" 6240 IF Q6$="END"THEN RETURN 6250 GOSUB '96(2) : REM CONSTRUCT PRODUCT ID 6260 RETURN 6270 %###,###.##- 6280 %##,###,###- 6290 %######.##- 6300 %####.##- 6310 %####.#### 6320 REM %SCREEN DISPLAY => PRICE LIST 6330 Q6=2 : REM START POSITION - COLUMN 1 LABELS 6340 Q7=25 : REM START POSITION - COLUMN 1 DATA 6350 Q8=41 : REM START POSITION - COLUMN 2 LABELS 6360 Q9=62 : REM START POSITION - COLUMN 2 DATA 6370 PRINT TAB(Q6);"PRODUCT ID";TAB(Q7-2);F1$ 6380 PRINT TAB(Q6);"DESCRIPTION";TAB(Q7-2);F2$ 6390 PRINT HEX(0A) 6400 PRINT TAB(Q6);"UNIT OF MEASURE";TAB(Q7+8);F3$;TAB(Q8);"ON HAND";TAB(Q 9); 6410 PRINTUSING 6280,E 6420 PRINT TAB(Q6);"LAST ACTIVITY";TAB(Q7+2);D6$;TAB(Q8);"AVERAGE COST";TA B(Q9); 6430 PRINTUSING 6270,F 6440 PRINT TAB(Q6);"PRICE 1";TAB(Q7); 6450 PRINTUSING 6270,H(1); 6460 PRINT TAB(Q8);"LAST COST";TAB(Q9); 6470 PRINTUSING 6270,F1 6480 PRINT TAB(Q6);"PRICE 2";TAB(Q7); 6490 PRINTUSING 6270,H(2); 6500 PRINT TAB(Q8);"TOTAL COST";TAB(Q9); 6510 PRINTUSING 6270,ROUND((F*E,2) 6520 PRINT TAB(Q6);"PRICE 3";TAB(Q7); 6530 PRINTUSING 6270,H(3) 6532 PRINT TAB(Q6);"PRICE 4";TAB(Q7); 6534 PRINTUSING 6270,H(4) 6536 PRINT TAB(Q6);"PRICE 5";TAB(Q7); 6538 PRINTUSING 6270,H(5) 6540 RETURN 6550 REM %SCREEN DISPLAY => FULL PRINT 6560 Q6=2 : REM START POSITION - COLUMN 1 LABELS 6570 Q7=25 : REM START POSITION - COLUMN 1 DATA 6580 Q8=41 : REM START POSITION - COLUMN 2 LABELS 6590 Q9=62 : REM START POSITION - COLUMN 2 DATA 6600 PRINT TAB(Q6);"PRODUCT ID";TAB(Q7-2);F1$ 6610 PRINT TAB(Q6);"DESCRIPTION";TAB(Q7-2);F2$ 6620 PRINT TAB(Q6);"ALTERNATE ID";TAB(Q7-2);G3$ 6630 IF D9$>" " THEN PRINT TAB(Q6);"PRICE BREAKS";TAB(Q7-2);D9$ 6640 PRINT TAB(Q6);"LOC CODE";TAB(Q7-2);I5$;TAB(Q8);"WEIGHT";TAB(Q9+3); 6650 PRINTUSING 6310,H5 6660 PRINT TAB(Q6);"PREFIX";TAB(Q7-2);F$;TAB(Q8);"AVERAGE COST";TAB(Q9); 6670 PRINTUSING 6270,F 6680 PRINT TAB(Q6);"UNIT OF MEASURE";TAB(Q7+8);F3$;TAB(Q8);"LAST COST";TAB (Q9); 6690 PRINTUSING 6270,F1 6700 PRINT TAB(Q6);"LAST ACTIVITY";TAB(Q7+2);D6$;TAB(Q8);"PRICE 1";TAB(Q9) ; 6710 PRINTUSING 6270,H(1) 6720 PRINT TAB(Q6);"VENDOR ID";TAB(Q7+5);G2$;TAB(Q8);"PRICE 2";TAB(Q9); 6730 PRINTUSING 6270,H(2) 6740 PRINT TAB(Q6);"ON HAND";TAB(Q7); 6750 PRINTUSING 6280,E; 6760 PRINT TAB(Q8);"PRICE 3";TAB(Q9); 6770 PRINTUSING 6270,H(3) 6780 PRINT TAB(Q6);"PACK SIZE";TAB(Q7); 6790 PRINTUSING 6280,B4; 6800 PRINT TAB(Q8);"PRICE 4";TAB(Q9); 6810 PRINTUSING 6270,H(4) 6820 PRINT TAB(Q6);"ITEM MINIMUM ORDER";TAB(Q7); 6830 PRINTUSING 6280,B5; 6840 PRINT TAB(Q8);"PRICE 5";TAB(Q9); 6850 PRINTUSING 6270,H(5) 6860 PRINT TAB(Q6);"MINIMUM";TAB(Q7); 6870 PRINTUSING 6280,E4; 6880 PRINT TAB(Q8);"QUANTITY ALLOCATED";TAB(Q9); 6890 PRINTUSING 6280,E3 6900 PRINT TAB(Q6);"MAXIMUM";TAB(Q7); 6910 PRINTUSING 6280,E5; 6920 PRINT TAB(Q8);"QUANTITY BACKORDERED";TAB(Q9); 6930 PRINTUSING 6280,E2 6940 PRINT TAB(Q6);"COUNTING CYCLE";TAB(Q7+9);H5$; 6950 PRINT TAB(Q8);"QUANTITY ON ORDER";TAB(Q9); 6960 PRINTUSING 6280,E1 6970 PRINT TAB(Q6);"ON HAND - PHYSICAL";TAB(Q7); 6980 PRINTUSING 6280,F5; 6990 PRINT TAB(Q8);"PHYSICAL COUNT";TAB(Q9); 7000 PRINTUSING 6280,E0 7010 RETURN 7020 REM %SCREEN DISPLAY => SALES ANALYSIS 7030 Q6=2 : REM START POSITION - COLUMN 1 LABELS 7040 Q7=16 : REM START POSITION - ID,DESCRIPTION 7050 Q8=24 : REM START POSITION - CURRENT MONTH 7060 Q9=43 : REM START POSITION - YEAR-TO-DATE 7070 PRINT TAB(Q6);"PRODUCT ID";TAB(Q7);F1$ 7080 PRINT TAB(Q6);"DESCRIPTION";TAB(Q7);F2$ 7090 PRINT HEX(0A) 7100 PRINT TAB(Q8-3);"CURRENT MONTH";TAB(Q9-2);"YEAR TO DATE" 7110 PRINT " UNITS SOLD";TAB(Q8); 7120 PRINTUSING 6280,H; 7130 PRINT TAB(Q9); 7140 PRINTUSING 6280,H2+H 7150 PRINT " COST OF UNITS SOLD";TAB(Q8); 7160 PRINTUSING 6270,F3; 7170 PRINT TAB(Q9); 7180 PRINTUSING 6270,F3+H3 7190 PRINT " SALES";TAB(Q8); 7200 PRINTUSING 6270,H1; 7210 PRINT TAB(Q9); 7220 PRINTUSING 6270,H4+H1 7230 PRINT " MARGIN";TAB(Q8+3); 7240 PRINTUSING 6300,A6; 7250 PRINT TAB(Q9+3); 7260 PRINTUSING 6300,A7 7270 RETURN 7280 REM %HARDCOPY REPORT => PRICE LIST 7290 Q2=10 : REM WIDTH OF COLUMN LISTING PRICES, COSTS 7300 Q3=0 : REM STARTING POSITION - PRODUCT ID 7310 Q4=Q0+2 : REM STARTING POSITION - DESCRIPTION 7320 Q5=39 : REM STARTING POSITION - UNIT OF MEASURE 7330 Q6=45 : REM STARTING POSITION - PRICE BREAKS 7340 Q8=72 : REM USED WITH COLUMN WIDTH FOR POSITION OF PRICES, COSTS 7350 IF L<>4THEN 7400 7360 PRINT TAB(Q3);"PRODUCT ID";TAB(Q4);"DESCRIPTION";TAB(Q5);"U/M";TAB(Q6 );"QUANTITY PRICE BREAKS";TAB(Q8+2);"PRICE 1";TAB(Q8+Q2+2);"PRICE 2";TAB( Q8+2*Q2+2);"PRICE 3";TAB(Q8+3*Q2+2);"PRICE 4";TAB(Q8+4*Q2+2);"PRICE 5" 7370 PRINT HEX(0A) 7380 L=L+2 7390 REM DETAIL LINE 7400 PRINT TAB(Q3);F1$;TAB(Q4);STR(F2$,,MIN(36-Q0,LEN(F2$)));TAB(Q5);F3$;T AB(Q6);D9$;TAB(Q8); 7410 FOR J=1 TO 5 7420 PRINT TAB(Q8+(J-1)*Q2); 7430 PRINTUSING 6290,H(J); 7440 NEXT J 7450 PRINT 7460 L=L+1 7470 RETURN 7480 REM %HARDCOPY REPORT => FULL PRINT 7490 Q2=0 : REM START POSITION - COLUMN 1 LABEL 7500 Q3=14 : REM START POSITION - COLUMN 1 DATA 7510 Q4=41 : REM START POSITION - COLUMN 2 LABEL 7520 Q5=58 : REM START POSITION - COLUMN 2 DATA 7530 Q6=75 : REM START POSITION - COLUMN 3 LABEL 7540 Q7=90 : REM START POSITION - COLUMN 3 DATA 7550 Q8=107 : REM START POSITION - COLUMN 4 LABEL 7560 Q9=120 : REM START POSITION - COLUMN 4 DATA 7570 REM LINE 1 7580 PRINT TAB(Q2);"PRODUCT ID";TAB(Q3);STR(F1$,,MIN(Q4-Q3-2,LEN(F1$)));TA B(Q4);"ON HAND";TAB(Q5); 7590 IF E<>0THEN PRINTUSING 6280,E; 7600 PRINT TAB(Q6);"MINIMUM";TAB(Q7); 7610 IF E4<>0THEN PRINTUSING 6280,E4; 7620 PRINT TAB(Q8);"PRICE 1";TAB(Q9); 7630 PRINTUSING 6270,H(1) 7640 REM LINE 2 7650 PRINT TAB(Q2);"DESCRIPTION";TAB(Q3);F2$;TAB(Q4);"BACKORDER";TAB(Q5); 7660 IF E2<>0THEN PRINTUSING 6280,E2; 7670 PRINT TAB(Q6);"MAXIMUM";TAB(Q7); 7680 IF E5<>0THEN PRINTUSING 6280,E5; 7690 PRINT TAB(Q8);"PRICE 2";TAB(Q9); 7700 PRINTUSING 6270,H(2) 7710 REM LINE 3 7720 PRINT TAB(Q2);"PRICE BREAKS";TAB(Q3);D9$;TAB(Q4);"ON ORDER";TAB(Q5); 7730 IF E1<>0THEN PRINTUSING 6280,E1; 7740 PRINT TAB(Q6);"PACK SIZE";TAB(Q7); 7750 IF B4<>0THEN PRINTUSING 6280,B4; 7760 PRINT TAB(Q8);"PRICE 3";TAB(Q9); 7770 PRINTUSING 6270,H(3) 7780 REM LINE 4 7790 PRINT TAB(Q2);"PREFIX/ALT ID";TAB(Q3);F$;TAB(Q3+12);G3$;TAB(Q4);"QTY ALLOCATED";TAB(Q5); 7800 IF E3<>0THEN PRINTUSING 6280,E3; 7810 PRINT TAB(Q6);"ITEM MIN ORDER";TAB(Q7); 7820 IF B5<>0 THEN PRINTUSING 6280,B5; 7830 PRINT TAB(Q8);"LAST ACTIVITY";TAB(Q9+2);D6$ 7840 REM LINE 5 7850 PRINT TAB(Q2);"U/M";TAB(Q3);F3$;TAB(Q3+8);"WEIGHT";TAB(Q3+15); 7860 IF H5<>0THEN PRINTUSING 6310,H5; 7870 PRINT TAB(Q4);"PHYSICAL COUNT";TAB(Q5); 7880 IF E0<>0 THEN PRINTUSING 6280,E0; 7890 PRINT TAB(Q6);"LAST COST";TAB(Q7); 7900 IF F1<>0 THEN PRINTUSING 6270,F1; 7910 PRINT TAB(Q8);"LOCATION CODE";TAB(Q9+4);I5$ 7920 REM LINE 6 7930 PRINT TAB(Q2);"VENDOR ID";TAB(Q3);G2$; 7940 PRINT TAB(Q4);"PHYSICAL ON HAND";TAB(Q5); 7950 IF F5<>0 THEN PRINTUSING 6280,F5; 7960 PRINT TAB(Q6);"AVERAGE COST";TAB(Q7); 7970 IF F<>0 THEN PRINTUSING 6270,F; 7980 PRINT TAB(Q8);"COUNTING CYCLE";TAB(Q9+4);H5$ 7990 PRINT HEX(0A) 8000 L=L+7 8010 RETURN 8020 REM %HARDCOPY REPORT => SALES ANALYSIS 8030 GOSUB '38(H,H1,F3,H+H2,H1+H4,F3+H3) 8040 RETURN 8050 DEFFN'38(K1,K2,K3,K4,K5,K6) 8060 Q2=44 : REM WIDTH OF CURRENT MONTH COLUMN 8070 Q4=0 : REM STARTING POSITION - PRODUCT ID 8080 Q5=2+Q0 : REM STARTING POSITION - DESCRIPTION 8090 Q6=40 : REM STARTING POSITION - UNITS 8100 Q7=52 : REM STARTING POSITION - SALES 8110 Q8=64 : REM STARTING POSITION - COST 8120 Q9=75 : REM STARTING POSITION - PROFIT MARGIN 8130 IF L<>4 THEN 8200 8140 Q6$=ALL("-") 8150 PRINT TAB(40);STR(Q6$,,13);" CURRENT MONTH ";STR(Q6$,,14);TAB(84);STR (Q6$,,14);" YEAR TO DATE ";STR(Q6$,,14) 8160 PRINT TAB(Q4);"PRODUCT ID";TAB(Q5);"DESCRIPTION";TAB(Q6+5);"UNITS";TA B(Q7+5);"SALES";TAB(Q8+6);"COST";TAB(Q9+1);"MARGIN";TAB(Q6+Q2+5);"UNITS"; TAB(Q7+Q2+5);"SALES";TAB(Q8+Q2+6);"COST";TAB(Q9+Q2+1);"MARGIN" 8170 PRINT HEX(0A) 8180 L=L+3 8190 REM DETAIL LINE 8200 PRINT TAB(Q4);F1$;TAB(Q5);STR(F2$,,MIN(36-Q0,LEN(F2$)));TAB(Q6); 8210 REM CURRENT MONTH 8220 IF K1<>0 THEN PRINTUSING 6280,K1; 8230 PRINT TAB(Q7); 8240 IF K2<>0THEN PRINTUSING 6270,K2; 8250 PRINT TAB(Q8); 8260 IF K3<>0THEN PRINTUSING 6270,K3; 8270 PRINT TAB(Q9); 8280 IF A6<>0 THEN PRINTUSING 6300,A6; 8290 REM YEAR TO DATE 8300 PRINT TAB(Q6+Q2); 8310 IF K4<>0 THEN PRINTUSING 6280,K4; 8320 PRINT TAB(Q7+Q2); 8330 IF K5<>0 THEN PRINTUSING 6270,K5; 8340 PRINT TAB(Q8+Q2); 8350 IF K6<>0THEN PRINTUSING 6270,K6; 8360 PRINT TAB(Q9+Q2); 8370 IF A7<>0 THEN PRINTUSING 6300,A7; 8380 PRINT 8390 L=L+1 8400 RETURN 8410 REM %COMPUTE MARGINS 8420 DEFFN'39(K2,K3,K5,K6) 8430 A6,A7=0 8440 IF K3<>0THEN A6=ROUND((K2/K3*100-100,2) 8450 IF K6<>0THEN A7=ROUND((K5/K6*100-100,2) 8460 RETURN 9000 REM %^VARIABLES 9010 REM A6 = CURR. MO. MARGIN 9020 REM A6$1 = SWITCH FOR HARDCOPY REPORT (Y/N) 9030 REM A7 = Y-T-D MARGIN 9040 REM B6$1 = SWITCH FOR SCREEN DISPLAY (Y/N) 9050 REM C6$1 = REPORT TYPE (A,B,C) 9060 REM D6$25 = QUANTITY PRICE BREAKS 9070 REM K(1) = CURR. MO. UNITS => RANGE TOTAL 9080 REM K(2) = CURR. MO. SALES => RANGE TOTAL 9090 REM K(3) = CURR. MO. COST => RANGE TOTAL 9100 REM K(4) = Y-T-D UNITS => RANGE TOTAL 9110 REM K(5) = Y-T-D SALES => RANGE TOTAL 9120 REM K(6) = Y-T-D COST => RANGE TOTAL 9130 REM K1(1) = CURR. MO. UNITS => TOTAL 9140 REM K1(2) = CURR. MO. SALES => TOTAL 9150 REM K1(3) = CURR. MO. COST => TOTAL 9160 REM K1(4) = Y-T-D UNITS => TOTAL 9170 REM K1(5) = Y-T-D SALES => TOTAL 9180 REM K1(6) = Y-T-D COST => TOTAL 9190 REM K0 = NO. OF RECORDS PROCESSED => FINAL 9200 REM K = NO. OF RECORDS PROCESSED => RANGE 9210 REM K1 = CURR. MO. UNITS => WORK 9220 REM K2 = CURR. MO. SALES => WORK 9230 REM K2 = CURR. MO. COST => WORK 9240 REM K4 = Y-T-D UNITS => WORK 9250 REM K5 = Y-T-D SALES => WORK 9260 REM K6 = Y-T-D COST => WORK 9270 REM K$1 = INQUIRY TYPE (A,R,I) 9280 REM K1$Q0 = STARTING PRODUCT ID (RANGE OPTION) 9290 REM K2$Q0 = ENDING PRODUCT ID (RANGE OPTION) 9300 REM K3$17 = REPORT FIELD FOR INQUIRY TYPE 9310 REM $ 9998 DEFFN'29"Q$=";HEX(22);"INVT010A";HEX(22);":SCRATCH TQ$:SAVET$()Q$";HEX(0D ) 9999 DEFFN'30"DIM Z$57:IF STR(I0$,,1)=HEX(20)THENI0$=HEX(323135):Z$=";HEX(22); "GBS/MVP - Print/display the inventory master file.";HEX(22);":SELECT#15< I0$>:$OPEN#15:SELECTLIST<I0$>(132): LIST Z$:LIST Z$#:LIST Z$V:LIST Z$':$C LOSE#15:SELECTLIST005(80)";HEX(0D)