APPLICATIONS GENERATOR SYSTEM By R.L. Coppedge, CDP Please note: If you are not interested in creating your own application please do not spend an abundance of time on this Appendix, as it may be confusing to someone who is mainly a user, and unfamiliar with Dbase III+. Section Topic Page # Section C1.0 Introduction. . . . . . . . . . . . . . 1 C1.1 What you need to Begin . . . . . . . . . . . 1 Section C2.0 Installing AGS Itself. . . . . . . . . . 3 C2.1 Installing AGS from an Archive (ARC) file . . 3 Section C3.0 Installing Create. . . . . . . . . . . . 4 Section C4.0 Running CREATE . . . . . . . . . . . . . 5 C4.1 The MAIN Database . . . . . . . . . . . . . . 5 C4.2 The Create Database . . . . . . . . . . . . . 7 C4.3 Editing the CREATE Database . . . . . . . . . 10 C4.4 Building the Create Files . . . . . . . . . . 11 C4.5 A list of Create Files . . . . . . . . . . . 12 Section C5.0 Modifying Generated Code and Databases. 14 C5.1 A List of Generated Code and Files . . . . . 14 C5.2 Modifying Create-Generated Code . . . . . . . 14 Section C6.0 Modifying the Main Programs. . . . . . . 16 C6.1 Data Verification . . . . . . . . . . . 17 Section C7.0 Starting your System . . . . . . . . . . 19 Section C8.0 Adding more Applications . . . . . . . . 20 Section C9.0 Don't do the Following! . . . . . . . . 21 Section C10.0 Registration . . . . . . . . . . . . . . 22 Section C11.0 Thanks and Thoughts . . . . . . . . . . 24 Section C12.0 Limitations. . . . . . . . . . . . . . . 25 Copyright 1988 - RL Coppedge, CDP All Rights Reserved Illustrations, Figures and Good Stuff Like That Figures: Page: Figure C-1 Subdirectory Structure . . . . . . . . . 2 Figure C-2 Create's Main Menu . . . . . . . . . . . 5 Figure C-3 The Main Database . . . . . . . . . . . 5 Figure C-4 Main.Dbf Entry Screen . . . . . . . . . 7 Figure C-5 The CREATE Database . . . . . . . . . . 8 Figure C-6 Create Edit Screen . . . . . . . . . . . 10 Figure C-7 Create's Initial Screen . . . . . . . . 11 Figure C-8 CREATE's Main Screen . . . . . . . . . . 12 Figure C-9 VERIFY Databases . . . . . . . . . . . . 17 Copyright 1988 - RL Coppedge, CDP All Rights Reserved Section C1.0 Introduction. When creating a new application through the AGS, it is assumed that the person doing so has a relatively complete understanding of both the Dbase III+ syntax, and the programming language itself, as well as knowledge of MS-DOS commands. C1.1 What you need to Begin Prior to beginning anything with the AGS, the user should have the following items prepared: 1> a subdirectory layout will be installed automatically on installation as detailed in Figure C-1. The user should ensure that nothing would be upset by such activity. 2> Dbase III+ should be installed properly, as well as the MS-DOS CONFIG.SYS file, which should at the minimum have the command FILES=20. Also, the CONFIG.DB file located in the Dbase III+ subdirectory should NOT have the "COMMAND = ASSIST" line in it. 3> A directory should be made available that contains the files AGS.ARC, and the program used to de-Archive it. 4> The user should know the name of the database. For this appendix, the application shall be known as APP, and is contained in the directory \DBDATA\APP. Although this is not needed knowledge for installing the AGS, it will be critical in order to use it. 5> A list of all necessary Sort Orders is made (including field names) 6> A text editor should be available, (the program files are too big for Dbase III+'s MODI COMM command). 7> You are familiar with the database function you wish to use and how you want it to work. 8> You are willing to work through the documentation! Please note that we will assume that the database structure of APP is identical to that of TEST in Section 4.1 of the Main Documentation. 1 Copyright 1988 - RL Coppedge, CDP All Rights Reserved -- _____________________________________________________________ | | | | | | | | | ROOT | | \ | | \DBDATA--\------"App" | | \-----Help | | \----Create | | \---Main | | | | \DBASE Stores Dbase III+ itself. | | | | \DBDATA\HELP Stores the generic Command Line | | Help Databases (Section 10.2) and Documentation | | | | \DBDATA\CREATE Stores the Create Programs | | when not in use (for future uses) | | | | \DBDATA\MAIN Stores the copies of the Main | | Programs for future use and .BIN files | | | | \DBDATA\APP Stores all programs and Data | | relevant to Application APP | |___________________________________________________________| Figure C-1 Subdirectory Structure 2 Copyright 1988 - RL Coppedge, CDP All Rights Reserved Section C2.0 Installing AGS Itself. The file AGS.ARC contains all programs and files (aside from Dbase III+ itself and your database file you create) necessary to build your application. It also will build a subdirectory structure, as detailed in Figure C-1, automatically building \DBDATA, \DBDATA\CREATE, \DBDATA\MAIN, and \DBDATA\HELP. It will be up to you to build \DBDATA\APP (where APP is the name of both the application, subdirectory, and the database itself. You give it whatever name you want, as long as it is a valid Dbase III+ database name). C2.1 Installing AGS from an Archive (ARC) file If you have downloaded the AGS from a BBS, and have the file "AGS.ARC", you have apparently de-ARChived it enough to get this file from it (APPENDC.TXT). If not, do the following: 1> Move AGS.ARC to any empty subdirectory. 2> De-archive the files: ARCE AGS *(this may change, depending on the de-ARC program) 3> Begin the installation program. Enter: INSTALL is the data directory where Dbase is residing. Traditionally, this would be: INSTALL \DBASE And then sit back and watch the system go to town. The system will: 1> Create Necessary subdirectories. 2> Move proper files to proper places. 3 Copyright 1988 - RL Coppedge, CDP All Rights Reserved Section C3.0 Installing Create. Assuming that you have performed tasks #1,2 and 3 in the previous section, you are ready to start Create. This is the first step in making an application using the AGS. From now on, you must be in Dbase III+ to make all of this work. This is so it doesn't unwittingly erase anything crucial. As stated before, we're going to call the application to be created "APP". We need to Create a new directory, \DBDATA\APP. So let's get on with it, ok? Commands underlined are to be entered by you: Dbase AGSCr (This starts Dbase III+ for you) This is run only when you are initially setting up the file. If you've already done this, ignore this step. The system will verify that you in fact want to perform this step, and then will prompt you with: What is the Database's Name : Where you would enter "APP" (or whatever you were calling yours). Again, the system will verify your response, and perform the following: 1> Create the subdirectory C:\dbdata\"APP" 2> Move all Main files there 3> Update the Main.Dbf database 4> Begin the Create program for you. If you later needed to simply run the Create program, you would: 1> Enter Dbase normally (DBASE ) 2> Change subdirectory (!CD \DBDATA\APP ) 3> Begin the Create program (DO \DBDATA\CREATE\CREATE ) But for now, the system will start Create for you. 4 Copyright 1988 - RL Coppedge, CDP All Rights Reserved Section C4.0 Running CREATE At this point you should be in the Create program. If not, we would start it by entering: DO \DBDATA\CREATE\CREATE (while in Dbase, and from the \DBDATA\APP subdirectory) The resultant menu is shown in Figure C-2. Application Generator System ---- RL Coppedge, CDP You should run these steps in approximate order... The name of the database is : APP You can: 1> Edit the Main.Dbf database file 2> Create or Modify your Database 3> Build the Shell Create.DBF 4> Edit the Create.DBF 5> Build the Support Files Which one do you want (1-5,Q) Figure C-2 Create's Main Menu C4.1 The MAIN Database There are actually three databases involved in an AGS application. The first (and easiest by far) is the database MAIN.DBF. This database has one record, and really only two critical fields, and four optional fields. Only the first field (NAME) is absolutely necessary; the remainder are optional. The structure looks something as in Figure C-4 (acquired using a Dbase LIST STRUCTURE Command): Structure for database: C:main.dbf Number of data records: 1 Date of last update : 03/19/88 Field Field Name Type Width Dec 1 NAME Character 8 2 TITLE Character 25 3 BELL Logical 1 4 CONFIRM Logical 1 5 DELETED Logical 1 6 EXACT Logical 1 7 DBASE_PTH Character 25 ** Total ** 63 Figure C-3 The Main Database 5 Copyright 1988 - RL Coppedge, CDP All Rights Reserved The fields are used for: 1. NAME. Lets the AGS know what database it is currently using. It should be the name of the Dbase file minus the ".DBF" extension. Example: If we are using our App database, then the field would simply contain "APP" (minus the quotes). 2. TITLE. Appears on many of the screens. A 25 character or less title that describes what the database is. Optional, but recommended. 3. BELL. Sets the Bell option initially ON or OFF. You can change it later through the housekeeping function. See the Dbase III+ documentation for further description of the Bell. 4. CONFIRM. Sets the Confirm option initially ON or OFF. You can change it later through the housekeeping function. See the Dbase III+ documentation for further description of Confirm. 5. DELETE. Sets the Delete option initially ON or OFF. You can change it later through the housekeeping function. See the Dbase III+ documentation for further description of Delete. 6. EXACT. Sets the Exact option initially ON or OFF. You can change it later through the housekeeping function. See the Dbase III+ documentation for further description of Exact. 7. DBASE_PTH. Lets the system know where Dbase III+ is residing, so that the initial program (App.prg) will be placed properly. Now, this database has only one record, which is originally empty. If that record does not have information edited to it with the Application default information prior to anything else happening, Create will not work, AGS will not work, nothing will work. If it is ever moved, Create will not work, AGS will not work, nothing will work. Hopefully you get the idea. AGS is not (at this point) terribly intelligent for handling errors here, so you have to keep track of this mostly yourself. Changing Main.DBF Select option #5 in the Create Main Menu. The screen shown if Figure C-4 will show up. Simply enter the information according to your particular desires. You can change any field in Main at any point in time even after generation of the system...except NAME and DBASE_PTH. Don't ever change them. 6 Copyright 1988 - RL Coppedge, CDP All Rights Reserved Application Generator System ---- RL Coppedge, CDP For the Database within this Directory: What is the Name of the Database test What is the Database Title : Sample DB A 'Y' response corresponds to 'ON' What is the Default Bell Setting : N What is the Default Confirm Setting : N What is the Default Deleted Setting : N What is the Default Exact Setting : N What is the Directory Name for where Dbase is ___________ Figure C-4 Main.Dbf Entry Screen C4.2 Creating your APP database Selecting Option #2 from Creates main menu (Figure C-2) will help you in creating (originally) or modifying (changing later) the structure of your database. The system will display the choices found in Figure C-5: Application Generator System ---- RL Coppedge, CDP For the database : App This Database Does NOT yet Exist Are you ready to: (C)reate your database structure (M)odify your database structure (E)rase your database and try again Which one do you want to do (C,M,E, (Q)uit) Figure C-5 Creating the Database Basically by selecting any of these options you can change the structure of your database. The program simply invokes the Dbase command "Create" or "Modify structure". Refer to your Dbase III+ documentation for more information. C4.21 Changing Your Structure Should the need arise after you've created your system and have been using your database, and then you need to change the 7 Copyright 1988 - RL Coppedge, CDP All Rights Reserved structure, you have the following options: 1> Go into the Create.Dbf manually (Dbase Edit) and make necessary changes after modifying APP.dbf Then DO Create but DO NOT CREATE SHELL CREATE.DBF! and rebuild files. 2> Treat it as a new application and reenter information. C4.3 The Create Database By far this is the toughest part of the system, not in technical entry, but in your own design. If done properly, the system you want will operate smoothly. If not, you're in for a bit of trouble. Take the time to read the AGS user documentation prior to doing this. Design your database carefully, and with all of this in mind. Remember that the best software in the world can't help poor planning. Perhaps this package even more so. The CREATE database defines each field in the database, and their role. Each record in CREATE represents a field in the database APP. CREATE defines what the characteristics are of the field as it relates to other fields, and to the main program. The structure is thus (again with the Dbase LIST STRUCTURE Command) shown in Figure C-6: Structure for database: C:create.dbf Number of data records: 0 Date of last update : 03/13/88 Field Field Name Type Width Dec 1 FIELD_NAME Character 10 2 FIELD_TYPE Character 1 3 FIELD_LEN Numeric 3 4 FIELD_DEC Numeric 3 5 FIELD_DSC Character 40 6 FIELD_DSC2 Character 40 7 FIELD_TITL Character 15 8 FIELD_QRY Character 20 9 SORT Logical 1 10 UPPER_CSE Logical 1 11 SORT_TITL Character 20 12 INDEX_NM Character 8 13 SORT_LTTR Character 1 14 INIT_CVAL Character 80 15 INIT_DVAL Date 8 16 INIT_NVAL Numeric 19 5 17 INIT_LVAL Logical 1 18 SRCHBRO Logical 1 19 VERIFY Logical 1 ** Total ** 274 8 Copyright 1988 - RL Coppedge, CDP All Rights Reserved Figure C-6 The CREATE Database A lot of the records in CREATE (each record represent APP's fields, remember) have several of their fields blank, since several CREATE fields are highly specialized. The first four fields you should recognize as Dbase attributes. The fields are as follows: 1 FIELD_NAME Character 10 Field_name is the name of the field as it appears in the database APP. It is capitalized. 2 FIELD_TYPE Character 1 Field_type is the type of field it is. Either "L"(logical), "N"(Numeric), "C"(Character), "D"(Date) are allowed. 3 FIELD_LEN Numeric 3 Field_len is the maximum length the field can be. 4 FIELD_DEC Numeric 3 If the field is a numeric one, than Field_dec shows how many decimal places there can be. 5 FIELD_DSC Character 40 Field_dsc is the first line of text that will show up on the help screen for this variable (see Section X, "Help" main AGS user Documentation) 6 FIELD_DSC2 Character 40 Field_dsc2 is the second line of text that will show up on the help screen for this variable (see Section X, "Help" main AGS user Documentation) 7 FIELD_TITL Character 15 Field_titl is the description used by the data entry screen to refer to the field. 8 FIELD_QRY Character 20 Field_qry is the description used by the Sort Option screen. This should have a value only for values to be included as a Sort Option. 9 SORT Logical 1 9 Copyright 1988 - RL Coppedge, CDP All Rights Reserved Sort should be set .T. (Yes) if: a> the value is a Sort Option. and b> if during sort, you would want Subtotals on this field. 10 UPPER_CSE Logical 1 Upper_cse should be .T. (Yes) if: a> the value is a Sort Option. and b> UPPER CASE VALUES = lower case values. 11 INDEX_NM Character 8 If the field is a Sort Option, this is the name of the index file under which the index is stored. 12 SORT_LTTR Character 1 If the field is a Sort Option, this is the letter it can also be referred to by on the Sort Option screen. 13 INIT_CVAL Character 75 If the field is a Character field, this is the initial value the field would have during initial data entry. 14 INIT_DVAL Date 8 If the field is a Date field, this is the initial value the field would have during initial data entry. 15 INIT_NVAL Numeric 19 5 If the field is a Numeric field, this is the initial value the field would have during initial data entry. 16 INIT_LVAL Logical 1 If the field is a Logical field, this is the initial value the field would have during initial data entry. 17 SRCHBRO Logical 1 If the field is to be included in the output of the Search or Browse function, this is a .T. (Yes). 18 VERIFY Logical 1 If the field is going to have verification checks performed on it, this flag should be set to .T. (Yes). 10 Copyright 1988 - RL Coppedge, CDP All Rights Reserved 19 BLANK_FLD Logical 1 If this field MUST have a value for the record to be "legit", this field should be .T. (Yes). This will come into play when running the "Delete Blank Records" Function, in Housekeeping. C4.4 Initializing the CREATE Database Assuming you've already defined the APP database (or whatever you're calling yours), you've still got to initialize the CREATE database to properly reflect the various fields. To do that, you must, from the CREATE program, build the Shell of Create.Dbf. So from the Create program, Choose Option #1, "Build the Shell Create.DBF". The program will then verify you wish to do that, and make a version of Create.dbf which has one record for each field in the APP database, with the first four fields in each record properly filled in. C4.3 Editing the CREATE Database Now you want to add some of the specific information into the Create database to add some spice to it all. Choose option #2, "Edit the Create.DBF". This function will then ask you if you want to do the fields one at a time or all of them. Choose to do all of them (you'd do one at a time for fine tuning, when you become more adept at using this beastie). The system will then choose the first field in the APP database (first record in the CREATE), and display what is shown if Figure C-7. Field Name :MR_MRS Type: C Length : 12 Decimal Places 0 What is the Data Entry Label for this Field :Mr,Mrs,Ms,Dr Enter the help description for the variable: Line #1: Line #2: Answer these only for Sort Option Variables What is going to be Sort Option Desc? Mr,Mrs,Ms,Dr Do you want subtotals on a Search with this SO? F What do you want to call the Index File? What's the Letter used on the SO screen? Should the sorting be done all uppercase? F Should the field display in the Search/Browse F Is this a verifiable Field? F Are Blank Fields allowed? F Enter Default Value for Data Entry: Mr. Figure C-7 Create Edit Screen 11 Copyright 1988 - RL Coppedge, CDP All Rights Reserved (SO Means Sort Option, by the way). When you've answered all of the questions, the computer will ask "(S)ame, (N)ext, (P)revious, (Q)uit". By selecting one of those choices, you choose which field to change, if any. For most fields in your database, you're only going to have to fill in the first three lines. More important ones (the sort fields) will take a little longer. Once you're done, choose "Q". C4.5 Building the Create Files Now you're ready for the final step in preparing your Application...building your Create files. Choose Option #3, Build the Support Files. The system will then respond with a window as shown in Figure C-8: Do you want to Run this? Y Do you want the Create default Y or N Y Figure C-8 Create's Initial Screen This Section will build the following programs: I(Database Name).PRG C(Database Name).PRG E(Database Name).PRG R(Database Name).PRG P(Database Name).PRG T(Database Name).PRG S(Database Name).PRG PR(Database Name).PRG W1(Database Name).PRG W2(Database Name).PRG M(Database Name).PRG <----This one resides in the same directory as Dbase Create will also build empty database files (with 1 blank record) for use in the verification function: (Field Name).DBF Each file has a critical role to play in the AGS, and is used extensively throughout the system. CREATE builds them. As before, the system will look to the what you've created in the Create.DBF database for information you've provided. It will then ask you to verify that you want to do this,and if the file defaults should be Yes or No Build. Initially, select the 12 Copyright 1988 - RL Coppedge, CDP All Rights Reserved values as they are shown in the Figure C-8. After that, the system will display what is shown in Figure C-9. As you can see, there are several files that must be generated in order for the system to be able to run on your particular database. E> Entry Screen File...Currently: Build I> Initialize File...Currently: Build P> Public File...Currently: Build T> Transfer File...Currently: Build S> Save File...Currently: Build PR> Print File...Currently: Build W1> WPS Convert 1 File...Currently: Build W2> WPS Convert 2 File...Currently: Build C> C Sort Menu File...Currently: Build R> Reindex File...Currently: Build V> Verify File...Currently: Build M> Main Program File...Currently: Build Hit the letter on the left of the line you want to change or Q to end Figure C-9 CREATE's Main Screen At the end of each line are either the word(s) Build or No Build. If you had selected N earlier, they would have started out as 'No Build'. To change one, just enter the letter(s) on the left that corresponds to the file you want to change. They'll toggle from 'Build' to 'No Build'. For the first run you want them all to be Build, but later on you may only want to regenerate some of them. When you're satisfied, simply enter 'Q' and the system will then build all files (10 in all). The actual names of these files are the letter on the left plus the Application name plus the extension ".PRG". So, for example, the print file would be PRAPP.PRG. When you enter Q and hit , the system will display messages that it's building each file. Once done, the system will ask you if you want to Reindex your Database. If you say no, then the system will bomb the first time you do data entry. Once create is done, you have the option of erasing the Create programs. This will erase all Create-related programs (only in the \DBDATA\APP directory. They're also in the \DBDATA\CREATE, remember). (You don't need them again unless you make changes to the database structure). Do not do this until you're sure everything works! You can rerun Create, and choose to delete the files later! 13 Copyright 1988 - RL Coppedge, CDP All Rights Reserved If you need to run Create again after deleting the Create files, simply: 1> Move all ".PRG" files from the \DBDATA\CREATE subdirectory, 2> Run Create again! C4.6 A list of Create Files The following is a list of all files involved in the Create process: CREATE.PRG Driver of Create process CRMAIN.PRG Edits Main.dbf file CRDBBLD.PRG Helps build database CRSHELL.PRG Builds Shell Create.dbf CREDIT.PRG Edit Create.dbf CRBUILD.PRG Builds AGS Support Files CRDELETE.PRG Deletes Create programs EBLD.PRG Builds Data Entry File IBLD.PRG Builds Data initialize File PBLD.PRG Builds Public Variable File TBLD.PRG Builds Transfer Memory -> Disk File SBLD.PRG Builds Transfer Disk -> Memory File PRBLD.PRG Builds Print File W1BLD.PRG Builds 1st Conversion File for WP Conversion W2BLD.PRG Builds 2nd Conversion File for WP Conversion CBLD.PRG Builds Sort Menu Program RBLD.PRG Builds Reindex File Program MBLD.PRG Builds initial program (moves from \DBASE to \DBDATA\APP) VBLD.PRG Builds empty Verify Databases 14 Copyright 1988 - RL Coppedge, CDP All Rights Reserved Section C5.0 Modifying Generated Code and Databases. Once Create has done its duty, you're close but not quite there. First, you must make very small modifications to the created code, so that it will be more understandable by the user. Generally speaking, these modifications are only necessary for data entry screens or display screens. In these cases, this is limited to making them more palatable for the user and grouping the information more logically for the application. C5.1 A List of Generated Code and Files The following is a list of all Files created by the Create process: Name Used In: Description: EAPP.PRG I Data Entry Screen IAPP.PRG I Initialize values for new records PAPP.PRG I Sets all memory variables public TAPP.PRG I Transfers memory to disk SAPP.PRG I Transfers disk to memory PRAPP.PRG I Hardcopy printout (Inquiry/Entry) W1APP.PRG W Initialize variables for WP Conv. W2APP.PRG W Initialize more variables for WP Conv. CAPP.PRG ISW Chooses Sort Order for Access to Info. RAPP.PRG H Performs Reindexing of Data APP.PRG B Starts whole system Used In: I Inquiry/Entry S Search W WP Conversion H Housekeeping B Beginning Also created are database files (named after the field in the APP database) which are used for verification (see Section C6.0). C5.2 Modifying Create-Generated Code There are basically two files that usually have to be modified. They are the data entry module (EAPP.PRG) and the hardcopy printout file (PRAPP.PRG). These two screens will work without changes. But they'll work even better if you make some simple changes. To see how your data entry screen will appear, enter the following: DO PAPP (this will make your variables public) DO IAPP (this will give them initial values) 15 Copyright 1988 - RL Coppedge, CDP All Rights Reserved DO EAPP (this will display your d/e screen) Your screen should show up...if you like it, fine. But I suggest you move things around so that they make a little more logical order. If you use a text editor within Dbase (I prefer Borland's Sidekick) you can take a look at your screen after changing it by simply running EAPP (you don't have to run the other two again). Of course, you can also use the Dbase Editor (Modify Command EAPP). Either way, through some relatively simple changes, it would be easier for a relative novice to use and understand. The same type of modification is recommended for the PRAPP.PRG program file. Another key thing to note is that if your database contains more than 24 fields, there are two files which MUST be modified (the calculated @..SAY's will be off of the screen). The files are: E.PRG (the data entry screen) W1.PRG (the WP conversion selection screen) The system will display a message to this effect when needed. (all of this needs to be done within Dbase) 16 Copyright 1988 - RL Coppedge, CDP All Rights Reserved Section C6.0 Modifying the Main Programs. The following Main files are used by the AGS: File Name Note Description Marker MENU (1) Main Menu (Sec. 3.0, Fig. 3-1) MAINT (2) Inquiry/Entry (Sec. 4.0) REPORT (3) Reports (Sec. 5.0) TRANS (3) File Transfer (Sec. 6.0) WPSCONV : (2) WP Conversion (Sec. 7.0) CVWPS Process for WP Conv WSMOD Module for Wordstar 2000 WPMOD Module for Word Perfect WPSMOD Module for WPS PC+ DSP4MOD Module for Display Write IV DBMOD Module for Dbase III+ CVWMAC External Macro Commands SEARCH (2) Search (Sec. 8.0) VERVAR Verify variable names HOUSE Housekeeping (Sec. 9.0) BACKUP Data/Program Backup (Sec 9.1) * VERIFY Data Verification (Sec.9.3) CONTROL Sets Control options (Sec 9.4) BLANK Deletes Blank Records (Sec 9.5) PACK Erases deleted data (Sec. 9.6) HELP Help (Sec. 10.0) CVHLP Process for Help FILTER (2) Selection Criteria Maint. (Sec. 11.0) VEREDT Maintains list of Ver. Data (Sec. 12.0) REGINFO Where Do ya send da bucks(Sec 13.0) Multiple Use Programs: ERROR FLTGUIDE (4) FLTERR (4) Bad Selection Criteria mess. (Sec. 11.0) MANFLT (4) GETFLT (4) Chooses Selection Criteria (Sec. 11.0) LIGHTBAR (4),(5) Database: FLT Selection Criteria Database (Sec. 11.4) BROWSE Temporary Database for Browse (Sec. 4.0,11.0) Forms: FILTER Selection Criteria Rep Form (Sec. 11.0) VERIFY Verify Report Form 17 Copyright 1988 - RL Coppedge, CDP All Rights Reserved MENUBAR.BIN (5) Both files used for loaded DBWIND.BIN (6) additional modules. !-The databases used by this program has a potential modification of some type or another, and are covered in this Section (C6.1). *-These files must be contained in the \DBDATA\MAIN subdirectory. All other files listed should be in the \DBDATA\APP subdirectory. Note Marker: 1- Main menu, loads the files: Menubar.bin, Dbwind.bin, sets the error program Error.prg. 2- Uses the set of Selection Criteria programs. 3- Basically shell menu programs, which can be added to or modified as needed. 4- All part of the Selection Criteria entry routine. 5- Supplied through Ashton-Tate's Dbase Utilities, Volume I (good book!) 6- Compliments of who, I honestly don't know...all I have is this file which works kinda nice... C6.1 Data Verification Verification is a function that must be defined independently of each database application. When you run the Create function, you specify the fields which would need verification. A Verify database is created for each of those fields (named after the fields themselves). Each Verify database initially contains one record each. The database has the structure as shown in Figure C-10. _____________________________________________________________ | | | Structure for database: C:verify.dbf | | Number of data records: 1 | | Date of last update : 03/18/88 | | Field Field Name Type Width Dec | | 1 FIELD_NAME Character 9 | | 2 F_LOW_VAL Numeric 10 4 | | 3 F_HIGH_VAL Numeric 10 4 | | 4 F_OLD_DATE Date 8 | | 5 F_NEW_DATE Date 8 | | 6 FLD_VAL Character 80 | | 7 BLANKS Logical 1 | | ** Total ** 127 | |___________________________________________________________| Figure C-10 VERIFY Databases 18 Copyright 1988 - RL Coppedge, CDP All Rights Reserved Verification works on three data field types, Character, Numeric, and Date. There is no particular verification test on logical data types (I couldn't think of why there should be one). Both numeric and date checks are low value >= data <= high value (greater or equal to 6 but less or equal to 12, that sort of thing), whereas character checks against a database (with the same name as the field it's checking) which contains nothing but a list of legitimate values for that field. To prepare the verify program for use, simply follow these steps: 1> Identify each field that needs verification, and the limits (low and high -end, in the case of numeric or date fields. A list of good values, in the case of character fields) that each field has. 2> Edit (and append) the Create database so that each record has the Verify field set '.T.'. 3> Run the Create function. If already run, run it again with only the V-function chosen as "Build": ("V> Verify File...Currently: Build"). 4> Edit the Verify databases that Create made. Remember that the name of the actual database file is the field name and with the same structure as Figure C-9. You would edit them as follows: Date Fields: Edit the 1st record so that F_OLD_DATE contains the oldest acceptable date, and F_NEW_DATE contains the most recent. Numeric Fields: Edit the 1st record so that F_LOW_VAL contains the smallest acceptable number, and F_HIGH_VAL contains the most largest. Character Fields: Append the database so that it has one record for each acceptable value. Each record would have the variable set to equal an acceptable value. 19 Copyright 1988 - RL Coppedge, CDP All Rights Reserved Section C7.0 Starting your System Real simple here. There are three ways: 1> From the Dbase III+ dot prompt (and subdirectory), type in: DO APP 2> From the Dbase III+ dot prompt and the APP subdirectory: DO MENU 3> From the C> prompt: first move to the Dbase III+ subdirectory (assuming that \DBASE is it): CD \DBASE and then enter the Dbase III+ command: DBASE APP 20 Copyright 1988 - RL Coppedge, CDP All Rights Reserved Section C8.0 Adding more Applications There is no theoretical limit to the number of applications your system can have, other than standard disk capacity. When you add a new system, you need to do the following (let's assume you want to add an application called Track): 1> DBASE AGSCR (create new subdirectory) 2> TRACK (when it asks for DB name) 3> DO \DBDATA\CREATE\CREATE (although AGSCR will go into Create, just make sure I mention it) 4> MODI COMM ETRACK Modify your entry screen (if needed) 5> MODI COMM PRTRACK Modify your print program (if needed) 14> DO MENU Run it! 21 Copyright 1988 - RL Coppedge, CDP All Rights Reserved Section C9.0 Don't do the Following! There are some things you shouldn't do with your AGS. They include: a> Defining more than four Sort Options. (If the users of this system let me know there's a need, more can be added) b> Using Memo fields. (Future Release) c> Use the following as field or application names: Create ?Bld (any letter followed by "Bld") Create1 Browse Flt Main Name Some others...in the registered version I will include a variable map. If you run into really bizarre problems, that could be the reason. Rename you Dbase variables and try again. d> Do not use fields with the first 6 letters being identical to one another. e> Do not change the Create.dbf directly (through Edit, etc) without being sure of what you're doing!! f> At least have 1 indexed field in the database. g> Don't hesitate to let me know what kind of improvements you'd like to see in future releases! g> Give up... 22 Copyright 1988 - RL Coppedge, CDP All Rights Reserved Section C10.0 Registration Although this is a fully functional system, there are several things that are left out. Amongst them are: Specific technical documentation. Multiple Screens for Data Entry. User Classification. Data Values based on Formulas. Multi-field Sort Orders. Multi-Database capabilities. Sample Systems. Advanced Help Capabilities. Selection Criteria based on Functions. Better Report Handling. Faster running. Support. YES I plan to have a Dbase IV version... (If Ashton-Tate doesn't beat me to it) The AGS has already been used in several places, and for many functions. They include: Inventory Order Entry Management Personnel Housing Title Transfers Housing Financial Analysis Mailing List Maintenance Travel Agent Customer Maintenance Union skills tracking Computer Maintenance Simple A/R Remote Data Entry Account Tracking Get the idea? As you can hopefully see, there really is no limit to the type of application here. The version you have here has a limit of 50 records for each database placed on it. By registering you version, you would be given an unlimited use version. In some cases, however, there are some changes which would make the system run even smoother. But in order to make those changes, you have to have a special registered system, which is delivered with full Dbase code intact! (Shareware distributed version contains executable only...) But how do I register? (I hear you cry) Simple. Send money (to support the Shareware concept) to: RL Coppedge, CDP CIS #: 72117,165 446 Richmond Pk E 402A Genie: R.COPPEDGE1 Richmond Hts, Ohio Cleve Free-Net: AE069 44143 23 Copyright 1988 - RL Coppedge, CDP All Rights Reserved How much should you send? I leave that up to a debate between you, your wallet and your conscience. (C'mon, Conscience!!) A general suggestion: single users: Companies, Consultants, etc. Executable: $50 $100 W/Code: $100 $250 Code version also includes some technical documentation explaining what it is you see. Obviously, the more support of this type, the more likely it is that I would continue to improve this system along the shareware school of thought. There are a lot of improvement currently in the test version 2.1... 24 Copyright 1988 - RL Coppedge, CDP All Rights Reserved Section C11.0 Thanks and Thoughts This has been a long time in coming. I first thought of this back when working on a system on an Apple II in CP/M. The inherent limitation of Dbase III+ I have always thought was that without special programming, your data edits were always directly on the database file itself (I'm sorry, but Ctrl^Q doesn't make it with me). Certainly for new users having to depend upon bizarre key combinations this could be difficult. So I tried to build a system that would automatically design, build and maintain the relationship between the memory variable and the database field it represents. With such capability, it was relatively easy to then generate menu's, options and the like. Most of this was a natural progression driven by my clients needs. Some were simply my philosophy, which is keep the function digestible. If not, the snazziest functions in the world aren't going to help. In spite of Dbase's many additional functions, an overwhelming need for DBMS's lies not in the functions, but in a smooth way to take ones ideas and requirements and move them from thought to paper to keyboard to database. This will hopefully help. Unfortunately, the documentation, although lengthy, stinks. I apologize to those who forced themselves through it. Keep in mind, though, that with the system understood, the AGS can generate for you a complete database management/entry system, with the following features: 1> Entry screens in English 2> Sorted data 3> Browse capabilities 4> Data Verification 5> Help Screens 6> Word Processing Interface 7> Free-Form Query 8> Controlled Data Entry 9> Open Report Menu 10> Open Communications Menu 11> More, I'm sure ...all in about 15 minutes. Plus, if you maintain a number of systems (like I do), it makes maintaining them much easier. Training and documentation is also easier. The bottom line is, Does this work for you? I guarantee that it probably won't for you. I also guarantee that it you toy with it and play around, you might be pleasantly surprised.... Later!!! Bob 25 Copyright 1988 - RL Coppedge, CDP All Rights Reserved Section C12.0 Limitations. I take no responsibility for any loss of assets, tangible or otherwise, which occur through the use of this software. I will be more than happy to assist anyone in the use, but I refuse to be a sitting duck in a lawsuit. If you do need help from me, be polite and you're much more likely to get it. 26 Copyright 1988 - RL Coppedge, CDP All Rights Reserved