home *** CD-ROM | disk | FTP | other *** search
- * CHKREG.PRG
- * This program uses a Lotus 1-2-3 file, CITI.WK1, to manipulate the
- * information in the check register.
- * Will print the register in check number order
- * Will sort the register on the following fields:
- * Ref-no, Date, Payee, Memo
-
- SET PROCEDURE TO SCREENS
-
- USE CHECK
- STORE "S" TO MDEVICE
- STORE 7 TO MSELECT
- STORE 0 TO MLINE, MBALANCE
- STORE SPACE(20) TO MPAYEE
- STORE SPACE(19) TO MMEMO
- SUM DEPOSITS - CHECKS FOR OS = 1 TO MOUTST && CALC O/S CHECKS
- SET DELETE ON
- DO WHILE .T.
- CLEAR
- DO MENUDRAW
-
- @ 3,20 SAY " Check Register Printout & Analysis "
- @ 6,5 SAY " 1) Print Register in Date Order "
- @ 7,5 SAY " 2) Print Register in Check Number Order "
- @ 8,5 SAY " 3) Print Register by Payee "
- @ 9,5 SAY " 4) Print Register by Category "
- @ 10,5 SAY " 5) Print a Payee Extract "
- @ 11,5 SAY " 6) Print a Category Extract "
- @ 13,5 SAY " 7) Exit To Main Menu "
- @ 19,5 SAY " Enter Selection " GET MSELECT PICTURE "9" RANGE 1,7
- READ
- CLEAR
-
- IF MSELECT = 7
- EXIT
- ENDIF
-
- IF MSELECT = 5
- @ 5,5 SAY " Enter Payee to Extract " GET MPAYEE PICTURE "@!"
- READ
- DELETE ALL FOR .NOT. TRIM(MPAYEE) $PAYEE
- ENDIF
-
- IF MSELECT = 6
- @ 5,5 SAY "Enter Category to Extract " GET MMEMO PICTURE "@!"
- READ
- DELETE ALL FOR .NOT. TRIM(MMEMO) $MEMO
- ENDIF
-
- && RANGE SELECTION ROUTINE
- MBEGIN = "01/01/86"
- EDATE = "12/31/87"
-
- CLEAR
- @ 11,3 TO 15,70
- @ 12,5 SAY "Begining date (enter as MM/DD/YY)" GET MBEGIN PICTURE "99/99/99"
- @ 14,5 SAY "Ending date (enter as MM/DD/YY)" GET EDATE PICTURE "99/99/99"
- CLEAR TYPEAHEAD
- READ
- CLEAR
-
- @ 10,3 TO 14,70
- @ 12,15 SAY "Output to the (S)creen or (P)rinter ? " GET MDEVICE picture "!"
- READ
- CLEAR
- @ 10,3 TO 14,70
- @ 12,15 SAY " Processing Occurring . . . Please Wait "
-
- IF MDEVICE <> "P" .AND. MDEVICE <> "S"
- MDEVICE = "S"
- ENDIF
-
- SUM (DEPOSITS-CHECKS) FOR DATE < CTOD(MBEGIN) TO MBALANCE && }to get prior period's balance
- SET FILTER TO DATE >= CTOD(MBEGIN) .AND. DATE <= CTOD(EDATE)
-
- SET ESCAPE OFF
- SET SAFETY OFF
- IF MSELECT = 1 .OR. MSELECT = 5 .OR. MSELECT = 6
- * SET INDEX TO DATE,REF,PAYEE,MEMO
- SORT ON DATE,REF,PAYEE TO CHECKTMP
- ENDIF
- IF MSELECT = 2
- * SET INDEX TO REF,DATE,PAYEE,MEMO
- SORT ON REF, DATE, PAYEE TO CHECKTMP
- ENDIF
- IF MSELECT = 3
- * SET INDEX TO PAYEE,DATE,REF,MEMO
- SORT ON PAYEE, DATE, REF TO CHECKTMP
- ENDIF
- IF MSELECT = 4
- * SET INDEX TO MEMO,DATE,REF,PAYEE
- SORT ON MEMO, DATE, REF, PAYEE TO CHECKTMP
- ENDIF
-
- SET DELETE OFF
- RECALL ALL
- SET ESCAPE TO RETURN
- SET SAFETY ON
- USE CHECKTMP
- CLEAR
- DO WHILE .NOT. EOF()
- IF MDEVICE = "P"
- SET PRINT ON
- IF MLINE = 0
- IF MSELECT = 3 .OR. MSELECT = 4 .OR. MSELECT = 5 .OR. MSELECT = 6
- ? " ",DATE()
- ? " REF DATE O/S PAYEE / MEMO DEPOSITS CHECKS "
- ?
- ENDIF
- IF MSELECT = 1 .OR. MSELECT = 2
- ? " ",DATE()
- ? " REF DATE O/S PAYEE / MEMO DEPOSITS CHECKS BALANCE"
- ?
- ENDIF
- ENDIF
- MLINE = MLINE + 2 && LINE COUNTER FOR FORM FEED
- IF MLINE > 60 && FORMFEED
- EJECT &&
- ? " REF DATE O/S PAYEE / MEMO DEPOSITS CHECKS BALANCE"
- ?
- MLINE = 1 &&
- ENDIF
- ENDIF
-
- MBALANCE = MBALANCE + DEPOSITS - CHECKS
- IF MSELECT <> 1 .AND. MSELECT <> 2
- ? REF, DATE, OS, PAYEE, DEPOSITS, CHECKS
- ? " ",MEMO
- ENDIF
- IF MSELECT = 1 .OR. MSELECT = 2
- ? REF, DATE, OS, PAYEE, DEPOSITS, CHECKS, MBALANCE
- ? " ",MEMO
- ENDIF
- SKIP
- ENDDO
-
- IF MSELECT <> 5 .AND. MSELECT <> 6
- IF MLINE >56
- EJECT
- ENDIF
- ?
- ?
- ? "Balance per Check Register (Your Balance) = $",STR(MBALANCE,9,2)
- ?
- ? "Balance per Bank (Your balance less items O/S) $",STR(MBALANCE-MOUTST,9,2)
- ?
- ENDIF
- IF MDEVICE = "P" && TO HOLD PREVIOUS SELECTION
- EJECT
- STORE "P" TO MDEV
- ENDIF
- IF MDEVICE = "S"
- STORE "S" TO MDEV
- ENDIF
- SET PRINT OFF
- CLEAR TYPEAHEAD
- ACCEPT "Do you want to print the outstanding checks ? " TO MPRINTCKS
- IF MDEV = "P"
- SET PRINT ON
- ENDIF
- IF MPRINTCKS = "Y" .OR. MPRINTCKS = "y"
- USE CHECK && NEED ALL TRANSACTIONS AVAILABLE
- GO TOP
- ? " Outstanding Checks as of ",DATE()
- ?
- DO WHILE .NOT. EOF()
- IF OS = 1
- ? REF, DATE, OS, PAYEE, DEPOSITS, CHECKS
- ? " ",MEMO
- ENDIF
- SKIP
- ENDDO
- ? " ======="
- ? "Total checks outstanding ", MOUTST
- ENDIF
-
- IF MDEVICE = "P"
- EJECT
- ENDIF
- SET PRINT OFF
- MDEVICE = "S"
- CLEAR TYPEAHEAD
- WAIT
- CLEAR
- @ 11,3 TO 13,70
- @ 12,8 SAY " Closing Files . . . Please Wait "
- CLOSE DATABASES
- USE CHECK && RETURN TO MASTER FILE
-
- MSELECT = 7
- CLEAR
- ENDDO
-
- RETURN