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)