2 ! PRINT EXPENDITURE REPORT BY PROGRAM FOR GENERAL FUND. 5 ! PROGRAM NAME:"GFPMEX" BY JAC 8 ON ERROR GOTO 500 10 OPEN "DK1:GLFILE.GFD" AS FILE 1%:DIM #1%,R$(2600%)=64%:N%=VAL(R$(0%)) 12 PRINT "INPUT DATE FOR EXP. REPORT";:INPUT LINE D1$:D1$=LEFT(D1$,LEN(D1$)-2%) 15 OPEN "LP:" FOR OUTPUT AS FILE 2%,MODE 66%:DIM A(2%),T(2%),F(2%),T1(2%) 20 OPEN "DK1:GLFILE.PGM" AS FILE 3%:DIM #3%,P$(300%)=32%,P%(0%):P%=P%(0%) 22 T(R%),T1(R%),F(R%)=0% FOR R%=0% TO 2% 25 Q$="#,###,###.##":Q1$="###.##%":J%=0%:H%=1%:S$=SPACE$(16%): S1$=SPACE$(14%)+"* " 30 PRINT "INPUT PROGRAM CODE PARAMETERS.":INPUT "LOW CODE";P1$,"HIGH CODE";P2$: M%=0% 35 K%=M%+1%:IF K%>N% THEN 75 ELSE P$=MID(R$(K%),7%,4%):Z%=1% 40 GOTO 45 IF MID(R$(I%),7%,4%)<>P$ FOR I%=K% UNTIL I%>N% 45 M%=I%-1%:IF P$P2$ THEN K%=M%+1%:IF K%>N% OR P$>P2$ THEN 75 ELSE 35 50 T$=MID(R$(K%),11%,4%):IF T$<"0100" OR T$>="1800" THEN K%=K%+1%: IF K%>M% OR T$>="1800" THEN 35 ELSE 50 52 GOTO 54 IF LEFT(P$(I%),4%)=P$ FOR I%=H% UNTIL P$M% THEN 70 ELSE T$=MID(R$(K%),11%,4%): IF T$>="1800" THEN 70 ELSE IF T$=X$ THEN 60 ELSE GOSUB 300:GOTO 60 70 GOSUB 300:GOSUB 350:GOTO 35 75 H%=0%:P$(H%)=SPACE$(32%):GOSUB 400:PRINT #2%,TAB(32%); "***FINAL TOTALS***";TAB(56%); 80 T(R%)=F(R%) FOR R%=0% TO 2% 85 GOSUB 250:CLOSE 1%,2%,3%:STOP 200 C$=LEFT(R$(K%),3%)+"-"+MID(R$(K%),4%,2%)+"-"+MID(R$(K%),6%,1%)+"-"+ MID(R$(K%),7%,4%)+"-"+MID(R$(K%),11%,4%)+"."+MID(R$(K%),15%,2%) 205 D$=MID(R$(K%),17%,21%):A(0%)=VAL(MID(R$(K%),56%,8%)): A(1%)=VAL(MID(R$(K%),38%,10%)):A(2%)=VAL(MID(R$(K%),48%,8%)): X$=MID(R$(K%),11%,4%) 210 PRINT #2%,TAB(8%);C$;" ";D$;" ";:A(0%)=A(0%)*100% 215 FOR R%=0% TO 2%:IF A(R%)=0% THEN PRINT #2%,S$;:GOTO 230 220 IF A(R%)<0% THEN Z$="CR " ELSE Z$=" " 225 PRINT #2%,USING Q$+Z$,ABS(A(R%))/100%; 230 NEXT R%:IF A(0%)=0% THEN 240 ELSE B=A(0%)-A(1%)-A(2%): IF B<0% THEN Z$="CR" ELSE Z$=" " 235 PRINT #2%,USING Q$+Z$,ABS(B)/100%; 240 T(R%)=T(R%)+A(R%) FOR R%=0% TO 2% 245 PRINT #2%:GOSUB 450:RETURN 250 FOR R%=0% TO 2%:IF T(R%)=0% THEN PRINT #2%,S1$;:GOTO 265 255 IF T(R%)<0% THEN Z$="CR* " ELSE Z$=" * " 260 PRINT #2%,USING Q$+Z$,ABS(T(R%))/100%; 265 NEXT R%:IF T(0%)=0% THEN 275 ELSE B=T(0%)-T(1%)-T(2%): IF B<0% THEN Z$="CR* " ELSE Z$=" * " 270 P=((T(1%)+T(2%))/T(0%))*100%:PRINT #2%,USING Q$+Z$+Q1$,ABS(B)/100%,P; 275 T(R%)=0% FOR R%=0% TO 2% 280 PRINT #2%:PRINT #2%:RETURN 300 T1(R%)=T1(R%)+T(R%) FOR R%=0% TO 2% 305 PRINT #2%,TAB(53%);:GOSUB 250:L%=L%+1%:GOSUB 450:RETURN 350 F(R%)=F(R%)+T1(R%) FOR R%=0% TO 2% 355 T(R%)=T1(R%) FOR R%=0% TO 2% 360 T1(R%)=0% FOR R%=0% TO 2% 365 PRINT #2%:PRINT #2%,TAB(32%);"*PROGRAM TOTALS*";TAB(53%);:GOSUB 250:RETURN 400 PRINT #2%,CHR$(129%):J%=J%+1%:L%=0% 405 PRINT #2%,TAB(8%);"GENERAL FUND";TAB(53%);"EXPENDITURE REPORT BY PROGRAM"; TAB(88%);D1$;TAB(118%);"PAGE ";J% 410 PRINT #2%,TAB(48%);"PROGRAM ";LEFT(P$(H%),4%);"-";RIGHT(P$(H%),5%) 415 PRINT #2%,TAB(15%);"EXPENSE";TAB(59%);"BUDGET";TAB(73%); "EXPENDED OBLIGATED BUDGET PERCENT" 420 PRINT #2%,TAB(16%);"CODE";TAB(36%);"DESCRIPTION";TAB(59%); "AMOUNT AMOUNT AMOUNT BALANCE"; TAB(119%);"SPENT":PRINT #2%:RETURN 450 L%=L%+1%:IF L%>52% THEN GOSUB 400 455 RETURN 500 IF ERR<>8% OR ERR<>14% THEN ON ERROR GOTO 0 ELSE PRINT "WAITING FOR LP:":SLEEP 30%:RESUME 510 END