@@ @@ @@ @@ @@ @@ @@ @@@@@@ @@@@@@@ @@@@@@ @@@@@@ @ @@@ @@@@@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@@@@@@@ @@ @@ @@ @@ @@@@@@@@ @@ @@@@@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@@@@@@@@ @@@@@@ @@@@@ @ @@@@@@@ @@@@@@ @@ @@@@@@ @@ @@@@@@@@ - V e r s i o n 2 . 1 - A dBASEII Personal Record Keeping Database System Copyright (c) 1985, by n/SYSTEMS 21460 Bear Creek Road, Los Gatos, CA 95030 LEDGERS Version 2.1 -- a dBASEII Personal Record Keeping Database System. Written for dBASEII Version 2.4 or above by Terry Hazen. LEDGERS.LBR and all the files contained therein are Copyright (c) 1985, by n/SYSTEMS, Los Gatos, CA 95030. They may be used free- ly, but may not be sold, included in a package for sale, or used as an incentive to buy, by any person, organization or corpora- tion without prior arrangement with the copyright holder, n/SYSTEMS. Furthermore, neither n/SYSTEMS nor the author, Terry Hazen, will bear any responsibility for losses resulting from the use or inability to use this program. LEDGERS.LBR may not be distributed without LEDGERS.DOC, nor may the copyright messages be removed from any of the files contained therein nor caused to not be displayed. The command files in LEDGERS.LBR are supplied in a "stripped" format with all comments, blank lines, and leading spaces removed to reduce their size and increase operating speed. LEDGERS is user-supported software. A great many hours have gone into designing and developing LEDGERS. If, after using LEDGERS for awhile, you feel that it is software that is useful to you and that you would like to support, I encourage you to send a contribution of $35. Contributions, comments, questions, and suggestions may be sent to: Terry Hazen 21460 Bear Creek Road Los Gatos, CA 95030 dBASEII is a trademark of Ashton-Tate CP/M is a trademark of Digital Research T A B L E O F C O N T E N T S Chapter 1 INTRODUCTION 1.1 System Requirements . . . . . . . . . . . . . . . . . . 1-1 1.2 LEDGERS Description . . . . . . . . . . . . . . . . . . 1-1 Chapter 2 OVERVIEW OF LEDGERS 2.1 The Structure of LEDGERS . . . . . . . . . . . . . . . 2-1 2.1.1 LEDGERS Command Files. . . . . . . . . . . . . . 2-1 2.1.2 LEDGERS Database Files . . . . . . . . . . . . . 2-1 2.2 The Active Ledger . . . . . . . . . . . . . . . . . . . 2-2 2.3 The LEDGERS Display . . . . . . . . . . . . . . . . . . 2-2 2.4 Ledger Transaction Entries . . . . . . . . . . . . . . 2-3 2.4.1 Check Number . . . . . . . . . . . . . . . . . . 2-3 2.4.2 Type of Transaction . . . . . . . . . . . . . . 2-3 2.4.3 Transaction Date . . . . . . . . . . . . . . . . 2-4 2.4.4 Name of Payee . . . . . . . . . . . . . . . . . 2-4 2.4.5 Memo . . . . . . . . . . . . . . . . . . . . . . 2-4 2.4.6 Account Number . . . . . . . . . . . . . . . . . 2-4 2.4.7 Amount . . . . . . . . . . . . . . . . . . . . . 2-5 2.4.8 Categories . . . . . . . . . . . . . . . . . . . 2-5 2.4.9 Paid Flag . . . . . . . . . . . . . . . . . . . 2-5 2.5 Reports . . . . . . . . . . . . . . . . . . . . . . . . 2-5 2.6 Writing Checks . . . . . . . . . . . . . . . . . . . . 2-6 Chapter 3 INSTALLING LEDGERS 3.1 Terminal Control Sequences . . . . . . . . . . . . . . 3-1 3.1.1 Start Reverse Video/Highlighting . . . . . . . . 3-2 3.1.2 Stop Reverse Video/Highlighting . . . . . . . . 3-2 3.1.3 Erase from Cursor to End of Screen . . . . . . . 3-2 3.2 Creating New Ledger Database and Memory Files . . . . . 3-2 3.2.1 Ledger Identification . . . . . . . . . . . . . 3-3 3.2.2 Next Check Number . . . . . . . . . . . . . . . 3-3 3.2.3 Beginning Balance . . . . . . . . . . . . . . . 3-3 Chapter 4 RUNNING LEDGERS 4.1 Making Backup Files . . . . . . . . . . . . . . . . . . 4-1 4.2 Startup . . . . . . . . . . . . . . . . . . . . . . . . 4-2 4.3 Main Menu Commands. . . . . . . . . . . . . . . . . . . 4-2 4.3.1 X - EXIT to CP/M . . . . . . . . . . . . . . . . 4-2 4.3.2 Q - QUIT to dBASEII . . . . . . . . . . . . . . 4-2 4.3.3 S - Set Date . . . . . . . . . . . . . . . . . . 4-3 4.3.4 N - Change Ledgers . . . . . . . . . . . . . . . 4-3 4.3.5 B - Balance Ledgers . . . . . . . . . . . . . . 4-3 4.3.6 W - Write Checks . . . . . . . . . . . . . . . . 4-4 4.3.7 R - Ledger Reports . . . . . . . . . . . . . . . 4-4 4.3.8 L - Ledger Entries . . . . . . . . . . . . . . . 4-5 4.3.9 A - Account Files . . . . . . . . . . . . . . . 4-5 4.3.10 P - Payee Files . . . . . . . . . . . . . . . . 4-5 4.4 Ledger Entries Menu Commands . . . . . . . . . . . . . 4-5 4.4.1 A - Add Entries . . . . . . . . . . . . . . . . 4-5 4.2.2 E - Edit Entries . . . . . . . . . . . . . . . . 4-7 4.4.3 S - Search . . . . . . . . . . . . . . . . . . . 4-8 4.4.4 L - View Last Page . . . . . . . . . . . . . . . 4-8 4.4.5 N - View Next Page . . . . . . . . . . . . . . . 4-8 4.5 Account Files Menu Commands . . . . . . . . . . . . . . 4-8 4.6 Payee Files Menu Commands . . . . . . . . . . . . . . . 4-8 Chapter 5 SETTING UP YOUR LEDGERS SYSTEM 5.1 The Account Number Database File . . . . . . . . . . . 5-1 5.1.1 Personal Account Numbers . . . . . . . . . . . . 5-1 5.1.2 Schedule C Small Business Account Numbers. . . . 5-2 5.1.3 Rental Property Account Numbers . . . . . . . . 5-2 5.1.4 Reserved Account Numbers . . . . . . . . . . . . 5-2 5.1.5 Account Number Categories . . . . . . . . . . . 5-2 5.2 The Category Database File . . . . . . . . . . . . . . 5-3 5.3 Customizing the LEDGERS Check Writing Function . . . . 5-3 5.3.1 Modifying the Printed Check . . . . . . . . . . 5-3 5.3.2 Printing Non-Computer Personal Checks . . . . . 5-4 Appendix A - FILE TREE FOR LEDGERS.LBR COMMAND FILES Appendix B - STRUCTURE FOR LEDGERS DATABASE AND MEMORY FILES B.1 Ledger Database File Structure . . . . . . . . . . . . B-1 B.2 Account Number Database File Structure . . . . . . . . B-2 B.3 Category Database File Structure . . . . . . . . . . . B-2 B.4 Payee Account Database File Structure . . . . . . . . . B-2 B.5 System Memory File . . . . . . . . . . . . . . . . . . B-3 B.6 Ledger Memory Files . . . . . . . . . . . . . . . . . . B-3 Chapter 1 INTRODUCTION Chapter 1 I N T R O D U C T I O N 1.1 System Requirements ------------------------ LEDGERS was written for dBASEII Version 2.4. It should run with higher versions, but has been tested only with Version 2.4. It requires a terminal with Erase from Cursor to End of Screen. Reverse Video or Highlighting is used extensively and is highly recommended, but is not absolutely required. 1.2 LEDGERS Description ------------------------ LEDGERS is an easy to use, visually-oriented, menu-driven system of dBASEII command files designed to help you manage up to nine ledgers, or bank accounts, for personal record keeping. LEDGERS may also be used for rental property management record keeping, for consultants, contractors, or other similar Schedule C small businesses where more complete accounting systems may not be required, and for cost management of R&D projects. LEDGERS allows you to enter ledger transactions into the ledger database files, view or edit transactions already entered into the ledgers, and compile reports from the ledger data. Records are automatically kept of the running ledger balance and the next available check number for each ledger. Each ledger transaction entry is assigned to an account number as an aid in organizing income and expense information and in com- piling useful reports. The list of over 100 account numbers supplied with LEDGERS should suit most users, but may be custom- ized for your own application. A file of user-supplied payee account information is used to help automate payee, memo, and account number entries for often-made transactions. A list of categories, an independent and broader way of linking ledger transactions for report purposes, is also provided. LEDGERS manages individual ledgers only, and does not combine these individual ledgers into a general ledger, nor does it provide budgeting capabilities. LEDGERS database and memory files may be used by other dBASEII programs to create a custom system with more extended capabilities. 1-1 Chapter 2 AN OVERVIEW OF LEDGERS Chapter 2 A N O V E R V I E W O F L E D G E R S This chapter provides an overview of the LEDGERS personal record keeping database system and some of its features. It should give you a basic understanding of how LEDGERS operates. The actual installation and use of LEDGERS is explained in the following chapters. 2.1 The Structure of LEDGERS ----------------------------- The LEDGERS personal record keeping database system consists of a series of dBASEII command files, an account number database file (LACCOUNT.DBF), a payee account database file (LPAYEES.DBF), a category database file (LCAT.DBF), a database file and memory file for each ledger used (LEDGER#.DBF and LEDGER#.MEM, where # is the ledger number), and a system memory file (LSYSTEM.MEM). 2.1.1 LEDGERS Command Files LEDGERS.CMD is the master LEDGERS command file. This file calls on the other command files as they are needed. LEDGERS was written using relatively small command files so that the individ- ual functions would work faster in a floppy disk environment and to make it easier to customize individual functional parts of the system. See the APPENDIX for a tree-listing of all the LEDGERS command files. 2.1.2 LEDGERS Database Files LEDGERS manages one ledger database file, LEDGERS#.DBF, and one ledger memory file, LEDGERS#.MEM, at a time. In addition, LEDGERS may call for information contained in the account number, category, and payee account database files when entering ledger transactions or compiling reports. 2-1 Chapter 2 AN OVERVIEW OF LEDGERS 2.2 The Active Ledger ---------------------- Each time LEDGERS is run, the default active or working ledger is Ledger 1. If you wish to work with a different ledger, you must first select that ledger at the main menu display. Only one ledger at a time is active. 2.3 The LEDGERS Display ------------------------ Because the LEDGERS display screen is 80 columns wide, it cannot easily be reproduced here. The display is divided into four "windows", which are updated separately. From top to bottom, they are: LEDGERS Title: Displayed in reverse or highlighted video. The active ledger number is shown. Ledger Transactions: The ten most recent ledger transac- tion entries are displayed in this window. The ledger transactions resulting from ledger database searches are also displayed here. Ledger Status Line: Displayed in reverse or highlighted video. Contains (left to right): the number of the next available check, the current system date, the ledger identification (bank account number, etc), and the current ledger balance. The status line is updated after each ledger transac- tion is entered. Menu Display: The menu display window contains the currently active command menu and any informational messages that LEDGERS needs to display. Certain LEDGERS functions will use the whole display for other purposes during portions of their operation. For example, when compiling a report to a disk file, the report is scrolled through the display as it is being compiled. Checks being written are also scrolled through the display as they are sent to the printer. In these cases, the LEDGERS display is re-created when the function has been completed. 2-2 Chapter 2 AN OVERVIEW OF LEDGERS 2.4 Ledger Transaction Entries ------------------------------- Each ledger transaction entry comprises one record in the data- base file LEDGER#.DBF. Each entry contains the following LEDGER#.DBF fields, in the order in which they are displayed. The two fields in parentheses are not displayed, but are used by LEDGERS as described below. Name Type Width Description ====================================================== L:CHECK Character 4 Check Number L:TYPE Character 2 Type of Transaction L:DATE Character 7 Transaction Date L:PAYEE Character 24 Name of Payee L:MEMO Character 23 Memo L:ACCOUNT Character 3 Account Number L:AMOUNT Number 9 Amount (L:CAT Character 8 Account Number Categories) (L:PAID Character 1 Paid Flag) 2.4.1 Check Number The check number may have up to four digits. The initial check number for the year is assigned when you create the ledger at the beginning of the year. Check numbers are then assigned automatically by LEDGERS to ensure that each check number has a corresponding ledger entry. There is a special account number assigned to keep track of voided checks. 2.4.2 Type of Transaction LEDGERS uses five types of ledger transactions in creating ledger transaction entries: Dp - Deposit: Any transaction that adds an amount to your ledger balance. Ck - Check Withdrawal: A check withdrawal transaction charged to a single account number. Cm - Multiple Account Check. Entered as a single transac- tion, the amount of the check is split among several account numbers, and shown on the ledger as a series of transactions. The check itself is shown as a 'Ck' transaction, while the charge to each account number is shown as a 'Cm' (Check Memo) transaction. Useful for payments on charge cards, etc, where amounts assigned to several account numbers are paid by the same check. 2-3 Chapter 2 AN OVERVIEW OF LEDGERS Nc - Non-check Withdrawal: A withdrawal transaction affecting the ledger balance, but not made by check. For example, an automatic teller withdrawal or the automatic direct payment of a bill by the bank. Mo - Memo Expenditure: An expenditure not affecting the ledger balance but still charged to an account number for record keeping purposes. For example, a cash transaction for groceries. 2.4.3 Transaction Date The system date, used in subsequent ledger transaction entries, may be entered from the main menu. Since this date must be set to the correct transaction date BEFORE a ledger transaction is entered, it may also be set when making ledger transaction entries from the "Transaction Type" menu. 2.4.4 Name of Payee The payee field has space for 24 characters. If you have set up an account for the payee in the payee account file, the entry of the full payee name, the memo, and the account number can be handled automatically, as described in Chapter 4. 2.4.5 Memo The memo field has space for 23 characters. You may enter any information you wish. When writing checks, the memo field is written to the memo space on the check, so you may wish to include account number information, etc, here. The memo entry may be automated in some cases, as previously described. 2.4.6 Account Number You must enter a three digit account number for each ledger transaction entry. Each account number, taken from the account number file LACCOUNT.DBF, describes a category of expense or income. You customize the account number file to fit your own needs as described in Chapter 5. 2.4.7 Amount LEDGERS allows entry of transaction amounts up to 999999.99. 2-4 Chapter 2 AN OVERVIEW OF LEDGERS 2.4.8 Categories Each account number in the account number file may have up to eight category letters assigned to it. A category is a way of linking together several related account numbers. When a report by category is generated, transaction entries charged to all account numbers linked by the same category letter are totaled together. 2.4.9 Paid Flag When you balance, or reconcile, the ledger with your bank statement, LEDGERS enters a "Y" as an indication that the entry has been paid or credited by the bank. This flag is also used in writing checks as an indication of which checks might still need to be written. 2.5 Reports ------------ LEDGERS can compile a report from the data in the ledger database file and write it to a disk file. The file can be printed later if desired, using system commands or your favorite print utility. Report generation is a menu-driven process. You may select whether the report is to be a detailed report (every ledger transaction is shown) or a summary report (only totals are shown), whether the report is to be compiled by account number, by category, or whether both are to be done, and whether the report is to cover a selected month, each month to date, or the entire year to date. Other types of reports may also be compiled from the data in the ledger database file either directly from dBASEII, or by using custom command files. 2-5 Chapter 2 AN OVERVIEW OF LEDGERS 2.6 Writing Checks ------------------- LEDGERS allows you to write checks on your printer. This can be done using standard personal checks or continuous computer form checks. Conversion of the check amount into words is done automatically. Up to ten selected checks may be printed on each run. Before you can use this function to print actual checks, you must customize the command file LCHECKS.CMD so that it prints information in the proper places on your check form and so that any required printer initialization is sent. However, you can try out the check writing function without customization by printing the "checks" on regular printer paper. If you don't wish to have this function available, just don't copy LCHECKS.CMD to your working disk. The main menu selection "W - Write Checks" will remain, but the check writing feature will not be implemented. If "W" is selected, you will just be returned to the menu after an message that the command file is not present on the disk. Writing checks and customizing LCHECKS.CMD are covered more completely in Chapter 4 and Chapter 5 respectively. 2-6 Chapter 3 INSTALLING LEDGERS Chapter 3 I N S T A L L I N G L E D G E R S Before you can use LEDGERS, it needs to know some of the control sequences for your terminal. You must also create the ledger database and memory files for your application. These tasks are performed by LINSTALL.CMD. If you have re-named your copy of dBASEII to DO.COM, as recommended by ASHTON-TATE, run LINSTALL by typing DO LINSTALL from the system prompt. 3.1 Terminal Control Sequences ------------------------------- LEDGERS requires three terminal control sequences to operate properly. These are stored in the system memory file (LSYSTEM.MEM) by LINSTALL and placed into memory by LEDGERS where they can be used as needed. Select the "S" choice, and LINSTALL will ask you to enter these sequences. Non-printing characters are entered using "CHR" plus the decimal code for the character, in parentheses. For example, ESCAPE is entered as CHR(27). Printable characters or strings of characters are entered in single quotes. A "+" is used as a separator. Note how the sample VT100 codes have been entered: CHR(27)+'[7m' is the VT100 sequence for reverse video. CHR(27)+'[m' is the VT100 sequence for norman video. CHR(27)+'[J' is the VT100 sequence for erase from cursor to end of screen. 20 spaces have been allowed for each sequence. End each entry with a . If you make a mistake and need to modify an entry, use the dBASEII/WordStar cursor control keys that your version of dBASEII uses to move between fields. When all the entries are ok, enter a in the final field and the memory file will be created. 3-1 Chapter 3 INSTALLING LEDGERS 3.1.1 Start Reverse Video/Highlighting Reverse video or highlighting is used in the LEDGERS displays to enhance readability. Enter the sequence to turn on reverse video or highlighting. If your terminal does not support reverse video or highlighting, LEDGERS can still be used, but there may be occasional displace- ment of parts of the display. You will need to enter a character that will not print and does not take up a display space so that the displays will not be distorted. Try CHR(01), but you may need to experiment. LEDGERS, as distributed, uses the reverse video feature of dBASEII rather then colons, to delimit the data entry fields. If your terminal does not support reverse video and your version of dBASEII does not include reverse video support, you may wish to remove the SET COLON OFF command near the beginning of LEDGERS.CMD to restore the colon delimiters around the data entry fields. However, this will cause some temporary displacement of some parts of the display during some of the functions. 3.1.2 End Reverse Video/Highlighting Enter the sequence to turn off reverse video or highlighting. If your terminal does not support reverse video or highlighting, enter the same character you used in the last step. 3.1.3 Erase from Cursor to End of Screen This sequence is required for creation of the display windows. Enter it in the same manner as the other sequences. 3.2 Creating New Ledger Database and Memory Files -------------------------------------------------- Run LINSTALL whenever you want to create a new ledger. For example, run LINSTALL to create a new set of ledgers at the beginning of each year (after deleting or renaming the ledger files currently present on the disk). Select the "L" choice, and LINSTALL will display any existing LEDGER#.DBF files currently present on the disk. LINSTALL will not overwrite any existing files. 3-2 Chapter 3 INSTALLING LEDGERS Enter the number of the LEDGER# database file that you wish to create, and LINSTALL will create it. You must have LEDGER1.DBF on the disk for proper operation, so create it first. (You may first wish to rename the sample LEDGER1.DBF and LEDGER1.MEM files supplied in LEDGERS.LBR to LEDGER9 so that they remain available to experiment with.) You will then be asked to enter some infor- mation for the LEDGER# memory file. If you wish to modify any of the memory file information after the file has been created, you must do so from dBASEII. See the APPENDIX for the memory variables used. 3.2.1 Ledger Identification Enter the ledger identification as you wish it to appear on the LEDGERS status line. You may use the bank account number or any other identification up to 24 characters long. 3.2.2 Next Check Number Enter the number of the first available check. The check number can be up to 4 digits long. 3.2.3 Beginning Balance Enter the beginning balance for the ledger. LEDGERS accepts amounts up to 999999.99. 3-3 Chapter 4 RUNNING LEDGERS Chapter 4 R U N N I N G L E D G E R S Before you attempt to run LEDGERS, you should first print out copies of the account number, payee account, and category database files supplied with LEDGERS. Run the command file LSTFILES.CMD to list each of these databases to a text file, then print them on your printer. With copies of these files in hand as visual aids, you are ready to run LEDGERS. LEDGERS.LBR provides several "dummy" files so that you can try out LEDGERS before you attempt to customize it. The payee ac- count database file, LPAYEES.DBF, and ledger database and memory files LEDGER1.DBF and LEDGER1.MEM are dummy files. They contain fictional account and transaction data, and you can use them to experiment freely with adding and editing entries in order to gain experience with LEDGERS before entrusting your own data to it. When you are ready to set up your own system and delete the dummy files, read Chapter 5 for information on how to create your own working LEDGERS system. 4.1 Making Backup Files ------------------------ IMPORTANT: Your LEDGERS database files will contain very valu- able information. You should create backup copies of all LEDGER#.DBF and LEDGER#.MEM files that you modify, each time that you modify them. LEDGERS does not do this automatically due to the extremely slow speed of the dBASEII COPY command. You might create a SUBMIT file for each LEDGER# that you use, to backup that ledger. For example, BACKUP1.SUB might copy LEDGER1.DBF to LGR1BAK.DBF and to B:LEDGER1.DBF, and copy LEDGER1.MEM to LGR1BAK.MEM and to B:LEDGER1.MEM. If you run LEDGERS and modify the contents of Ledger 1, you would run SUBMIT BACKUP1 as soon as you return to the CP/M system prompt. Users of ZCPR3 can create an alias, such as BACKUP1.COM, to do the same job somewhat faster. 4-1 Chapter 4 RUNNING LEDGERS 4.2 Startup ------------ Copy all of the LEDGERS files to a working disk along with a copy of dBASEII Version 2.4 or above. Type DO LEDGERS at the system prompt (assuming your copy of dBASEII has been renamed to DO.COM). After the copyright notice has been displayed and all system files have been loaded, you will be presented with the main LEDGERS display. The center display of the ten latest ledger transactions is a visual aid only. You do not need to be at the last page in the display to add or edit entries. The display will be updated after each entry or edit. 4.3 Main Menu Commands ----------------------- LEDGERS will accept main menu inputs whenever "Select Choice: " is displayed. 4.3.1 X - EXIT to CP/M The "X" command is the normal exit command. It closes all files and updates all system files in use before returning you to the CP/M system prompt. IMPORTANT: Always exit LEDGERS using one of the two exit commands! All files must be closed and all system files must be updated on exit or the database file header may become corrupted and the memory file contents may not be correct. The "X" command is also active at the Ledgers Entries, Account Files, and Payee Files menus, although it is not displayed as a menu choice. You may exit directly from any of these menus. 4.3.2 Q - QUIT to dBASEII The "Q" command updates all system files in use and quits to dBASEII, leaving the memory variables in memory and the current primary database file in use. This command can be an aid in de- bugging command file modifications. The "Q" command is also active at the Ledgers Entries, Account Files, and Payee Files menus, although it is not displayed as a menu choice. You may quit directly from any of these menus. 4-2 Chapter 4 RUNNING LEDGERS 4.3.3 D - Set Date The "D" command allows you to set the system date (displayed in the status line) that is used as the transaction date in each new ledger transaction entry. Since this date must be set to the correct transaction date BEFORE a ledger transaction is entered, it may also be set when making ledger transaction entries from the Transaction Type menu while entering a series of trans- actions. The format of the transaction date is ddMMMyy, where MMM indi- cates the first three letters of the month. For example, 09APR85 is a valid date. This format was adopted to simplify changing dates. The current date (being displayed) is carried over, so that you only need to enter as much of the date as you are changing. A then carries over the unchanged remainder of the date. The date is checked before being accepted, and if you have not entered a valid date, the cursor will return to the beginning of the Date field so you can re-enter a correct date. 4.3.4 N - Change Ledgers The "N" command allows you to select any of the ledgers you have created as your active working ledger. 4.3.5 B - Balance Ledger The "B" command allows you to balance (reconcile) the current working ledger. Each deposit or withdrawal not yet credited or paid by the bank is displayed, one entry at a time. If an entry appears in your bank statement, it is marked as paid by entering "Y" or left marked as unpaid by entering "N" or . When all outstanding transactions have been processed, you are asked to enter the ending balance as shown on your bank state- ment. LEDGERS will then reconcile the statement and display the total amount for withdrawals not yet paid and deposits not yet credited by the bank. If the ledger does not reconcile, the calculated ending balance is also displayed. Since the ledger balance is updated automatically, the ledger should always reconcile unless you left out a ledger entry, one of your ledger entries does not match your check, or your bank made a mistake. 4-3 Chapter 4 RUNNING LEDGERS 4.3.6 W - Write Checks The "W" command allows you to write checks on your printer. As the checks are being written to the printer, they are scrolled through the display. Before you can write actual checks, you must customize the command file LCHECKS.CMD so that the informa- tion is printed in the proper places on your check forms, and to include any printer initialization code that may need to be sent. See Chapter 5 for information on customizing LCHECKS.CMD. All checks not yet paid by the bank are available to be written to the printer. You are first asked for the beginning check number. Entering will start with the earliest unpaid check. Each check transaction is displayed, one at a time. Enter "Y" to write that check or "N" or to skip writing the check. Each selected check will be added to the display. Up to ten checks (one full display) can be written in one pass. When all the checks have been processed, you can enter "Y" if the printer is ready and you wish to write the checks. (CAUTION: If you enter "Y" and the printer is not connected, it may hang up your system!) Enter to return to the main menu without printing the checks. 4.3.7 R - Ledger Reports The "R" command allows you to choose to compile one of a number of standard reports based on the data in the current ledger database file. The report is scrolled through the display as it is being written to a text file. Each type of report has a fixed filename. For example, 1SA-FEB.RPT would be a report from ledger 1 (1), and would be a summary report (S) by account number (A) for the month of February (-FEB). The opening display shows any report files (.RPT) existing on the disk, as new files will overwrite existing files with the same name. It is good practice to delete .RPT files when you are through with them. You may choose a detailed report (each ledger transaction is listed), a summary report (only account number or category totals are listed), or a list of checks that have been written. Each report may be made by account number, by category, or both. A report may be compiled for a given month, each month to date, or the entire year to date. Detailed reports can take a relatively long time to compile when the ledger has a large number of trans- actions, so it is recommended that you try out different reports during the first month or so to see which best meet your needs. Summary reports by both account number and category, and compiled monthly will probably meet most needs. 4-4 Chapter 4 RUNNING LEDGERS When you have selected the report you wish to compile, enter "C" to compile it or to return to the main menu without compiling the report. Be sure you have sufficient space on your disk before compiling long reports. Other special reports may be run using custom .CMD files or directly from dBASEII. See the APPENDIX for information on the structure of the ledger database files. 4.3.8 L - Ledger Entries The "L" command gives you access to the commands necessary to examine, add, and edit entries in the active working ledger database file. The available commands are discussed in section 4.3. 4.3.9 A - Account Files The "A" command gives you access to the commands necessary to examine, add, and edit entries in the account number database file. The available commands are the same as in the Ledger Entries menu. 4.3.10 P - Payee Files The "P" command gives you access to the commands necessary to examine, add, and edit entries in the payee account database file. The available commands are the same as in the Ledger Entries menu except that Search is not supported due to the relatively small size of the payee account database file. 4.4 Ledger Entries Menu Commands --------------------------------- The "X" and "Q" commands are active, but not displayed in the menu. You may exit directly to CP/M or to dBASEII from this menu without returning to the main menu. 4.4.1 A - Add Entries Similar to filling out a blank check. The system date becomes the transaction date, so it must be set first. Since changing the date later could put the file out of sequence, it is not subject to later editing except directly from dBASEII, and would require that the file be re-sorted by date and by check number! CAUTION: Make sure that the displayed system date is what you want for your transaction date BEFORE you enter the transaction. 4-5 Chapter 4 RUNNING LEDGERS When you add ledger transaction entries, you start by selecting the type of transaction you are entering. You can also select "Dt" to set the date, or enter to return you to the Ledger Entries menu. Dp - Deposit: Any transaction that adds an amount to your ledger balance. Ck - Check Withdrawal: A check withdrawal transaction charged to a single account number. Cm - Multiple Account Check. Entered as a single transac- tion, the amount of the check is split among several account numbers, and shown on the ledger as a series of transactions. The check itself is shown as a 'Ck' transaction, while the charge to each account number is shown as a 'Cm' (Check Memo) transaction. Useful for payments on charge cards, etc, where amounts assigned to several account numbers are paid by the same check. Nc - Non-check Withdrawal: A withdrawal transaction affecting the ledger balance, but not made by check. For example, an automatic teller withdrawal or the automatic direct payment of a bill by the bank. Mo - Memo Expenditure: An expenditure not affecting the ledger balance but still charged to an account number for record keeping purposes. For example, a cash transaction for groceries. You now enter the transaction data requested in the display, which will differ slightly depending on the type of transaction. If you enter in the Payee field and step through the rest of the fields with 's, you will abort the entry and return to the Transaction Type menu. Each payee name should be entered the same way each time it is used to facilitate later searches. If you have set up an account for the payee in the payee account file, the entry of the full payee name, the memo, and the account number can be handled automatically, as described below. The Memo field provides a space for a comment about the transac- tion. For check withdrawal transactions, this field is used as the memo when writing checks to the printer, so you may wish to enter account numbers, etc, here. If you leave this space blank in a check withdrawal transaction, and later write the check to the printer, you will be given a chance to enter a memo when the check is written. 4-6 Chapter 4 RUNNING LEDGERS You MUST enter an account number for each transaction. A printed copy of the account number database file is a valuable reference to keep at hand when entering transactions. Transaction account numbers may be changed later with the Edit command, so entering a dummy number is ok if you aren't sure which account number ap- plies, but you should remember to edit the entry later and enter the correct account number. Note the "@" present in the Memo and Account No. fields. This is a flag that asks LEDGERS to search the payee account file for whatever full or partial payee name you have entered. If you leave the "@" in one or both of the fields, LEDGERS will locate the first payee account record containing the full or partial name you have entered, and will replace the payee name, and whichever field has an "@" flag, with the information from the payee account record. If you want to have LEDGERS look up the full payee name, but want to modify both the memo and account number entries, you must still leave at least one "@", usually in the Account No. field, and correct the entry after the search and replace. When your entries are complete, you have one more chance to look them over and edit them, if required, using the dBASEII cursor movement commands to move through the fields. A in the final field will cause LEDGERS to make the ledger transaction entry, update the ledger transaction display and status line, and return you to the Transaction Type menu. A further comment needs to be made about "Cm" entries. You will loop through the entry process as many times as is required to enter each transaction. Each time you will be told the maximum amount you may enter for the transaction (to assure that the totals of the individual transactions don't exceed the check amount). The last entry must be for the maximum remaining amount to make everything come out even, and then you will be returned to the Transaction Type menu. The amounts entered in the "Cm" entry process may not be edited later using LEDGERS, since all "Cm" amounts must add up to the "Ck" amount, and editing one entry will require at least one other entry to be edited to make things balance. 4.4.2 E - Edit Entries Locate and edit an ledger transaction entry. Search by transac- tion type, and by transaction date or check number, and/or full or partial payee name. The first entry meeting your specifica- tions is displayed and you have the option of editing that record, searching for another match, or returning to the ledger entries menu. If you choose to edit the record, the procedure is the same as adding a new entry. Some fields, such as the trans- action date, transaction type, check number and "Cm" amounts cannot be changed. The ledger balance and status line are up- dated if they are affected by the changes. 4-7 Chapter 4 RUNNING LEDGERS 4.4.3 S - Search Locate and display entries by check number or by full or partial payee name. You can move about the ledger quickly using this command to search for dates or check numbers, in conjunction with the "N" and "L" commands. When searching by payee name, all transaction entries containing that full or partial name are displayed, a page of 10 entries at a time. Use the "L" or "N" command to return to the normal, sequential transaction entries display. 4.4.4 L - View Last Page Display the previous page of 10 transaction entries. Use with the "S" command to move about the ledger. 4.4.5 N - View Next Page Display the next next page of 10 transaction entries. Use with the "S" command to move about the ledger. 4.5 Account Files Menu Commands -------------------------------- The account number file commands are the same as the ledger entries commands and are used in the same way. The "X" and "Q" commands are active, but are not displayed in the menu. 4.6 Payee Files Menu Commands ------------------------------ The payee account file commands are the same as the ledger entries commands except that the "S - Search" function is not included since the payee account file is relatively short. The "X" and "Q" commands are active, but are not displayed in the menu. 4-8 Chapter 5 SETTING UP YOUR LEDGERS SYSTEM Chapter 5 S E T T I N G U P Y O U R L E D G E R S S Y S T E M Chapter 5 explains how to set up your own LEDGERS system by customizing the account number database file (LACCOUNT.DBF) and the category database file (LCAT.DBF). It also includes instruc- tions for customizing LCHECKS.CMD for use with your own check forms and printer. Note that many of the LEDGERS command files, with the exception of LCHECKS.CMD, have lines longer than the 77 characters that the dBASEII command file editor, MODIFY COMMAND, will handle. When saving a file, MODIFY COMMAND will truncate lines longer than 77 characters, so use a word processor to edit command files. Retain LEDGERS.LBR in case a command file is damaged in editing. 5.1 The Account Number Database File ------------------------------------- Setting up the system of account numbers you will work with is one of the most important aspects of a record keeping system. Compiling meaningful reports from the data in each ledger depends entirely on how well the list of account numbers applies to your situation. If you intend to use LEDGERS to help you keep records for tax purposes, you may wish to take the list of account num- bers provided with LEDGERS to your tax preparer for advice and consultation before using your LEDGER system extensively. Take some time to look over the printed list you produced with LSTFILES. Notice that, in general, the account names are in alphabetical order (to help you to find them more easily) and that the account numbers increase in increments of five. It can very frustrating to decide that you need a new account number, and not be able to fit it into the list because there is no room between numbers. 5.1.1 Personal Account Numbers The first group of account numbers from 100 through 499 are for personal income and expenses. You may find that you need addi- tional account numbers for your situation. Note that all personal income accounts are in the 100 group to make it easier to compile report totals for personal income transactions. 5-1 Chapter 5 SETTING UP YOUR LEDGERS SYSTEM 5.1.2 Schedule C Small Business Account Numbers The account numbers from 500 through 699 are for Schedule C small businesses, and are based on the tax forms. Note that the account names in this group all begin with "C-" to help locate them in the list, and to make compiling reports for the entire group easier later on. The income number is the only number in the 500 group, but additional income account numbers may be added within the 500 group if required. 5.1.3 Rental Property Account Numbers The account numbers from 600 through 998 are for rental property record keeping. LEDGERS is not set up, as distributed, to manage more than a few properties, but there are enough account numbers and ledgers to make organizing such a system relatively easy. Each account name in the group begins with "R-". The income number is the only number in the 700 group, but additional income account numbers may be added to the 700 group if required. The group of account numbers from 900 through 949 have been reserved for rental property capital improvement account numbers, which would be added as needed. The numbers from 950 through 998 are reserved for tennant deposit account numbers, added as needed. 5.1.4 Reserved Account Numbers The accounts Beginning Balance (000) and Voided Check (001) have been reserved by LEDGERS and should not be changed. At the end of the year, you should enter the ending ledger balance in the Ending Balance account (999). In this way, archived ledger database files are complete in themselves, and none of the ledger memory files need be archived. 5.1.5 Account Number Categories Each account number has a number of category letters associated with it. These categories, covered in more detail below, are used to group together account numbers with common character- istics for report compiling purposes. Account number category entries may be edited as required, but for report reasons, the first entry must be I, E, O, or X. Other entries may be in any order. 5-2 Chapter 5 SETTING UP YOUR LEDGERS SYSTEM 5.2 The Category Database File ------------------------------- Each account number in the account number file may have up to eight category letters assigned to it. A category is a way of linking together in a report several account numbers that are of special interest to you. For example, the category letter "E" indicates an expense transaction, the category letter "I" indi- cates an income transaction, and the category "D" indicates a tax-deductible transaction. When a report by category is com- piled, transaction entries charged to all account numbers linked by the same category letter are totaled together, making it easy to compile totals for all income accounts, or all automobile accounts, for example. If your application requires you to customize the category data- base file, LCAT.DBF, which contains a list of category letters and their descriptions, it must be done directly from dBASEII. The category descriptions in the file are used only as titles in compiling reports by category. LCAT.DBF is a short file, and not often changed. 5.3 Customizing the LEDGERS Check Writing Function --------------------------------------------------- LEDGERS is set up to write checks on a more or less standard personal check form, but changes may be made to the check writing command file, LCHECKS.CMD, to match whatever check form is being used. This section will be easier to follow if you first print out a copy of LCHECKS.CMD and use LEDGERS to print a check on plain computer paper from the sample database ledger. 5.3.1 Modifying the Printed Check First, place a blank check form under the printed "check", hold them up to the light and align them as well as possible to see what changes need to be made. Mark changes on the printed "check". If using non-computer personal checks, align the left edge of the check with the left edge (perforations) of the computer paper. Printing using non-computer personal checks will be explained later. Mark the corners of the check on the computer paper for alignment. 5-3 Chapter 5 SETTING UP YOUR LEDGERS SYSTEM Look at LCHECKS.CMD. Near the end of the file is a column of commands with each line beginning with question marks. Each question mark indicates the start of a new printer line. Each command $(wstr,1,nn) generates a line of spaces nn characters long. The first line, then, consists of 29 spaces and the date. The next printed line consists of 7 spaces, the name of the payee (which is left-justified and 24 spaces long), 13 more spaces, and the amount (which is also left-justified). The next printed line consists of the amount, written out in words, and the last printed line consists of 5 spaces and the check memo. The total number of question mark lines is the total length of the check form. With a word processing ruler or other aid, count the number of spaces and lines you require for your formatting and with a word processor, change the commands for the print lines and spaces as required. Near the beginning of the file is a memory variable called WLEN. This is the number of characters available on your check form for the amount, written out in words. WLEN is 47 is the distribution file. Enter the length for your check form. If you try to write a check amount where the amount in words is too long for the available space (greater than WLEN), LEDGERS will so inform you and tell you to write the check by hand. Just below WLEN is the command: STORE CHR(27) + 'E' TO wpntinit. This is the initialization string sent to the printer prior to printing checks. The sample string, ESC E, is the command to an EPSON printer telling it to print in emphasized mode. Enter your own string here, in the same manner. Note that if your printer allows, you might change the line and character spacing to better match your check form. If you don't require a printer initialization string, change to command to STORE '' TO wpntinit. Using your modified LCHECKS.CMD, use LEDGERS to write another sample "check" on computer paper and check it out as before. Repeat the sequence until you have acceptable results. 5.3.2 Printing Non-Computer Personal Checks You can print personal checks as well as computer type checks using LEDGERS. The procedure takes a little longer, but gives very repeatable results. The basic idea is to make a carrier strip out of two or three sheets of tractor-type perforated computer paper. Put the blank carrier strip in your printer and align the leading edge of the paper with a mark on the printer or with some part of the printer where the starting postion can set easily and repeatably. Then use LEDGERS to print out a screen (or as many as you think you will want to print at one pass) of dummy checks on the paper. Tape the paper to a window and align a blank check form over the first printed "check". Mark the corners of the check form on the paper, and repeat the process for each "check". 5-4 Chapter 5 SETTING UP YOUR LEDGERS SYSTEM Each check is held to the carrier by pieces of "Post-it" note paper taped to the carrier strip along their top edge with the "always sticky" edge at the bottom and facing down. Use one piece at each end of the upper edge of each check, making sure that they aren't covering any of the area to be printed. Trim the "Post-it" paper if required. Larger pieces are more secure. To use the carrier strip,you slip each check form to be printed into place, matching the corner alignment marks, and smooth the "Post-it" paper down over the top edge of the check to hold it in place. When you have all the checks in place, load the carrier into the printer and align the top edge to your starting position mark, and print the checks. Is using your computer to print your checks worth this effort? It may be worth it if you have a number of checks to write at about the same time each month so that you can write them at one time, if you hate writing long account numbers on your checks, or if you just want the look of a computer printed check. The option is yours! 5-5 Appendix A FILE TREE FOR LEDGERS.LBR COMMAND FILES A p p e n d i x A FILE TREE FOR LEDGERS.LBR COMMAND FILES FILENAME DESCRIPTION ================================================================= LEDGERS.DOC LEDGERS Users Manual. LINSTALL.CMD Installs LEDGERS system and creates new LEDGERS. LINSTALL.DBF Database File used by LINSTALL.CMD. LEDGERS .CMD Master LEDGERS command file. LACCOUNT.CMD Manages Account Database File LACCOUNT.DBF. LCHANGE .CMD Changes logged Ledger number. LCHECKS .CMD Writes checks on printer. LDATE .CMD Sets system date. LENTRY .CMD Manages Ledger Database File. LADD .CMD Adds Ledger entries LEDIT .CMD Edits Ledger entries LSEARCH .CMD Searches for Ledger entries. LPAYEES .CMD Manages Payees Database File LPAYEES.DBF. LRECON .CMD Reconciles Ledger with bank statement. LREPORT .CMD Writes Ledger reports to disk files. LRCMO .CMD List of checks for a month. LRCYTD .CMD List of checks, year to date. LRDMO .CMD Detailed report for a month. LRDYTD .CMD Detailed report, year to date. LRSMO .CMD Summary report for a month. LRSYTD .CMD Summary report, year to date. LSTFILES.CMD Utility to list LACCOUNT.DBF, LPAYEES.DBF, and LCAT.DBF to text files. A-1 Appendix B STRUCTURE FOR LEDGERS DATABASE AND MEMORY FILES A p p e n d i x B STRUCTURE FOR LEDGERS DATABASE AND MEMORY FILES LEDGERS uses 3 database files to store your ledger transactions. The ledger database file, LEDGER#.DBF (where # is the ledger number from 1 through 9), contains the transaction data for each ledger. The second file, LACCOUNT.DBF, contains information about each ledger account number that can be called up as needed for ledger transaction entries and to compile reports. The third file, LCAT.DBF, contains category descriptions, and is used to help compile reports. LEDGERS also uses several memory files to store system data and ledger status information. LSYSTEM.MEM contains the terminal control sequences and the last date used for ledger entry. LEDGER#.MEM, associated with the ledger database file of the same number, contains the ledger number, the ledger identification (bank account number or other identification), the next check number to be used, and the current ledger balance. These memory files are maintained automatically by LEDGERS. B.1 Ledger Database File Structure ----------------------------------- Each record (transaction) in LEDGER#.DBF has the following field names and structure: FLD NAME TYPE WIDTH DEC DESCRIPTION ------------------------------------------------------------ 001 L:CHECK C 004 Check Number 002 L:TYPE C 002 Transaction Type 003 L:DATE C 007 Date 004 L:PAYEE C 024 Payee Name 005 L:AMOUNT N 009 002 Amount 006 L:MEMO C 023 Memo 007 L:ACCOUNT C 003 Account Number 008 L:CATEGORY C 008 Categories (8 max) 009 L:PAID C 001 Paid by Bank Flag ------------------------------------------------------------ Total Width: 082 B-1 Appendix B STRUCTURE FOR LEDGERS DATABASE AND MEMORY FILES B.2 Account Number Database File Structure ------------------------------------------- Each record (account number) in LACCOUNT.DBF has the following field names and structure: FLD NAME TYPE WIDTH DEC DESCRIPTION ------------------------------------------------------------ 001 A:NAME C 027 Account Name 002 A:NUMBER C 003 Account Number 003 A:CATEGORY C 008 Categories (8 max) ------------------------------------------------------------ Total Width: 039 B.3 Category Database File Structure ------------------------------------- Each record (category) in LCAT.DBF has the following field names and structure: FLD NAME TYPE WIDTH DEC DESCRIPTION ------------------------------------------------------------ 001 C:CATEGORY C 001 Category Letter 002 C:DESC C 030 Description ------------------------------------------------------------ Total Width: 032 B.4 Payee Account Database File Structure ------------------------------------------ Each record (account) in LPAYEES.DBF has the following field names and structure: FLD NAME TYPE WIDTH DEC DESCRIPTION ------------------------------------------------------------ 001 P:NAME C 024 Payee Name 002 P:MEMO C 003 Payee Memo 003 P:ACCOUNT C 003 Account Number ------------------------------------------------------------ Total Width: 052 B-2 Appendix B STRUCTURE FOR LEDGERS DATABASE AND MEMORY FILES B.5 System Memory File ----------------------- The System Memory File, LSYSTEM.MEM, contains the terminal control sequences and the system date: MEMVAR NAME TYPE LEN PICTURE DESCRIPTION ------------------------------------------------------------ SRVIDEO C 15 Start reverse video SNVIDEO C 15 Start normal video SETOEND C 15 Erase from cursor to end of screen SDATE C 7 ddMMMyy System date ------------------------------------------------------------ B.6 Ledger Memory Files ------------------------ Each Ledger Memory File, LEDGER#.MEM, contains information on the ledger status: MEMVAR NAME TYPE LEN PICTURE DESCRIPTION ------------------------------------------------------------ MLEDGER C 1 9 Ledger number MID C 24 Ledger identification (bank account number, etc.) MCHECK C 4 9999 Next check number MBALANCE N 9 999999.99 Ledger balance ------------------------------------------------------------ B-3