2 ! PRINTS GENERAL LEDGER REPORT. 5 ! PROGRAM NAME:"PRTGLR" - BY JAC 10 PRINT "INPUT DATE FOR GENERAL LEDGER";:INPUT LINE D3$ 15 OPEN "LP:" FOR OUTPUT AS FILE 1%,RECORDSIZE 512,MODE 66% 20 OPEN "DK1:GLFILE.GLR" AS FILE 2%:DIM #2%,R$(8000%)=64% 25 OPEN "DK1:GLFILE.FND" AS FILE 3%:DIM #3%,F$(20%)=32%,F%(0%) 30 OPEN "DK1:GLFILE.TMT" AS FILE 4%:DIM #4%,G1$(4000%)=64%,G1%(0%) 32 OPEN "DK1:GLFILE.BDT" AS FILE 5%:DIM #5%,B$(600%)=32%,B%(0%) 35 G1%(0%)=0%:DIM A(2%),T1(2%),T2(2%),T3(2%),T4(2%):Q$="#,###,###.##" 38 ON ERROR GOTO 1500:B$(0%)=SPACE$(32%):D3$=LEFT(D3$,LEN(D3$)-2%) 40 DEF FNZ$(A,B%):B%=B%+1% 45 IF ABS(A)<1E+6 THEN A5$=LEFT(NUM$(A)+SPACE$(B%-LEN(NUM$(A))),B%):GOTO 65 50 A1=FIX(A/1E+6):A2=((A/1E+6)-A1)*1E+6:A3$=NUM$(A1):A4$=RIGHT(NUM$(A2),2%) 55 IF LEN(A4$)<7% THEN A4$="0"+A4$:GOTO 55 60 A3$=LEFT(A3$,INSTR(2%,A3$," ")-1%)+A4$:A5$=LEFT(A3$+SPACE$(B%-LEN(A3$)),B%) 65 IF A<0% THEN FNZ$=LEFT(A5$,B%-1%) ELSE FNZ$=RIGHT(A5$,2%) 70 FNEND 75 O%=F%(0%):I%=1%:J%=1%:F$(0%)=SPACE$(32%):GOSUB 1000:M%=VAL(R$(0%)) 78 N%=B%(0%):B%=1%:G%=0%:S$=SPACE$(15%):S1$=SPACE$(14%)+"*" 80 IF MID(R$(I%),4%,2%)=" " THEN GOSUB 1300:PRINT #1%:I%=I%+1%:GOTO 80 85 T1(S%)=0% FOR S%=0% TO 2% 90 F1$=MID(R$(I%),4%,2%):F%=K%:Z%=-1% 91 GOTO 95 IF F1$=LEFT(F$(K%),2%) FOR K%=F% UNTIL LEFT(F$(K%),2%)>F1$ 92 F%=1%:K%=0%:F$(0%)=" FUND "+F1$ 95 IF MID(R$(I%),4%,2%)<>F1$ THEN GOSUB 1400:GOTO 90 100 IF Z% THEN J%=J%+1%:L%=0%:GOSUB 1000 105 B$=MID(R$(I%),11%,4%):F$=RIGHT(R$(I%),64%) 110 IF F$="M" OR F$="O" THEN GOSUB 1100:I%=I%+1%:GOTO 175 115 GOTO 120 IF MID(R$(I%),11%,6%)=LEFT(B$(R%),6%) FOR R%=B% UNTIL R%>N% 120 IF R%<=N% THEN B%=R%:GOTO 140 125 PRINT #1%,TAB(6%);"**NO MASTER FILE ENTRY**":L%=L%+1%:B%=1%:GOSUB 1050:R%=0% 140 D$=MID(B$(R%),7%,21%):F$="M" 150 A(S%)=0% FOR S%=0% TO 2% 155 C$=LEFT(R$(I%),3%)+"-"+MID(R$(I%),4%,2%)+"-"+MID(R$(I%),6%,1%)+"-" 160 C$=C$+MID(R$(I%),7%,4%)+"-"+MID(R$(I%),11%,4%)+"."+MID(R$(I%),15%,2%) 165 GOSUB 1125:GOSUB 1300:I%=I%+1% 175 IF I%>M% THEN GOSUB 1200:GOSUB 1450:GOSUB 1400:GOTO 200 180 IF LEFT(R$(I%-1%),16%)=LEFT(R$(I%),16%) THEN GOSUB 1300:I%=I%+1%:GOTO 175 185 GOSUB 1200:IF B$=MID(R$(I%),11%,4%) AND F1$=MID(R$(I%),4%,2%) THEN 105 190 GOSUB 1450:GOTO 95 200 PRINT #1%:PRINT #1%,TAB(26%);"****FINAL TOTAL****";TAB(72%); 205 T1(S%)=T4(S%) FOR S%=0% TO 2% 210 GOSUB 1225:PRINT #1%,CHR$(131%):G1%(0%)=G%:CLOSE 1%,2%,3%,4%,5%:STOP 1000 PRINT #1%,CHR$(131%):Z%=0% 1005 PRINT #1%,TAB(6%);RIGHT(F$(K%),3%);TAB(46%);"GENERAL LEDGER"; 1010 PRINT #1%,TAB(86%);D3$;TAB(114%);"PAGE ";J%:PRINT #1% 1015 PRINT #1%,TAB(14%);"CODE";TAB(29%);"D E S C R I P T I O N"; 1020 PRINT #1%,TAB(53%);"P.O. REF. DATE C BUDGET AMOUNT"; 1025 PRINT #1%," AMOUNT BUDGET" 1030 PRINT #1%,TAB(6%);"LOC FD L PROG BUDG SF";TAB(53%);"NO. NO. MO-DY "; 1035 PRINT #1%,"C AMOUNT EXPENDED OBLIGATED BALANCE" 1040 PRINT #1%:RETURN 1050 L%=L%+1%:IF L%>=52% THEN J%=J%+1%:L%=0%:GOSUB 1000 1060 RETURN 1100 C$=LEFT(R$(I%),3%)+"-"+MID(R$(I%),4%,2%)+"-"+MID(R$(I%),6%,1%)+"-" 1105 C$=C$+MID(R$(I%),7%,4%)+"-"+MID(R$(I%),11%,4%)+"."+MID(R$(I%),15%,2%) 1110 D$=MID(R$(I%),17%,21%):A(1%)=VAL(MID(R$(I%),38%,10%)):C4$=MID(C$,15%,1%) 1112 IF C4$>"1" THEN W%=2% ELSE W%=0% 1115 A(0%)=VAL(MID(R$(I%),56%+W%,8%-W%)):A(0%)=A(0%)*100% 1125 PRINT #1%,TAB(6%);C$;" ";D$:PRINT #1%,TAB(28%);"BALANCE FORWARD";TAB(72%); 1130 FOR S%=0% TO 1% 1132 IF A(S%)=0% THEN PRINT #1%,S$;:GOTO 1140 1135 PRINT #1%,USING Q$,ABS(A(S%))/100%; 1138 IF A(S%)<0% THEN PRINT #1%,"CR "; ELSE PRINT #1%," "; 1140 NEXT S% 1175 PRINT #1%:L%=L%+1%:GOSUB 1050 1180 T1(S%)=T1(S%)+A(S%) FOR S%=0% TO 1% 1190 RETURN 1200 PRINT #1%,TAB(11%);"*NEW BALANCE*";TAB(72%); 1205 IF T1(0%)=0% AND T1(1%)=0% AND T1(2%)=0% THEN 1220 1210 G%=G%+1%:T1=FIX(T1(0%)/100%):C3$=LEFT(C$,3%)+MID(C$,5%,2%)+MID(C$,8%,1%) 1212 C3$=C3$+MID(C$,10%,4%)+MID(C$,15%,4%)+RIGHT(C$,20%):C4$=MID(C$,15%,1%) 1213 IF C4$>"1" THEN W%=2% ELSE W%=0% 1215 G1$(G%)=C3$+D$+FNZ$(T1(1%),10%)+FNZ$(T1(2%),8%+W%)+FNZ$(T1,8%-W%)+F$ 1220 T2(S%)=T2(S%)+T1(S%) FOR S%=0% TO 2% 1222 GOSUB 1225:L%=L%+1%:GOSUB 1050:RETURN 1225 FOR S%=0% TO 2% 1230 IF T1(S%)=0% THEN PRINT #1%,S1$;:GOTO 1245 1235 PRINT #1%,USING Q$,ABS(T1(S%))/100%; 1240 IF T1(S%)<0% THEN PRINT #1%,"CR*"; ELSE PRINT #1%," *"; 1245 NEXT S% 1250 IF T1(0%)=0% THEN 1265 1255 T=T1(0%)-T1(1%)-T1(2%):PRINT #1%,USING Q$,ABS(T)/100%; 1260 IF T<0% THEN PRINT #1%,"CR*"; ELSE PRINT #1%," *"; 1265 PRINT #1%:PRINT #1% 1270 T1(S%)=0% FOR S%=0% TO 2% 1275 RETURN 1300 C1$=LEFT(R$(I%),3%)+"-"+MID(R$(I%),4%,2%)+"-"+MID(R$(I%),6%,1%)+"-" 1305 C1$=C1$+MID(R$(I%),7%,4%)+"-"+MID(R$(I%),11%,4%)+"."+MID(R$(I%),15%,2%) 1310 D2$=MID(R$(I%),17%,2%)+"-"+MID(R$(I%),19%,2%):D1$=MID(R$(I%),21%,22%) 1315 P$=MID(R$(I%),43%,5%)+" "+MID(R$(I%),48%,5%):C2$=MID(R$(I%),53%,1%) 1320 F3$=MID(R$(I%),54%,1%):A=VAL(MID(R$(I%),55%,10%)) 1325 PRINT #1%,TAB(6%);C1$;" ";D1$;" ";P$;" ";D2$;" ";C2$;" "; 1330 IF F3$<>"B" THEN PRINT #1%,S$;:GOTO 1340 1335 PRINT #1%,USING Q$,ABS(A);:T1(0%)=T1(0%)+A*100%:GOSUB 1390:GOTO 1375 1340 IF F3$<>"E" THEN PRINT #1%,S$;:GOTO 1365 1345 PRINT #1%,USING Q$,ABS(A)/100%;:T1(1%)=T1(1%)+A:GOSUB 1390:GOTO 1375 1365 PRINT #1%,USING Q$,ABS(A)/100%;:GOSUB 1390:T1(2%)=T1(2%)+A 1375 PRINT #1%:GOSUB 1050:RETURN 1390 IF A<0% THEN PRINT #1%,"CR "; ELSE PRINT #1%," "; 1395 RETURN 1400 PRINT #1%:PRINT #1%,TAB(21%);"***FUND TOTALS***";TAB(72%); 1405 T1(S%)=T3(S%) FOR S%=0% TO 2% 1410 GOSUB 1225:B%=1% 1415 T4(S%)=T4(S%)+T3(S%) FOR S%=0% TO 2% 1420 T3(S%)=0% FOR S%=0% TO 2% 1425 RETURN 1450 PRINT #1%,TAB(16%);"**BUDGET TOTALS**";TAB(52%); 1455 IF T2(0%)=0% THEN 1470 1460 P=((T2(1%)+T2(2%))/T2(0%))*100% 1465 PRINT #1%,USING "###.#\ \",P,"% SPENT"; 1470 PRINT #1%,TAB(72%); 1475 T1(S%)=T2(S%) FOR S%=0% TO 2% 1480 GOSUB 1225 1485 T3(S%)=T3(S%)+T2(S%) FOR S%=0% TO 2% 1490 T2(S%)=0% FOR S%=0% TO 2% 1495 PRINT #1%:L%=L%+2%:GOSUB 1050:RETURN 1500 IF ERR<>8% AND ERR<>14% THEN ON ERROR GOTO 0 1505 PRINT "WAITING FOR LP:":SLEEP(15%):PRINT #1%:PRINT #1%:SLEEP(15%):RESUME 1510 END