1 REM **** HP BASIC PROGRAM LIBRARY ******************************* 2 REM 3 REM CUSSRT : CTC INVENTORY CONTROL 4 REM FOR FINISHED PRODUCTS 5 REM 36211 REV B PART 17 OF 35 2/73 6 REM 7 REM **** CONTRIBUTED PROGRAM ************************************ 9 DIM Z$[54] 10 DIM A$[20],Y$[10],S$[54],T$[54],X$[1] 11 DIM E[8],Q[30],P[13],C[4,8],S[16],D[2,2] 20 Y$="0123456789" 100 FILES C1,G10A,G0,S3 150 PRINT "(1) TOP OF FORM OR (2) ABDICK"; 160 INPUT P5 200 READ C9,C8,C7,G8 205 Z[1]=3000 210 DATA 13,4,8,3 220 MAT READ P 230 DATA 1000,3800,4300,4900,6500,7500,7560,7760,8760,9760,9870,10350,10400 235 MAT READ Q 236 DATA 2100,3101,3300,3200,3400,4100,4200,0,1102,1104,1106,1108,1114,1118,1122 237 DATA 1126,1400,1401,1402,1403,1404,1405,1420,1300,1301,1302,1303,1200,1201,3120 240 DATA "C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","C11","C12","C13" 245 DATA "G10A","G10B","G10C" 300 PRINT "CURRENT DATE"; 310 INPUT X 330 T$=" " 335 GOSUB 4800 355 D1=X1 360 D2=X2 365 D3=X3 400 PRINT "FIRST CUST# INTERVAL (A1,A2)"; 405 INPUT A1,A2 420 PRINT "LAST INTERVAL#"; 425 INPUT A3 430 PRINT "TRANSACTION (10=ALL)"; 435 INPUT G0 471 PRINT "LSE STAT (10=1&2;11=ALL;12=0,1,&2)"; 472 INPUT G1 480 PRINT "FIRST PAGE#"; 482 INPUT P4 485 P4=P4-1 500 P9=66 510 N5=1 512 GOSUB 1300 515 S5=0 520 FOR I=1 TO 188 STEP 11 525 PRINT #4,I; END 530 NEXT I 950 PRINT "0"; 1000 IF END #1 THEN 1060 1010 MAT READ #1;E 1012 S5=S5+1 1015 IF E[1]=-1 THEN 1010 1020 S[1]=INT(E[1]/10^4) 1021 S[2]=E[1]-S[1]*10^4 1022 S[3]=INT(E[2]/10^5) 1023 S[8]=E[4]-INT(E[4]/10)*10 1024 IF G0=10 THEN 1027 1025 IF S[3]#G0 THEN 1010 1027 IF G1=11 THEN 1035 1028 IF G1=10 THEN 1032 1029 IF G1=12 THEN 1034 1030 IF S[8]=G1 THEN 1035 1031 GOTO 1010 1032 IF S[8]#1 AND S[8]#2 THEN 1010 1033 GOTO 1035 1034 IF S[8]>2 THEN 1010 1035 FOR I=A1 TO A2 1036 IF S[2]=I THEN 1040 1037 NEXT I 1038 GOTO 1010 1040 GOSUB 3000 1050 GOTO 1010 1060 N5=N5+1 1070 IF N5>C9 THEN 1100 1075 GOSUB 1300 1080 GOTO 1000 1100 FOR A0=A1 TO A2 1105 GOSUB 5300 1135 A5=0 1137 S7=A0 1140 GOSUB 3100 1142 F5=0 1145 IF END #4 THEN 1230 1150 READ #4;S 1155 IF F5 THEN 1160 1156 F5=1 1157 GOSUB 8000 1160 S1=INT(S/10^5) 1165 S2=INT((S-S1*10^5)/10) 1170 GOSUB 2000 1180 GOTO 1150 1230 NEXT A0 1240 A1=A1+18 1245 A2=A2+18 1250 IF A2 <= A3 THEN 510 1260 END 1300 RESTORE 240 1310 FOR I=1 TO N5 1320 READ A$ 1330 NEXT I 1340 ASSIGN A$,1,W5 1350 READ #1,1 1360 RETURN 2000 C0=S1 2001 GOSUB 3200 2002 R=S2 2003 IF P#5 THEN 2005 2004 R=R-900 2005 IF P=1 THEN 2007 2006 R=R+P[P-1] 2007 GOSUB 4000 2008 IF S1#8 THEN 2035 2010 PRINT "VT06"; 2030 GOTO 2090 2035 Z$="####-### " 2040 X$="0" 2045 X=INT(Q[S1]/1000) 2050 Z[2]=Q[S1]-X*1000 2055 GOTO X OF 2060,2065,2070,2075 2060 Z[1]=2200 2062 GOTO 2080 2065 Z[1]=3000 2067 GOTO 2080 2070 Z[1]=3300 2072 GOTO 2080 2075 Z[1]=3360 2080 GOSUB 9000 2090 PRINT TAB(10); 2095 Z$="#### " 2100 X$="0" 2105 Z[1]=S2 2120 GOSUB 9000 2135 K3=3 2140 X$=" " 2145 Z$="# " 2150 GOSUB 4400 2155 Z$="##/##/## " 2160 X=S[4] 2165 GOSUB 4800 2170 Z[1]=X2 2175 Z[2]=X3 2180 Z[3]=X1+70 2185 IF X1<8 THEN 2195 2190 Z[3]=X1+60 2195 GOSUB 9000 2200 K3=K3+1 2205 Z$="## " 2210 GOSUB 4400 2215 Z$="#### " 2220 GOSUB 4400 2225 Z$="##### " 2230 X$="0" 2235 IF S[K3]#0 THEN 2260 2240 PRINT " "; 2250 K3=K3+1 2255 GOTO 2265 2260 GOSUB 4400 2265 X$=" " 2270 Z$="## " 2275 GOSUB 4400 2280 PRINT " "; 2285 GOSUB 4400 2290 Z$="##M " 2295 IF S5=1 THEN 2305 2300 Z$="##A " 2305 GOSUB 4400 2310 Z$="#### " 2315 K3=K3+1 2320 GOSUB 4400 2325 Z$="###### " 2330 Z[1]=C[R2,7] 2335 GOSUB 9000 2340 Z$="$#### " 2345 Z[1]=S6 2350 GOSUB 9000 2355 Z[1]=S[15] 2360 GOSUB 9000 2365 Z$=" #.##%" 2366 Z[1]=S[16]+S[11]*.01 2367 IF S[16]#0 THEN 2370 2368 Z$=" TE - ##" 2369 Z[1]=S[11] 2370 GOSUB 9000 2380 K=1 2385 GOSUB 9900 2390 P9=P9+2 2395 IF P9<60 THEN 2405 2400 GOSUB 8000 2405 RETURN 3000 S7=S[2] 3002 GOSUB 3100 3005 L1=0 3010 IF END #4 THEN 3030 3012 READ #4;L 3015 L1=L1+1 3020 GOTO 3012 3030 IF L1<353 THEN 3045 3035 PRINT S[2];"MORE THAN 352 UNITS" 3040 STOP 3045 C0=S[1] 3047 GOSUB 3200 3050 S6=S5 3055 IF P=1 THEN 3065 3060 S6=S6-P[P-1] 3065 IF S[1]#5 THEN 3075 3070 S6=S6+900 3075 PRINT #4;(S[1]*10^5+S6*10+S[3]), END 3080 RETURN 3100 X=INT(S7/18) 3105 S7=S7-X*18 3110 IF S7#0 THEN 3130 3120 S7=18 3130 READ #4,((S7-1)*11+1) 3140 RETURN 3200 P=C0 3205 IF C0<9 THEN 3290 3210 P=9 3215 IF C0 <= 16 THEN 3290 3220 P=10 3225 IF C0 <= 23 THEN 3290 3230 P=11 3235 IF C0 <= 27 THEN 3290 3240 P=12 3245 IF C0 <= 29 THEN 3290 3250 P=13 3290 RETURN 4000 REM 4036 X=R/C8 4038 X1=INT(X) 4040 X2=INT((X-X1)*100) 4042 FOR I=1 TO (C8-1) 4044 IF X2=I*25 THEN 4054 4046 NEXT I 4048 R1=X1 4050 R2=C8 4052 GOTO 4058 4054 R1=X1+1 4056 R2=I 4058 FOR N5=1 TO C9 4060 IF R1<201 THEN 4100 4062 R1=R1-200 4065 NEXT N5 4067 PRINT "ERR IN P"; 4068 STOP 4100 B1=0 4101 GOSUB 1300 4102 MAT READ #1,R1;C 4105 IF C[R2,1]=-1 THEN 4195 4107 B1=1 4110 J=1 4111 FOR I=1 TO 9 STEP 4 4112 S5=SGN(C[R2,J]) 4113 C[R2,J]=ABS(C[R2,J]) 4114 S[I]=INT(C[R2,J]/10^4) 4115 S[I+1]=C[R2,J]-S[I]*10^4 4116 IF I#9 THEN 4119 4117 S[I+1]=INT(S[I+1]/100) 4118 S[I+2]=C[R2,J]-S[I]*10^4-S[I+1]*100 4119 J=J+2 4120 NEXT I 4122 S[3]=INT(C[R2,2]/10^5) 4125 S[4]=C[R2,2]-S[3]*10^5 4145 S[7]=INT(C[R2,4]/10) 4150 S[8]=C[R2,4]-S[7]*10 4170 S[12]=INT(C[R2,6]/100) 4175 S[13]=C[R2,6]-S[12]*100 4180 S[14]=INT(C[R2,8]/10^5) 4185 S[15]=INT((C[R2,8]-S[14]*10^5)/10) 4187 S[16]=C[R2,8]-S[14]*10^5-S[15]*10 4190 S6=S[13]*10+S[14] 4195 RETURN 4400 Z[1]=S[K3] 4405 K3=K3+1 4410 GOSUB 9000 4420 RETURN 4700 J=1 4705 Z$="" 4710 FOR I=I1 TO LEN(T$) 4715 F2=1 4720 IF T$[I,I]='17 THEN 4780 4725 F2=2 4730 IF T$[I,I]='18 THEN 4780 4735 Z$[J,J]=T$[I,I] 4740 J=J+1 4742 IF B3 THEN 4765 4745 IF T$[I,I]="." THEN 4755 4750 IF T$[I,I]#"," THEN 4765 4755 Z$[J,J]=" " 4760 J=J+1 4765 NEXT I 4770 F2=3 4780 RETURN 4800 X1=INT(X/10^4) 4810 X2=INT((X-X1*10^4)/100) 4820 X3=X-X1*10^4-X2*100 4830 RETURN 4900 X=INT(D[M1,1]/100) 4902 READ #3,4 4905 FOR J1=1 TO 52 4907 READ #3;X1 4910 IF X= 0 THEN 9033 9031 PRINT "-"; 9032 GOTO 9034 9033 PRINT " "; 9034 LET Z6=ABS(Z6)+10^(Z-Z9-1) 9035 FOR Z1=Z-Z0 TO Z+1-Z9 STEP -1 9036 IF Z$[Z-Z1,Z-Z1]#"." THEN 9041 9037 PRINT "."; 9038 LET Z3=0 9039 LET Z7=2 9040 GOTO 9055 9041 LET Z8=INT(Z6/(10^(Z1+Z7-2))) 9042 IF Z6<10^(Z-Z0) THEN 9045 9043 PRINT "#"; 9044 GOTO 9055 9045 LET Z6=Z6-Z8*10^(Z1+Z7-2) 9046 IF Y$[Z8+1,Z8+1]="0" THEN 9048 9047 LET Z3=0 9048 IF Z3=0 THEN 9054 9049 IF Z1#1 THEN 9052 9051 GOTO 9055 9052 PRINT X$; 9053 GOTO 9055 9054 PRINT Y$[Z8+1,Z8+1]; 9055 NEXT Z1 9056 LET Z3=Z4=Z5=Z7=1 9057 LET Z2=Z2+1 9058 GOTO 9006 9059 RETURN 9900 GOSUB 6000 9910 FOR I=1 TO K 9915 PRINT 9930 NEXT I 9940 RETURN 9950 END