* INCS.CMD - Income Statement (Profit and Loss Statement) * STORE TRIM(TITLE) TO MTITLE ERASE @ 1,10 SAY TMARK + " " + CNAME SET INTE OFF @ 3,10 SAY MTITLE SET INTE ON STORE " " TO EDATE @ 5,10 SAY "You may print this report as of a certain date. Transactions" @ 6,10 SAY "dated after this date will not be included. Enter date as (MM/DD/YY)" @ 7,10 SAY "or just a RETURN if you do not wish to limit the report. " ; GET EDATE PICTURE "99/99/99" READ IF EDATE = " / / " STORE "99/99/99" TO TDATE ELSE STORE $(EDATE,7,2) + $(EDATE,1,5) TO TDATE ENDIF STORE " " TO HEADING @ 9,10 SAY "You may now enter a report heading for later identification." @ 10,10 SAY "RETURN only for no heading. " GET HEADING READ @ 12,10 SAY "Please ensure that your printer is ready to print." STORE " " TO READY @ 13,10 SAY "Enter (P)rint or (Q)uit followed by RETURN " GET READY READ IF !(READY) = "Q" RETURN ENDIF @ 16,10 SAY "Your report is now printing!" SELECT SECONDARY USE DATRAN INDEX DATRAN1 SELECT PRIMARY USE DAACCT INDEX DAACCT1 FIND &FIRSTINC STORE 0.00 TO YTOT:MAJ STORE 0.00 TO YTOT:MIN STORE 0.00 TO CTOT:MAJ STORE 0.00 TO CTOT:MIN SET FORMAT TO PRINT STORE 66 TO ROW STORE "INCOME" TO ATITLE STORE " " TO OLD:TYPE DO WHILE .NOT. EOF IF ROW > 56 EJECT @ 1,25 SAY CNAME @ 2,25 SAY MTITLE @ 4,25 SAY HEADING @ 6,1 SAY ATITLE @ 6,49 SAY "Current Year-to-date" STORE 6 TO ROW ENDIF IF ACCT:TYPE <> OLD:TYPE IF OLD:TYPE <> " " STORE ROW + 2 TO ROW @ ROW,1 SAY "Total " + OLD:TYPE IF ATITLE = "EXPENSES" @ ROW,40 SAY CTOT:MIN USING ' 999,999,999.99' @ ROW,57 SAY YTOT:MIN USING ' 999,999,999.99' ELSE @ ROW,40 SAY (CTOT:MIN * -1) USING ' 999,999,999.99' @ ROW,57 SAY (YTOT:MIN * -1) USING ' 999,999,999.99' ENDIF STORE CTOT:MAJ + CTOT:MIN TO CTOT:MAJ STORE 0.00 TO CTOT:MIN STORE YTOT:MAJ + YTOT:MIN TO YTOT:MAJ STORE 0.00 TO YTOT:MIN IF ACCT:NUMB > LASTINC .AND. ATITLE = "INCOME" STORE ROW + 2 TO ROW @ ROW,40 SAY " -----------" @ ROW,57 SAY " -----------" STORE ROW +1 TO ROW @ ROW,01 SAY "TOTAL INCOME" @ ROW,40 SAY (CTOT:MAJ * -1) USING ' 999,999,999.99' @ ROW,57 SAY (YTOT:MAJ * -1) USING ' 999,999,999.99' STORE (CTOT:MAJ * -1) TO CUR:INC STORE (YTOT:MAJ * -1) TO YTD:INC STORE "EXPENSES" TO ATITLE STORE 0.00 TO CTOT:MAJ STORE 0.00 TO YTOT:MAJ IF ROW > 44 EJECT @ 1,25 SAY CNAME @ 2,25 SAY MTITLE @ 4,25 SAY HEADING @ 6,1 SAY ATITLE @ 6,49 SAY "Current Year-to-date" STORE 6 TO ROW ELSE STORE ROW + 3 TO ROW @ ROW,1 SAY ATITLE ENDIF ENDIF ENDIF STORE ACCT:TYPE TO OLD:TYPE STORE ROW + 1 TO ROW IF ROW > 50 EJECT @ 1,25 SAY CNAME @ 2,25 SAY MTITLE @ 4,25 SAY HEADING @ 6,1 SAY ATITLE @ 6,49 SAY "Current Year-to-date" STORE 6 TO ROW ENDIF STORE ROW + 1 TO ROW @ ROW,1 SAY OLD:TYPE STORE ROW + 1 TO ROW ENDIF STORE ACCT:NUMB TO ACCT STORE ROW + 1 TO ROW @ ROW,04 SAY ACCT:NAME STORE 0.00 TO CBAL STORE AMOUNT TO YBAL SELECT SECONDARY FIND &ACCT IF # = 0 ELSE DO WHILE ACCT:NUMB = ACCT .AND. .NOT. EOF IF $(PDATE,7,2) + $(PDATE,1,5) > TDATE SKIP LOOP ENDIF STORE CBAL + AMOUNT TO CBAL STORE YBAL + AMOUNT TO YBAL SKIP ENDDO ENDIF IF ATITLE = "EXPENSES" @ ROW,40 SAY CBAL USING ' 999,999,999.99' @ ROW,57 SAY YBAL USING ' 999,999,999.99' ELSE @ ROW,40 SAY (CBAL * -1) USING ' 999,999,999.99' @ ROW,57 SAY (YBAL * -1) USING ' 999,999,999.99' ENDIF STORE CTOT:MIN + CBAL TO CTOT:MIN STORE YTOT:MIN + YBAL TO YTOT:MIN SELECT PRIMARY SKIP ENDDO EOF STORE ROW + 2 TO ROW @ ROW,1 SAY "Total " + OLD:TYPE @ ROW,40 SAY CTOT:MIN USING ' 999,999,999.99' @ ROW,57 SAY YTOT:MIN USING ' 999,999,999.99' STORE CTOT:MAJ + CTOT:MIN TO CTOT:MAJ STORE YTOT:MAJ + YTOT:MIN TO YTOT:MAJ STORE ROW + 2 TO ROW @ ROW,40 SAY " -----------" @ ROW,57 SAY " -----------" STORE ROW +1 TO ROW @ ROW,01 SAY "TOTAL EXPENSES" @ ROW,40 SAY CTOT:MAJ USING ' 999,999,999.99' @ ROW,57 SAY YTOT:MAJ USING ' 999,999,999.99' STORE ROW + 2 TO ROW @ ROW,40 SAY " -----------" @ ROW,57 SAY " -----------" STORE ROW +1 TO ROW @ ROW,1 SAY "NET PROFIT (LOSS)" @ ROW,40 SAY (CUR:INC - CTOT:MAJ) USING ' 999,999,999.99' @ ROW,57 SAY (YTD:INC - YTOT:MAJ) USING ' 999,999,999.99' STORE ROW + 1 TO ROW @ ROW,40 SAY " ===========" @ ROW,57 SAY " ===========" EJECT FIND &YTDEARN REPLACE AMOUNT WITH (YTOT:MAJ-YTD:INC) SET FORMAT TO SCREEN RETURN