* DATE 09/10/84 18:19 * maintain.bld STOR t TO more DO WHIL more STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:build INDEX &dr.:code REST from coname additive ERAS STOR '?' TO command TEXT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * * * * * * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * * * * * * * * * * * * * * * * * * * * * * * * * * * * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * Please select one of the above options. You may also leave this menu * * by typing 'Q' and get on-line HELP by typing '?'. * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ENDT @ 03,04 SAY coname + " - FILE MAINTENANCE MENU" @ 03,65 SAY DATE() @ 07,24 SAY 'A. Backup data files' @ 08,24 SAY 'B. Browse through building file' @ 09,24 SAY 'C. Browse through tenant file' @ 10,24 SAY 'D. Display building file' @ 11,24 SAY 'E. Display tenant file' @ 12,24 SAY 'F. First initialization of Property Manager Program' @ 13,24 SAY 'G. Reininitialze defaults, company name, etc.' @ 14,24 SAY 'H. Purge building and tenant file' @ 15,24 SAY 'I. Re-index the records into all indexes' @ 16,24 SAY 'J. Return to main menu' @ 18,23 SAY "PLEASE SELECT ONE OF THE OPTIONS" @ 18,58 GET command PICTURE '!' READ DO WHIL @(COMMAND, 'ABCDEFGHIJ?Q') = 0 STOR '?' TO command @ 18,58 GET command PICTURE '!' READ ENDD DO CASE CASE command = 'A' STOR 'Y' TO doit ERAS @ 01,05 SAY 'This module makes a backup of the DATA Files to another disk' @ 03,05 SAY 'Do you want to do a backup of the DATA Files (Y/N) ?' @ 03,60 GET doit PICTURE '!' READ IF doit = 'Y' @ 01,00 @ 03,00 @ 03,05 SAY 'The left drive is Drive A - The right drive is Drive B' @ 04,05 SAY 'The DATA File is on drive '+dr+' and you normally backup to drive B' @ 06,05 SAY 'Make sure the backup disk is in the drive selected for backup' RESE STOR 'B' TO bdr @ 08,05 SAY 'Which drive selected for backup DATA File ? ' GET bdr PICTURE '!' READ DO WHIL @(bdr,'AB') = 0 @ 08,05 SAY 'Which drive selected for backup DATA File ? ' GET bdr PICTURE '!' READ ENDD while @ IF bdr <> dr @ 10,05 SAY 'Now copying DATA Files from drive '+dr+' to drive '+bdr+ ' ' SET ECHO ON SET TALK ON SELE PRIMARY USE &dr.:build INDEX &dr.:code RESE COPY TO &bdr.:buildbak SELE SECONDARY USE &dr.:tenant INDEX &dr.:codea COPY TO &bdr.:tenbak SET TALK OFF SET ECHO OFF SELE PRIMARY USE &dr.:build INDEX &dr.:code ELSE @ 10,05 SAY 'Cant backup to same drive - Aborting' @ 12,00 SAY 'Hit RETURN to Continue' SET CONSOLE OFF WAIT SET CONSOLE ON ENDI not same drive ENDI do backup CASE command = 'B' * browse thru records ERAS @ 01,12 SAY '***WARNING*** ***WARNING*** ***WARNING***' @ 03,13 SAY 'Changes made will be written to the File' @ 06,12 SAY 'CTRL-C write current record & go down' @ 07,12 SAY 'CTRL-R write current record & go up' @ 08,12 SAY 'CTRL-Z/B pans screen left or right' @ 09,12 SAY 'CTRL-V toggles Insert on or off' @ 10,12 SAY 'CTRL-G Delete character under cursor' @ 11,12 SAY 'CTRL-U Delete or Recall current record' @ 12,12 SAY 'CTRL-Q exit Dont Write Current record' @ 13,12 SAY 'CTRL-W exit and Save all changes' * get a starting point in file STOR ' ' TO stletter @ 15,12 SAY 'We are using the building code index to browse' @ 16,12 SAY '....so please tell me the starting code number' @ 17,12 SAY 'or as much of it as you want to.' @ 19,12 SAY ' Where shall we start.............' @ 19,57 Get stletter PICTURE '99' @ 22,00 READ STOR TRIM(stletter) TO stletter * goto starting point or next if no find FIND &stletter IF # = 0 GO top ENDI * browse thru file SET ESCAPE OFF BROW fields bcode, baddr SET ESCAPE ON CASE command = 'C' ERAS SELE SECONDARY USE &dr.:tenant INDEX &dr.:codea * browse thru records ERAS @ 01,12 SAY '***WARNING*** ***WARNING*** ***WARNING***' @ 03,13 SAY 'Changes made will be written to the File' @ 06,12 SAY 'CTRL-C write current record & go down' @ 07,12 SAY 'CTRL-R write current record & go up' @ 08,12 SAY 'CTRL-Z/B pans screen left or right' @ 09,12 SAY 'CTRL-V toggles Insert on or off' @ 10,12 SAY 'CTRL-G Delete character under cursor' @ 11,12 SAY 'CTRL-U Delete or Recall current record' @ 12,12 SAY 'CTRL-Q exit Dont Write Current record' @ 13,12 SAY 'CTRL-W exit and Save all changes' * get a starting point in file STOR ' ' TO stletter @ 15,12 SAY 'We are using the building code index to browse' @ 16,12 SAY '....so please tell me the starting code number' @ 17,12 SAY 'or as much of it as you want to.' @ 19,12 SAY ' Where shall we start.............' @ 19,57 Get stletter PICTURE '99999' @ 22,00 READ STOR TRIM(stletter) TO stletter * goto starting point or next if no find FIND &stletter IF # = 0 GO top ENDI * browse thru file SET ESCAPE OFF BROW fields bcode, tunit, tenant SET ESCAPE ON SELE PRIMARY USE &dr.:build INDEX &dr.:code CASE command = 'D' STOR CHR(PEEK (063)) TO dr ERAS @ 02,12 SAY 'Records are displayed by code number and you can select the ' @ 03,12 SAY 'starting code letter or any part of it. If I do not find that' @ 04,12 SAY 'number in the file, I will start at the beginning' @ 06,12 SAY 'When WAITING hit space bar to continue... or ESCape to quit' * get a starting point in file STOR ' ' TO stletter @ 10,12 SAY 'Place at which to start display' @ 10,57 Get stletter PICTURE '99' READ STOR TRIM(stletter) TO stletter * goto starting point or next if no find FIND &stletter IF # = 0 GO top ENDI * display selected list ERAS SET ESCAPE OFF DISP NEXT 65000 bcode, $(bdata,1,38), $(baddr,1,20) IF eof WAIT ENDI SET ESCAPE ON CASE command = 'E' STOR CHR(PEEK(063)) TO dr SELE SECONDARY USE &dr.:tenant INDEX &dr.:codea ERAS @ 02,12 SAY 'Records are displayed by code number and you can select the ' @ 03,12 SAY 'starting code letter or any part of it. If I do not find that' @ 04,12 SAY 'number in the file, I will start at the beginning' @ 06,12 SAY 'When WAITING hit space bar to continue... or ESCape to quit' * get a starting point in file STOR ' ' TO stletter @ 10,12 SAY 'Place at which to start display' @ 10,57 Get stletter PICTURE '99999' READ STOR TRIM(stletter) TO stletter * goto starting point or next if no find FIND &stletter IF # = 0 GO top ENDI * display selected list ERAS SET ESCAPE OFF DISP NEXT 65000 bcode, tunit, ttype, tenant IF eof WAIT ENDI SET ESCAPE ON SELE PRIMARY USE &dr.:build INDEX &dr.:code CASE command = 'F' ERAS STOR 'N' TO option TEXT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< W A R N I N G W A R N I N G W A R N I N G ============= ================== ============== This option is designed to create a new data base file to startup this program the first time. It will mark for deletion all of the sample files we gave you in the build- ing and tenant databases. Then add your records and come back to the maintenance menu to purge. A similar program is found on the Accounting Maintenance menu. NEVER RUN THIS OPTION UNLESS YOU HAVE BACKED UP THE PROGRAM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ENDT @ 19,20 SAY 'ARE YOU READY TO PROCEED' @ 19,47 GET option PICTURE '!' READ IF option = 'Y' STOR CHR(PEEK(063)) TO dr SELE SECONDARY USE &dr.:tenant DELE ALL SELE PRIMARY USE &dr.:build DELE ALL SET INDEX TO &dr.:code ENDI option = 'Y' CASE command = 'G' SAVE TO temp REST from manage.dat IF PASS = 'Y' ERAS @ 12,10 SAY 'PLEASE ENTER THE PASSWORD SLOWLY ........' SET EXACT ON SET COLON OFF STOR '12345678' TO passt STOR ' ' TO passt1 STOR ' ' TO one STOR ' ' to one1 STOR 0 to count DO WHIL count < 8 SET CONSOLE OFF @ 12,50 SAY passt1 WAIT TO one1 @ 12,50 ACCEPT one1 SET CONSOLE ON STOR TRIM(one) + one1 TO one STOR count + 1 TO count STOR $(passt,1,count) TO passt1 @ 12,50 SAY passt1 SET CONSOLE OFF ENDD SET CONSOLE ON STOR $(one,2,9) TO passt IF TRIM(passt) <> TRIM(passp) ERAS @ 14,10 SAY "U N A U T H O R I Z E D A C C E S S " @ 17,10 SET CONSOLE OFF QUIT ENDI passt SET EXACT OFF SET COLON ON ENDI pass DO init.spm REST from temp additive CASE command = 'H' STOR CHR(PEEK (063)) TO dr STOR 'N' TO command ERAS @ 02,05 SAY '***** WARNING! ***** WARNING! ***** WARNING! ****' @ 04,05 SAY 'This will PERMANENTLY remove any deleted records.' @ 06,05 SAY 'Type Y to continue, any other key to cancel this operation' @ 06,64 GET command PICTURE '!' READ IF command = 'Y' ERAS * give the user something to read while file is packed TEXT Records which have been marked for deletion are being removed from the file. When that is completed, all records will be reindexed. We will keep you posted as we go along..........but please be patient. ENDT *pack the file to remove deleted records *but let us know how many records are deleted SET INDEX TO GO bottom STOR # to before @ 08,00 SAY 'The building data base contains ' + STR(before,4) + ' files before deletions' @ 09,00 SAY ' ' SET INDEX TO &dr.:code SET TALK ON PACK SET TALK OFF SELE SECONDARY USE &dr.:tenant GO bottom STOR # to before ERAS @ 08,00 SAY 'The tenant data base contains ' + STR(before,4) + ' files before deletions' @ 09,00 SAY ' ' SET INDEX TO &dr.:codea SET TALK ON PACK SET TALK OFF SELE PRIMARY USE &dr.:build INDEX &dr.:code @ 19,00 @ 20,00 @ 21,00 SAY ' *************************************************************************' @ 23,20 SAY 'Hit any key to Continue ' SET CONSOLE OFF WAIT SET CONSOLE ON ENDI command = Y RELE ALL STOR t TO more CASE command = 'I' * re-initialize index files ERAS @ 2,00 SAY 'We are going to index to all of the indexes and' @ 3,00 SAY 'will keep you posted as we do it.' @ 5,00 SAY 'Please be patient as this takes a little time...' @ 7,00 SAY 'Records are now being re-indexed' STOR CHR(PEEK(063)) TO dr SET TALK ON SET ECHO ON SELE SECONDARY USE &dr.:tenant INDE on bcode to &dr.:codea SELE PRIMARY USE &dr.:build INDE ON bcode TO &dr.:code SET INDEX TO &dr.:code SET TALK OFF SET ECHO OFF CASE command = '?' ERAS TEXT M A I N T E N A N C E M E N U H E L P S C R E E N The maintenance menu allows you to work with both the building and the tenant databases. Some of the options on this screen are exceedingly powerful and should be used with care. The browse command allows you to examine certain of the data in the files and make changes directly in the file. Because of size limitations, you can only browse in the code, address and type fields in the building database and in the code, unit and tenant name fields in the tenant database. The same type of space limitations apply in the display mode. However, it is a simple, non-dangerous (and preferable) way to view multiple records. In the building mode I display the code, the units, the type, the acquisition date and part of the address. In the tenant mode I display the code, tenant, type and tenant name. Please hit any key to continue........ ENDT SET CONSOLE OFF WAIT SET CONSOLE ON ERAS TEXT Purge deleted entries - this permanently removes from the file all entries marked for deletion and then reindexes the file. Use this carefully and only purge after you have made a backup of the file. Backup data file - I hate to say this - but computers goof and disks are so so delicate. ALWAYS ALWAYS ALWAYS never let a week go by without a backup - so all you lose is one week (do it every day if you want). This program can make an automatic backup of the data to another disk. There should always be another copy of the program and data, but backup is a convenient way for an extra copy. Reindex - this is necessary if you are going to search for a file using the search by index command. The first time initialization option has instructions. Basically, first time around run it to delete the sample files. The set name option refers to the name that appears on the top of the menu and on reports. You can change it anytime. Note, when going from dBASE version to another or from one operating system to another, you must delete memory variable files. These files are MANAGE.DAT and CONAME.MEM. If deleted, the program will reinitialize itself. Please press any key to return to the menu......... ENDT SET CONSOLE OFF WAIT SET CONSOLE ON ERAS CASE (command = 'J' .OR. command = 'Q') STOR f TO more ENDC ENDD while more REST from manage.dat IF escap = 'N' SET ESCAPE OFF ELSE SET ESCAPE ON ENDI IF bright = 'A' SET INTENSITY ON ELSE SET INTENSITY OFF ENDI bright RELE ALL STOR 0 TO box STOR t TO first STOR t TO keepitup RETU