














                  PRO-dVelBase (TM) Lite version 1.0 Reference Guide


                                  copyright (C) 1992
















                                 Accelerated Software
                                   15910 - 112A St.
                                  Edmonton, Alberta
                                   Canada  T5X 4X3
                                Phone: (403) 456-9163
                                 Fax: (403) 457-3582

















          


                                                                     Page I


                           T a b l e  o f  C o n t e n t s
                           ===============================


          Chapter 1:  Introduction  . . . . . . . . . . . . . . .    Page 1
               A. Registration  . . . . . . . . . . . . . . . . .    Page 1
               B. Technical Support . . . . . . . . . . . . . . .    Page 1
               C. How to Use This Documentation . . . . . . . . .    Page 1
               D. Technical Specifications of PRO-dVelBase  . . .    Page 2
                    Database Specifications . . . . . . . . . . .    Page 2
                    Forms . . . . . . . . . . . . . . . . . . . .    Page 2
                    Fields  . . . . . . . . . . . . . . . . . . .    Page 3
                    Tables  . . . . . . . . . . . . . . . . . . .    Page 3
                    Queries . . . . . . . . . . . . . . . . . . .    Page 3
                    Reports . . . . . . . . . . . . . . . . . . .    Page 3
                    Labels  . . . . . . . . . . . . . . . . . . .    Page 4
                    Mail  . . . . . . . . . . . . . . . . . . . .    Page 4
                    Functions and expressions . . . . . . . . . .    Page 4
                    Searches  . . . . . . . . . . . . . . . . . .    Page 4
                    Utilities . . . . . . . . . . . . . . . . . .    Page 4
               E. System Requirements . . . . . . . . . . . . . .    Page 4
               F. Compatibility . . . . . . . . . . . . . . . . .    Page 4
               G. Installation and Running PRO-dVelBase . . . . .    Page 5
               H. Help  . . . . . . . . . . . . . . . . . . . . .    Page 6
               I. Basic Principles  . . . . . . . . . . . . . . .    Page 6

          Chapter 2:  Form  . . . . . . . . . . . . . . . . . . .    Page 8
               A. Form/Create . . . . . . . . . . . . . . . . . .    Page 8
                    Database Fields . . . . . . . . . . . . . . .   Page 12
                              Form: Fixed Field Definitions . . .   Page 12
                              Form: Changeable Field Definitions    Page 18
                    Calculated Fields . . . . . . . . . . . . . .   Page 22
                              Calculated Field Definitions  . . .   Page 22
                                   Summary Calculated Fields  . .   Page 22
                                   Formula Calculated Fields  . .   Page 22
                    Editing Text and Fields . . . . . . . . . . .   Page 24
                              Field Identification Characters . .   Page 24
                              Moving Text and Fields  . . . . . .   Page 24
                              Blocking Text and Fields  . . . . .   Page 24
                              Editing Field Definitions . . . . .   Page 25
                              Drawing Boxes . . . . . . . . . . .   Page 25
                              IBM Extended Graphics Characters  .   Page 25
                              Moving to Next/Previous Screen  . .   Page 25
                              Deleting Fields . . . . . . . . . .   Page 25
                    Multi-File Forms  . . . . . . . . . . . . . .   Page 26
                              Foreign       Database      Relationship
                              Definitions . . . . . . . . . . . .   Page 26
                              Scroll Window . . . . . . . . . . .   Page 28
                              Steps to Removing Relationships . .   Page 29
                    Saving a Form . . . . . . . . . . . . . . . .   Page 29
               B. Form/Modify . . . . . . . . . . . . . . . . . .   Page 29
               C. Form/Select . . . . . . . . . . . . . . . . . .   Page 30
               D. Form/Execute  . . . . . . . . . . . . . . . . .   Page 31

          


                                                                    Page II

                    Appending and Editing Records . . . . . . . .   Page 33
                              Editing Character Fields  . . . . .   Page 34
                              Editing Numeric Fields  . . . . . .   Page 34
                              Editing Logical Fields  . . . . . .   Page 35
                              Editing Single Key Fields . . . . .   Page 35
                              Editing Date Fields . . . . . . . .   Page 35
                              Editing Time Fields . . . . . . . .   Page 35
                              Editing Memo Fields . . . . . . . .   Page 35
                              Editing Fields in a One-to-Many Area  
                                                                    Page 36
                    Table View  . . . . . . . . . . . . . . . . .   Page 36
                              Altering Table View . . . . . . . .   Page 37
                              Editing and Appending in Table Mode   Page 38
                              Indexed Table Mode  . . . . . . . .   Page 39
                    The Search Menu . . . . . . . . . . . . . . .   Page 40
                              Goto  . . . . . . . . . . . . . . .   Page 40
                              Search  . . . . . . . . . . . . . .   Page 40
                              Search & Replace  . . . . . . . . .   Page 42
                              Search & Delete . . . . . . . . . .   Page 42
                              Search & Undelete . . . . . . . . .   Page 43
               E. Form/Unselect . . . . . . . . . . . . . . . . .   Page 43
               F. Form/Delete . . . . . . . . . . . . . . . . . .   Page 43

          Chapter 3:  Query . . . . . . . . . . . . . . . . . . .   Page 45
               A. Query/Create  . . . . . . . . . . . . . . . . .   Page 45
                    Query Editor  . . . . . . . . . . . . . . . .   Page 46
                    To Select Fields for Viewing  . . . . . . . .   Page 48
                    To Sort the Fields  . . . . . . . . . . . . .   Page 49
                    Saving The Query  . . . . . . . . . . . . . .   Page 49
               B. Query/Modify  . . . . . . . . . . . . . . . . .   Page 50
               C. Query/Select  . . . . . . . . . . . . . . . . .   Page 50
                    To Select a Query . . . . . . . . . . . . . .   Page 50
               D. Query/Execute . . . . . . . . . . . . . . . . .   Page 51
               E. Query/Unselect  . . . . . . . . . . . . . . . .   Page 51
               F. Query/Delete  . . . . . . . . . . . . . . . . .   Page 52
               G. Query/Add to Cat. . . . . . . . . . . . . . . .   Page 52
                    To Add a Query to a Catalog . . . . . . . . .   Page 52
               H. Query/Remove from Cat.  . . . . . . . . . . . .   Page 52
                    To Remove a Query from the catalog  . . . . .   Page 53

          Chapter 4:  Report  . . . . . . . . . . . . . . . . . .   Page 54
               A. Report/Create . . . . . . . . . . . . . . . . .   Page 54
                    Report Editor . . . . . . . . . . . . . . . .   Page 56
                    Field Placement . . . . . . . . . . . . . . .   Page 57
                    One-to-many Relationships . . . . . . . . . .   Page 61
                    Group Expressions . . . . . . . . . . . . . .   Page 62
                    Saving the Report . . . . . . . . . . . . . .   Page 62
               B. Report/Modify . . . . . . . . . . . . . . . . .   Page 62
               C. Report/Select . . . . . . . . . . . . . . . . .   Page 62
               D. Report/Execute  . . . . . . . . . . . . . . . .   Page 63
               E. Report/Unselect . . . . . . . . . . . . . . . .   Page 63
               F. Report/Add to Cat.  . . . . . . . . . . . . . .   Page 63
               G. Report/Remove from Cat. . . . . . . . . . . . .   Page 63
               H. Report/Delete . . . . . . . . . . . . . . . . .   Page 63


          


                                                                   Page III

          Chapter 5:  Mail  . . . . . . . . . . . . . . . . . . .   Page 64
               A. Mail/Create . . . . . . . . . . . . . . . . . .   Page 64
               B. Mail/Modify . . . . . . . . . . . . . . . . . .   Page 66
               C. Mail/Select . . . . . . . . . . . . . . . . . .   Page 66
               D. Mail/Execute  . . . . . . . . . . . . . . . . .   Page 66
               E. Mail/Unselect . . . . . . . . . . . . . . . . .   Page 66
               F. Mail/Add to Cat.  . . . . . . . . . . . . . . .   Page 66
               G. Mail/Remove from Cat. . . . . . . . . . . . . .   Page 66
               H. Mail/Delete . . . . . . . . . . . . . . . . . .   Page 67
               I. Mail/Import Text File . . . . . . . . . . . . .   Page 67

          Chapter 6:  Label . . . . . . . . . . . . . . . . . . .   Page 68
               A. Label/Create  . . . . . . . . . . . . . . . . .   Page 68
               B. Label/Modify  . . . . . . . . . . . . . . . . .   Page 72
               C. Label/Select  . . . . . . . . . . . . . . . . .   Page 72
               D. Label/Execute . . . . . . . . . . . . . . . . .   Page 72
               E. Label/Unselect  . . . . . . . . . . . . . . . .   Page 72
               F. Label/Add to Cat. . . . . . . . . . . . . . . .   Page 72
               G. Label/Remove from Cat.  . . . . . . . . . . . .   Page 72
               H. Label/Delete  . . . . . . . . . . . . . . . . .   Page 72

          Chapter 7:  Utilities . . . . . . . . . . . . . . . . .   Page 73
               A. Append  . . . . . . . . . . . . . . . . . . . .   Page 73
                    Append/Create . . . . . . . . . . . . . . . .   Page 73
                    Append/Modify . . . . . . . . . . . . . . . .   Page 74
                    Append/Select . . . . . . . . . . . . . . . .   Page 74
                    Append/Execute  . . . . . . . . . . . . . . .   Page 75
                    Append/Unselect . . . . . . . . . . . . . . .   Page 75
                    Append/Add to Cat.  . . . . . . . . . . . . .   Page 75
                    Append/Remove from Cat. . . . . . . . . . . .   Page 75
                    Append/Delete . . . . . . . . . . . . . . . .   Page 75
               B. Post  . . . . . . . . . . . . . . . . . . . . .   Page 75
                    Post/Create . . . . . . . . . . . . . . . . .   Page 76
                    Post/Modify . . . . . . . . . . . . . . . . .   Page 77
                    Post/Select . . . . . . . . . . . . . . . . .   Page 77
                    Post/Execute  . . . . . . . . . . . . . . . .   Page 77
                    Post/Unselect . . . . . . . . . . . . . . . .   Page 78
                    Post/Add to Cat.  . . . . . . . . . . . . . .   Page 78
                    Post/Remove from Cat. . . . . . . . . . . . .   Page 78
                    Post/Delete . . . . . . . . . . . . . . . . .   Page 78
               C. Setup . . . . . . . . . . . . . . . . . . . . .   Page 78
               D. Re-index  . . . . . . . . . . . . . . . . . . .   Page 79
               E. Database Pack . . . . . . . . . . . . . . . . .   Page 79
               F. Clone . . . . . . . . . . . . . . . . . . . . .   Page 79
               G. Zap . . . . . . . . . . . . . . . . . . . . . .   Page 79

          Chapter 8:  Options . . . . . . . . . . . . . . . . . .   Page 80
               A. Change Dir  . . . . . . . . . . . . . . . . . .   Page 80
               B. Recalc  . . . . . . . . . . . . . . . . . . . .   Page 80
               C. Flush . . . . . . . . . . . . . . . . . . . . .   Page 80
               D. Printer Setup . . . . . . . . . . . . . . . . .   Page 80
                    Printer Setup/Create  . . . . . . . . . . . .   Page 81
                    Printer Setup/Modify  . . . . . . . . . . . .   Page 81
                    Printer Setup/Delete  . . . . . . . . . . . .   Page 82

          


                                                                    Page IV

               E. Save WorkArea . . . . . . . . . . . . . . . . .   Page 82
               F. Quit  . . . . . . . . . . . . . . . . . . . . .   Page 82

          Appendix A:  dBASE (TM) Naming Conventions  . . . . . .   Page 83

          Appendix B:  Formulas and Functions . . . . . . . . . .   Page 84
               A. Formulas  . . . . . . . . . . . . . . . . . . .   Page 84
               B. Constants . . . . . . . . . . . . . . . . . . .   Page 84
                    Numeric Constants . . . . . . . . . . . . . .   Page 84
                    Character Constants . . . . . . . . . . . . .   Page 84
                    Logical Constants . . . . . . . . . . . . . .   Page 85
                    Date Constants  . . . . . . . . . . . . . . .   Page 85
               C. Operators . . . . . . . . . . . . . . . . . . .   Page 85
               D. Functions . . . . . . . . . . . . . . . . . . .   Page 88
                    ABS(Num_Value)  . . . . . . . . . . . . . . .   Page 88
                    ASC(Char_Value) . . . . . . . . . . . . . . .   Page 88
                    AT(Char_Value1, Char_Value2)  . . . . . . . .   Page 88
                    CDOW(Date_Value)  . . . . . . . . . . . . . .   Page 88
                    CHR(Num_Value)  . . . . . . . . . . . . . . .   Page 88
                    CMONTH(Date_Value)  . . . . . . . . . . . . .   Page 89
                    CTOD(Char_Value)  . . . . . . . . . . . . . .   Page 89
                    DATE()  . . . . . . . . . . . . . . . . . . .   Page 89
                    DAY(Date_Value) . . . . . . . . . . . . . . .   Page 89
                    DBF() . . . . . . . . . . . . . . . . . . . .   Page 89
                    DEL() . . . . . . . . . . . . . . . . . . . .   Page 89
                    DELETED() . . . . . . . . . . . . . . . . . .   Page 89
                    DOW(Date_Value) . . . . . . . . . . . . . . .   Page 89
                    DTOC(Date_Value) and DTOS(Date_Value) . . . .   Page 89
                    EXP(Num_Value)  . . . . . . . . . . . . . . .   Page 90
                    FIELD(Num_Value)  . . . . . . . . . . . . . .   Page 90
                    IIF(Condition, Expression1, Expression2)  . .   Page 90
                    INT(Num_Value)  . . . . . . . . . . . . . . .   Page 90
                    ISALPHA(Char_Value) . . . . . . . . . . . . .   Page 90
                    ISLOWER(Char_Value) . . . . . . . . . . . . .   Page 90
                    ISUPPER(Char_Value) . . . . . . . . . . . . .   Page 90
                    LEFT(Char_Value, Number of characters from left)  
                                                                    Page 90
                    LEN(Char_Value) . . . . . . . . . . . . . . .   Page 91
                    LOG(Num_Value)  . . . . . . . . . . . . . . .   Page 91
                    LOWER(Char_Value) . . . . . . . . . . . . . .   Page 91
                    LTRIM(Char_Value) . . . . . . . . . . . . . .   Page 91
                    MAX(Num_Value1, Num_Value2) . . . . . . . . .   Page 91
                    MIN(Num_Value1, Num_Value2) . . . . . . . . .   Page 91
                    MOD(Num_Value1, Num_Value2) . . . . . . . . .   Page 91
                    MONTH(Date_Value) . . . . . . . . . . . . . .   Page 91
                    RECCOUNT()  . . . . . . . . . . . . . . . . .   Page 91
                    RECNO() . . . . . . . . . . . . . . . . . . .   Page 91
                    RIGHT(Char_Value,   Number   of   characters  from
                         right) . . . . . . . . . . . . . . . . .   Page 92
                    ROUND(Num_Value1, Num_Value2) . . . . . . . .   Page 92
                    RTRIM(Char_Value) . . . . . . . . . . . . . .   Page 92
                    SPACE(Num_Value)  . . . . . . . . . . . . . .   Page 92
                    SQRT(Num_Value) . . . . . . . . . . . . . . .   Page 92
                    STR(Num_Value, Length, Decimals)  . . . . . .   Page 92
                    SUBSTR(Char_Value,  Starting  Position,  Number of

          


                                                                     Page V

                         Characters)  . . . . . . . . . . . . . .   Page 92
                    TIME()  . . . . . . . . . . . . . . . . . . .   Page 92
                    UPPER(Char_Value) . . . . . . . . . . . . . .   Page 93
                    VAL(Char_Value) . . . . . . . . . . . . . . .   Page 93
                    YEAR(Date_Value)  . . . . . . . . . . . . . .   Page 93

          Appendix C:  Warning and Error Messages . . . . . . . .   Page 94
               A. Warning Messages  . . . . . . . . . . . . . . .   Page 94
               B. Error Messages  . . . . . . . . . . . . . . . .   Page 95

          Appendix D:  PRO-dVelBase Files . . . . . . . . . . .    Page 102
               A. Program Files . . . . . . . . . . . . . . . .    Page 102
               B. Created Files . . . . . . . . . . . . . . . .    Page 102

          Appendix E:  Trademark Notices  . . . . . . . . . . .    Page 104








































          


                                                                     Page 1


                               Chapter 1:  Introduction
                               ========================

          PRO-dVelBase Lite (from now on abbreviated to PRO-dVelBase) is a
          relational database management system.  It was developed around
          the premise that database management is not the sole domain of
          the programmer.

          With PRO-dVelBase, all the features and functions of a powerful
          database management system are accessed through menus and require
          no programming at all.  Therefore, nonprogrammers may create very
          sophisticated database applications without using a programming
          language.

          PRO-dVelBase revolves around a series of "objects" such as form,
          query, report, mail, label, append and post.  These "objects" may
          be created, modified, selected, executed and deleted.  Through
          manipulation of these objects, the various database functions may
          be easily achieved without using a complex programming language.

          A. Registration
          ===============

          PRO-dVelBase Lite 1.0 is distributed as "shareware".  This allows
          you to "try before you buy".  If you find this program helpful,
          we ask you to send in a registration fee.  With this registration
          fee, you will obtain a registered copy of the software, a printed
          200 page reference manual, a 100 page tutorial, a coupon towards
          the purchase of PRO-dVelBase 2.0 and free telephone support for
          90 days.  Please print the accompanying file, README.TXT, for an
          order form.

          B. Technical Support
          ====================

          Ninety day free telephone support is available for all registered
          users of PRO-dVelBase.

          C. How to Use This Documentation
          ================================

          This reference guide will describe the objects and commands used
          in PRO-dVelBase.  Each of the main menu items will be described
          in a separate chapter.  Submenu commands will be described in
          logical order rather than in order of appearance on the menu. 
          The reference guide is only a synopsis of the reference manual. 
          Upon registration of the software, a complete, printed reference
          manual and tutorial will be sent.

          The convention used in this reference guide to indicate the path
          used to reach a certain command from the main menu is with a
          forward slash (/).  For example, Form/Modify means first
          selecting Form from the main menu and then selecting Modify from

          


                                                                     Page 2

          the first pull-down menu.

          D. Technical Specifications of PRO-dVelBase
          ===========================================

          The following is a detailed list of PRO-dVelBase features.  It
          serves as a thumbnail sketch of the capabilities of PRO-dVelBase. 
          Please note that these are the specifications of PRO-dVelBase
          Lite.  PRO-dVelBase 2.0 has many more features and allows for
          larger databases.

          Database Specifications
          -----------------------
               * Maximum of 127 fields per record
               * Maximum of 65,535 records per database file
               * Database (.DBF and .DBT) and index (.NDX) files are dBASE  
                 compatible
               * Field types:
                 - Character (maximum of 128 characters)
                 - Numeric (maximum of 19 digits)
                 - Date
                 - Time
                 - Logical (True or False)
                 - Single Key (user defined single key)
                 - Memo (maximum of 10,000 characters)

          Forms
          -----
               * Forms are designed by placing text and fields directly on  
                 the screen
               * Underlying database file automatically created with form
               * Forms span up to 5 screens
               * Place up to 127 fields per form
               * Draw boxes, lines and graphics characters to improve the   
                 look of the form
               * Forms may relate up to 5 database files, each with a       
                 maximum of 7 indexes
               * Maximum of one 1-to-20 link in a one-to-many relationship  
                 (i.e. one record in a parent database file linked with 20  
                 records in child database file)
               * Displays a one-to-many relationship in a "scroll-window",  
                 that allows these records to be scrolled within a window   
                 on the screen for ease of viewing
               * Able to print a report after each new record as in an      
                 invoicing system
               * Able to print a report, label or mail of the currently     
                 viewed record directly from the form
               * Able to zoom into underlying database file and display it  
                 in table view (in sequential or indexed order)
               * Able to transfer records from table view into form view,   
                 thus acting as a "look-up table"




          


                                                                     Page 3


          Fields
          ------
               * Fields defined by answering a series of questions
               * Display length of long fields may be changed
               * Fields may be required (null data disallowed), fully       
                 filled or forced upper case
               * Able to perform range check on numeric fields
               * Automatic word wrap for memo fields with a maximum of one  
                 memo field per form
               * Multiple date and time formats supported
               * Single key fields allow users to specify allowed keys      
                 (i.e. "MF" for sex field)
               * Allows up to 127 calculated (virtual) fields per form
               * Allows for:
                 - derived fields (fields based upon a formula)
                 - copied fields (fields copied from previous record)
                 - default fields (fields that automatically display a      
                   certain value)
                 - sequential fields (fields that increment sequentially    
                   based upon an indexed field)
               * Create pictures that act as templates and data masks       
                 (i.e. (NNN) NNN-NNNN for a telephone field)

          Tables
          ------
               * Able to edit records in table
               * Able to transfer records from table to form
               * Change order of fields to view
               * Able to view records in sequential or indexed order

          Queries
          -------
               * Uses "Query-by-Example" to create queries
               * Multiple .AND. and .OR. conditions supported
               * Ascending sorts on up to 10 fields either case sensitive   
                 or case insensitive
               * Queries act as filters to allow only the selected records  
                 to be processed by Report, Mail, Label, Append or Post

          Reports
          -------
               * Created by placing fields and text on screen
               * Uses "band" method to place fields and text in desired     
                 location on report
               * Allows up to 5 levels of grouping
               * Field formatting accomplished by answering a series of     
                 questions
               * Allows calculated, summary (sum, average, high, low,       
                 count) and system (record count, record number, page,      
                 date, time) fields




          


                                                                     Page 4


          Labels
          ------
               * Created by placing fields and text onto a label
               * Supports any size label
               * Multiple copies allowed
               * Calculated, summary and system fields supported

          Mail
          ----
               * Merges letter with database records
               * Use built in editor or your favorite word processor

          Functions and expressions
          -------------------------
               * Supports most dBASE III functions directly and expression  
                 syntax is dBASE compatible

          Searches
          --------
               * Able to search through form or table
               * Allows global operations such as delete, undelete and      
                 replace

          Utilities
          ---------
               * Allows appending of records to a second database file
               * One database file may post to another one
               * Allows for zapping (removing all records) and packing      
                 (removing marked records) of a database file
               * Structure of a database file may be cloned to second       
                 database file

          E. System Requirements
          ======================

          * IBM PC/XT/AT, PS/2 or 100% compatible computer
          * PC/MS DOS 3.0 or greater
          * 80x87 math coprocessor supported
          * Hard drive with at least 2 megabytes free disk space
          * 640K RAM
          * Supports monochrome, Hercules, CGA, EGA or VGA adapters
          * Printer recommended

          F. Compatibility
          ================

          PRO-dVelBase is completely data file compatible with any program
          that uses .DBF file format.  Examples of such programs include:
          dBASE III, dBASE IV, Clipper, FoxBase and dBXL.  This means that
          any data files created by any of these programs may be used by
          PRO-dVelBase directly without conversion and vice versa.  The
          index files (.NDX extension) are also dBASE III compatible
          although the names of the files are determined by the program

          


                                                                     Page 5

          rather than the user.

          G. Installation and Running PRO-dVelBase
          ========================================

          PRO-dVelBase Lite is distributed in .ZIP file format and requires
          a copy of PKUNZIP.EXE to uncompress it.  A program directory
          should be created first.  This may be done with the command,
          "MD C:\PRO" (without the quotes), from the DOS prompt.  The
          program can then be uncompressed using the command,
          "PKUNZIP C:\PRO\PROLIT10 C:\PRO" (if PROLIT10.ZIP is on C:\PRO
          directory).  The sample application is entitled, "WIDGETS.ZIP". 
          Another subdirectory should be created to store the sample
          widgets application.  This is created with the command,
          "MD C:\PRO\WIDGETS", from the DOS prompt.  The widgets
          application can then be uncompressed with the command,
          "PKUNZIP C:\PRO\WIDGETS.ZIP C:\PRO\WIDGETS".

          The CONFIG.SYS file should be changed to include the following
          lines.

          FILES=60
          BUFFERS=20

          Be sure you are on the subdirectory in which PRO-dVelBase resides
          by typing CD\PRO followed by ENTER.

          It is recommended that different applications be stored in
          separate subdirectories beneath the one in which PRO-dVelBase
          resides.  A subdirectory may be created with the command:
          MD <DIRECTORY NAME>

          The program may now be run directly by just typing PRO followed
          by ENTER from the DOS prompt.  At the main menu, the sample
          application can be viewed by using the Options/Change Dir command
          to change the data directory to "WIDGETS".  A form can then be
          selected and executed.

          PRO-dVelBase automatically senses what type of video adapter card
          the computer has and adjusts itself accordingly to display in
          either monochrome or color.  The only problem that may arise if
          the computer has a CGA card with a composite monochrome monitor. 
          PRO-dVelBase will then attempt to display the screens in color. 
          The screen resolution on such a monitor may be very poor.  The
          way around this problem is to force PRO-dVelBase to display in
          monochrome.  To do this, use the DOS MODE command.  From the DOS
          prompt, type "MODE BW80" before typing PRO.  PRO-dVelBase will
          now be displaying its screens in monochrome.

          If the keyboard locks after starting the program, try re-starting
          the program by typing, "PRO -k".  PRO-dVelBase normally attempts
          to accelerate the typematic rate on AT style keyboards.  On some
          keyboards, this may not work causing the keyboard to freeze. 
          Using the "-k" switch turns off the keyboard speed up.

          


                                                                     Page 6

          The printer also has to be initially setup.  Although not
          absolutely necessary, having a printer definition file allows for
          more precise control over your printer.  At the main menu, press
          O followed by P followed by C (Options/Printer Setup/Create). 
          You will then arrive at the Printer Definition Screen.  You may
          now fill in the control codes that control special functions for
          your particular printer (see your printer reference manual). 
          Pressing F9 will list some common brands of printers and you may
          just select one and the codes will automatically be filled in. 
          If you do not see your particular printer, many dot-matrix
          printers are Epson compatible and selecting that one is a safe
          bet.  If you have a laser printer, many are also H.P.  LaserJet
          compatible and selecting the H.P.  LaserJet may work.  When
          finished press F10 followed by Y to save the printer definition. 
          The specifics about printer setup are found in Chapter 8 under
          Options: Printer Setup.

          H. Help
          =======

          PRO-dVelbase uses a "hypertext" help system that makes it very
          easy to learn all the features that PRO-dVelBase has to offer.

          The help system is accessed by pressing F1.  The initial help
          screen is context sensitive i.e.  it depends upon which part of
          the program it is accessed from.  Key words are highlighted and
          further help on these words may be accessed by moving the cursor
          over the highlighted word and pressing ENTER.  Previous help
          screens are accessed by pressing PAGEUP.  The entire help system
          may be navigated through the "Main Help Menu" option.  Selecting
          Next views the next help screen in the section.

          I. Basic Principles
          ===================

          There are a few basic principles that apply to PRO-dVelBase. 
          Understanding these principles is essential.

          The main objects of PRO-dVelBase (Form, Query, Report, Mail and
          Label) may be accessed through the main menu.  Secondary objects
          (Append and Post) may be accessed through the Utilities submenu. 
          Each of these objects may be selected, executed, created,
          modified, unselected, deleted, added to catalog or removed from
          catalog.

          You must first create the object and select it before you may
          execute it.

          The process of developing objects requires that you use the
          submenu commands Create, Select and then Execute.  However, you
          only need to create your objects once.  Thereafter, you must
          always select it first before you will be allowed to execute it. 
          All future changes to the objects may be made through the Modify
          submenu command.

          


                                                                     Page 7

          To clarify the above, you only create your form once. 
          Thereafter, whenever you want to use your form, you must select
          it first before executing it.

          Similarly, you only create your report once but whenever you need
          to use it you must select it first before you may execute it.

          Form is the main object that all other objects are related to or
          built upon.  The creation of subsequent objects is dependent upon
          which form is selected.













































          


                                                                     Page 8


                                   Chapter 2:  Form
                                   ================

          The form constitutes the basic method of data entry and relating
          database files when using PRO-dVelBase.  Creating a form
          automatically creates the underlying database (.DBF extension)
          file.

          There are six submenu commands under the form menu.  These
          include:  Select, Execute, Create, Modify, Unselect and Delete.

          A. Form/Create
          ==============

          This submenu command is used to create forms.  A form consists of
          one or more database files.  Each form is associated with a
          primary database file.  A file that is related to the primary
          database file is called a secondary database file.  One that is
          related to a secondary database file is called a tertiary
          database file and so on.  The secondary, tertiary, etc. database
          files are also called collectively, foreign database files
          because they are foreign to the primary database file.  Another
          way of expressing this is using the terms parent and child
          databases or parent and child records.

          In forms, you may:
           1.  Define and place fields.
           2.  Set relationships between various database files.

          To create your form:
           1.  Design your entire database on paper.  Write down all the
               field names and the specifications for each field.
           2.  Identify key fields.  If you are creating several databases
               that will be related together, you need to identify the key
               fields that will be used to set the relationships.  Key
               fields are fields that have a unique value to them that
               distinguishes them from every other record in the database
               file.  The value of a key field is common between various
               database files.  For example, the social security number is
               a unique number that identifies a person and can be used as
               a key field.  All key fields need to be indexed.

          Taking the extra time to design your database on paper will save
          you time when designing it at your computer.  You should have a
          clear picture of what you want to design before sitting down at
          your computer.  It is much easier and less time consuming to make
          corrections on paper than to make them at your computer.

          Once you have designed your database on paper, then proceed to
          use PRO-dVelBase.
           1.  Select Form/Create.
           2.  Give the form a name.  This name is up to 8 characters in
               length and must follow dBASE conventions in naming.  If you

          


                                                                     Page 9

               are not familiar with dBASE conventions in naming, see
               Appendix A:  dBASE Naming Conventions.

               If you select a name that already exists, you will get an
               error message and you will be asked to enter a new name. 
               Make sure the new name you choose is descriptive of the form
               you are creating.

           3.  The next screen is the Form Definitions Screen and you will
               be asked, "Do you want to print a report after each new
               record? (Y/N)".  Answer YES or NO depending upon whether you
               want a report.  If you answer YES, PRO-dVelBase will
               generate a single transaction report after each new record
               added to the end of the database.  The format of the report
               is dependent upon the currently selected report.  If no
               report is in the work area, then the report will not be
               printed.  This feature may be used in an invoicing system
               where the customer would receive a statement after the
               transaction.

           4.  This takes you to the next screen, which is the form editor. 
               Towards the bottom of the screen is the status line.  The
               status line consists of the following information.
                a.  Date
                b.  Time
                c.  Screen number
                d.  Row and column number of the cursor
                e.  Status of the INSERT key
                f.  Status of the Caps Lock key
                g.  Status of the Scroll Lock key
                h.  Status of the Num Lock key

          The form editor is similar to many basic text editors.  It allows
          for full screen editing.  Text and fields may be placed directly
          on the screen at any location on up to 5 different screens. 
          Moving between various screens occurs by the PAGEUP and PAGEDOWN
          keys.  The INSERT key allows toggling between the insert mode and
          overwrite mode.  A blocking function is also present and the
          blocked area may be moved or copied to another area of the screen
          or to a different screen.  Lines and IBM graphics characters
          (ASCII values greater than 127) may also be placed on the forms.














          


                                                                    Page 10


          The following table shows the active keys on the form editor.

          =================================================================
          Active Key               Action
          -----------------------------------------------------------------
          ESC                      takes you to the previous screen and
                                   allows you to exit this section of the
                                   program, without saving.
          ARROW CURSOR KEYS        moves the cursor in the direction of the
                                   arrows.
          PAGEDOWN                 moves to the next screen.
          PAGEUP                   moves to the previous screen.
          HOME                     moves the cursor to the extreme left.
          END                      moves the cursor to the last text or
                                   field on the screen.
          INSERT                   toggles between overwrite and insert
                                   mode.
          DELETE                   deletes the text or field on the cursor.
                                   Also deletes the relationships between
                                   files if cursor is in a key field.
          BACKSPACE                deletes the previous text character.
          ENTER                    inserts a blank line when in insert mode
                                   only if the bottom line of the form is
                                   empty.
          F1                       context sensitive help.
          F3                       starts and ends blocking of an area.
          F5                       copies blocked area.
          F6                       moves the blocked area.
          F7                       places and defines a database or
                                   calculated field.
          ALT-F7                   sets a relationship to another database
                                   file.
          F10                      completes and saves the form.
          ALT-B                    displays and activates box drawing
                                   characters.
          ALT-C                    displays and places IBM extended
                                   graphics characters.
          ALT-S                    defines a scroll window for a
                                   one-to-many relationship.
          CTRL-C                   centers the text and fields on the
                                   current line.
          CTRL-Y                   clears the text from a line.
          =================================================================

          Designing a form consists of placing text that describes a field
          and then placing and defining the actual field itself.

          The form editor allows you to place text and fields on a maximum
          of 5 different screens.  As a general rule, unless you have many
          fields, only one screen should be used.  The reason for this is
          that after you have completed the designing of your form, you
          will be able to enter data more efficiently with fewer screens.


          


                                                                    Page 11

          If multiple screens are necessary, try to place logically related
          fields together on the same screen.  For example, in an invoicing
          system, place customer information on screen one and sales on
          screen two.

          Start by placing your text on the screen.  Lay out your text in
          the same way you would want it to appear for data entry purposes.

          When designing the form, the text should be placed on the screen
          first.  This will give a basic layout as to how the fields should
          be placed.

          You may want to start by placing a title for the form.  Later,
          you may want to place a box around the title.  After placing the
          title, you may place the rest of your text on the screen.

           Note:    You will need to wait until you have placed your fields
                    before attempting to save your work.  If you attempt to
                    save your work after placing the text only, you will
                    generate an error message and you will not be allowed
                    to save your work until you have placed at least 1
                    field on your screen.

          It is recommended fields that are similar to one another be
          placed together.  For example, it is wise to place a surname
          field next to a first name field.

          During data entry, the cursor will jump from fields in the
          direction of left to right, then top to bottom.  This is similar
          to writing on a piece of paper.

          After the text has been placed on the screen, you will need to
          place the fields somewhere close to the appropriate text labels. 
          When placing a field, it is important to make sure that there is
          enough space on the screen to accommodate the entire display
          length of the field.  If there is insufficient space, an error
          message will be generated.

          Placing fields is done as follows:
           1.  Move the cursor over to where you want to place the field. 
               This could be at a location adjacent, beneath or on top of
               the text that you have already placed.
           2.  Press F7.  A window opens giving you two options to choose
               from:  Database or Calculated fields.
           3.  Database fields are real fields that exist on database
               files.  Calculated fields are virtual fields that exist in
               the memory of the computer only and are based on a
               calculation formula.
           4.  Select Database.  You have now entered the field definition
               screen.





          


                                                                    Page 12


          Database Fields
          ---------------

          There are 2 sets of field definitions for database fields:  fixed
          and changeable.  Fixed field definitions may only be modified
          from the form in which the database file was created.  Changeable
          field definitions may be altered from any form that links to that
          field.  This means that if a given field has been linked to
          multiple forms, the changeable field definitions for that field
          may be different for each form.  The fixed field definitions,
          however, will be exactly the same for each of the forms.

          The process of making field definitions consists of answering a
          series of questions.  Each subsequent question that is asked will
          be determined by how you answered the previous question.  The
          built in logic of PRO-dVelBase determines what question will be
          asked next because some questions may be redundant or irrelevant
          depending on how the previous questions were answered.

          When defining your fields, the UP key will take you to the
          previous question and pressing ESC will abort the process of
          defining the field.

               Form: Fixed Field Definitions
               -----------------------------

               Fieldname:
                    A field name may be up to 10 characters in length and
                    may consist of letters of the alphabet, numbers, or the
                    underscore (_).  A number cannot be the first character
                    of the field name.  This follows standard dBASE
                    conventions.  (See Appendix A: dBASE Naming
                    Conventions).  Try to choose a field name that is
                    descriptive of the field.

                Note:    Field names may not be changed once they are
                         assigned.  The reason is that there may be
                         calculations and formulas that are referenced to
                         this field name and it would be very difficult to
                         update all the references in other files.  The
                         only way a field name may be changed is to delete
                         the field and redefine it using another field
                         name.  This general rule applies to all objects
                         created by PRO-dVelBase.

               Field type? (C)har (N)umeric (D)ate (T)ime (L)ogical
               (S)ingle key (M)emo
                    PRO-dVelBase supports the five dBASE III field types: 
                    character, numeric, date, logical and memo.  It also
                    has two other field types:  time and single key.

                    ==> The default field type is Character.


          


                                                                    Page 13

                    The following table outlines the field types supported
                    by PRO-dVelBase.
          =================================================================
          Field Type          Field Description
          -----------------------------------------------------------------
          Char                Is a basic text field and consists of
                              alphanumerics or special characters.  Maximum
                              of 128 characters.
          Numeric             Consists of positive or negative whole or
                              decimal numbers.  Generally used whenever a
                              calculation has to be performed on that
                              field. Maximum of 19 characters, including a
                              negative sign.  May have up to 14 decimal
                              places.
          Date                Consists of dates only and has a field length
                              of 8 characters.  It is stored on disk in the
                              form of CCYYMMDD (where CC=century, YY=year,
                              MM=month, DD=day).  The display format will
                              be different depending on how it is defined. 
          Time                Consists of time only and has a field length
                              of 6 characters.  It is stored on disk in the
                              form of HHMMSS (where HH=24 military hours,
                              MM=minutes, SS=seconds).
          Logical             Is a single character field that can have
                              only 1 of 2 values, either "T" (for TRUE) or
                              "F" (for FALSE).  The field may contain the
                              following constants:  T, Y, F, N.
          Single key          Is a field that holds a single character. 
                              Allowed keys are set at the time of field
                              definition.  This field type is used when
                              there are a number of choices to be made. 
          Memo                Is a free text field in which anything may be
                              placed in it.  In other words, it is a field
                              for your comments. Only one memo field may be
                              defined per form.  Maximum length of 10,000
                              characters.
          =================================================================

                    The following table gives examples of some field types.
          =================================================================
          Field Type          Field Name          Value
          -----------------------------------------------------------------
          Char                SURNAME             Smith
                              ADDRESS             123 - Baker St.
                              CITY                Washington D.C.
          Numeric             PRICE               20.50
                              QUANTITY            54
          Single key          SEX                 "M" - male
                                                  "F" - female
                              COUNTRY             "U" - United States
                                                  "C" - Canada
                                                  "E" - England
          =================================================================


          


                                                                    Page 14

               Is this field required? (Y/N)
                    This question is only asked for character, date, time
                    and single key fields.  If you answer YES to this
                    question, you will force the user to enter data into
                    this field when he is doing data entry.  In other
                    words, you may not just leave this field blank.  If you
                    try to save a record with a required field blank, you
                    will get a warning message that a required field was
                    left blank.  You may still save the record or you may
                    choose to fill in the required field.

                    ==> The default is NO.

               What is the length of this field?
                    When determining the length of the field you should
                    determine how long the longest entry for that field
                    will be.  Make sure there will be enough room for this. 
                    You would not enter a length of 10 in the surname field
                    if you could possibly have a surname that is 20 in
                    length.  Do not allocate lengths that are much longer
                    than what you need otherwise, you will be wasting disk
                    space.  Field lengths are automatically assigned to the
                    field types below, therefore this question would not be
                    asked for these.  The length that is assigned is as
                    follows:
                     1. date: 8
                     2. time: 6
                     3. logical and single key: 1

                    Memo fields behave differently from other fields.  Memo
                    fields only occupy 10 bytes on the .DBF file.  These
                    bytes contain a pointer that indicates where the actual
                    field is located in the corresponding .DBT file.  The
                    amount of space the data occupies in the .DBT is not
                    fixed but variable.  Longer strings will take more
                    space.  If no data is present, no space is used in the
                    .DBT file.  Memo fields are therefore very useful for
                    fields that have free text since they do not waste
                    space if empty.

               How many decimal places are there?
                    This question is only asked for numeric fields.  They
                    may have a maximum of 14 decimal places.

               What is the display width?  What is the display height?
                    These two questions are asked for memo fields.  Both
                    the height and the width of the window may be defined
                    at this point.  The height of the window must be at
                    least 2 and the width cannot be greater than 80.

               Is this field to be fully filled? (Y/N)
                    A YES answer will mean that the number of characters
                    entered must always be equal to the maximum length
                    assigned to this field.  This question is only asked

          


                                                                    Page 15

                    for character fields.

                    ==> The default is NO.

               Which keys are allowed?
                    This question is asked for the single key field type. 
                    You may specify up to 20 keys that the user may choose
                    from.  Keys not included here will be rejected when
                    doing data entry.

               Index this field? (Y/N)
                    When indexing is performed, the value of this field
                    will be placed in a separate file in a sorted ascending
                    sequence.  This allows the PRO-dVelBase to access
                    information very quickly.

                    ==> The default is NO.

                    Indexing is necessary for:
                     1.  key fields linked to other database files.
                     2.  fast searches.
                     3.  prevention of duplicate entries.

                    For each database, a maximum of 7 indexes are allowed
                    therefore, you need to be selective about which fields
                    to index.  The key field must be indexed.  Fields that
                    you use to perform frequent searches should also be
                    indexed.

                    Every index is updated automatically whenever you do
                    data entry, making it a time consuming process.  This
                    means that the more indexes you create, the more time
                    it will take to update your database thus slowing down
                    data entry.

                    All field types except logical and memo may be indexed.

               Ignore case while indexing? (Y/N)
                    Answering YES will automatically convert all lower case
                    alpha to upper case alpha before it is indexed.  For
                    example, this will make "smith" equivalent to "SMITH". 
                    This is helpful if case insensitive index searches are
                    needed.

                    ==> The default is NO.

               Prevent duplicate entries? (Y/N)
                    Indexes may be used to prevent the user from entering a
                    value that is the same as one already entered.  After a
                    value is entered into a field, the index is searched
                    and if that value is already present, it is rejected.

                    ==> The default is NO.


          


                                                                    Page 16

               Are numbers allowed? (Y/N)
                    This question is only asked for the character field
                    type.  If you would like to prevent the user from
                    entering numbers in this field, answer NO.  A numeric
                    string may be created by answering YES to this question
                    and not allowing letters of the alphabet or special
                    characters.  The difference between a numeric string
                    and a numeric field is that a numeric string cannot be
                    directly used in a calculation.  For example, a phone
                    number field should be defined as a numeric string.

                    ==> The default is YES.

               Are letters of the alphabet allowed? (Y/N)
                    If you would like the user to enter letters of the
                    alphabet, answer YES.  This question is only asked for
                    character fields.

                    ==> The default is YES.

               Upper case only? (Y/N)
                    Answering YES will force all entries to be in upper
                    case regardless of whether the caps lock key is in use.

                    ==> The default is NO.

               Are special characters allowed? (Y/N)
                    The following are special character keys:  SPACE ! " #
                    $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | }
                    ~  This question is only asked for character fields.

                    ==> The default is YES.

               Do you want a range check? (Y/N)
                    Range checks may be performed on numeric fields.  A
                    lower and upper range may be specified and entries
                    outside this range will generate an error message.

                    ==> The default is NO.

               Display format for date? (A)-MM/DD/YY (B)-DD/MM/YY
                         C)-YY/MM/DD
                    Three different display formats are allowed for date
                    fields.  When the form is executed, a template will
                    appear in the date field display indicating which
                    format was selected.  For example, choosing display
                    format (A) will display the template, "mm/dd/yy".  The
                    purpose of this template is to guide the user on the
                    proper date format for data entry.

                    ==> The default is MM/DD/YY.

               Display format for time? (A)-12 hrs. (B)-24 hrs.
                    Two different display formats are available for time

          


                                                                    Page 17

                    fields.  The first is the 12 hour format (with a
                    template of "hh:mmp", where p represents A for am or P
                    for pm) and the second is the 24 hour format, or
                    military time (with a template of "hh:mm").

                    ==> The default is 12 hours.

               Display seconds? (Y/N)
                    This question is only asked for the time field type. 
                    It allows for seconds to be entered along with the
                    hours and minutes.  The template will also have ":ss"
                    to indicate that seconds have to be entered.

                    ==> The default is NO.

               Word wrap each line? (Y/N)
                    This question is only asked for memo fields and allows
                    for each line to be displayed properly without breaking
                    up words at the end of the line.

                    ==> The default is YES.

               Picture:
                    The purpose of a picture is for formatting the way the
                    data is to appear in the field display.  Pictures only
                    apply to character fields and the maximum total length
                    of a picture is 70 characters.

                    The picture acts as both a template and a mask.  As a
                    template, any special character placed in the picture
                    will be displayed that way in the field.  Note that
                    these special characters are for display purposes only
                    and are not saved.  
                    As a mask, pictures will only allow certain characters
                    at a given position.  The following table indicates how
                    PRO-dVelBase uses pictures as a mask.

          =================================================================
          Character                Effect
          -----------------------------------------------------------------
          a                        only alpha characters
          A                        only alpha characters forced to upper
                                   case
          b                        both alpha and numeric characters
          B                        both alpha and numeric characters, with
                                   alpha characters forced to upper case
          N or n                   only numeric characters
          x                        alpha, numeric or special characters
          X                        alpha, numeric or special characters,
                                   with alpha characters forced to upper
                                   case.
          =================================================================



          


                                                                    Page 18


                    Here are some examples of pictures.

          ================================================================
          Picture             UserKey Strokes               Result
          ----------------------------------------------------------------
          (NNN) NNN-NNNN      4034569163                    (403) 456-9163
          AA-NNNNN            xy4645k                       XY-4645 but
                                                            blocks the
                                                            final k
          =================================================================

                    The number of alphanumeric characters in the picture
                    must be equal to the length of the field.

                    e.g. For a phone number field having a field length of
                         7.
                    NNNNNNN is allowed
                    NNN-NNNN is allowed
                    NNN-NNN is not allowed

                    Remember that when using a picture as a mask, the
                    previous field definition rules take precedence over
                    the ones in the picture.  For example, if you have not
                    allowed numbers when you defined a field, placing an N
                    in the picture will not allow you to use numbers.

               Form: Changeable Field Definitions
               ----------------------------------

               Display status for field? (A)-both read & write (B)-read
               only (C)-hidden
                    The display status of a field refers to whether the
                    user is able to see and edit the field.  In a read and
                    write field, the user is able to see and edit the
                    field.  In a read only field, the user may see the
                    value of the field but is unable to change it.  The
                    cursor will jump over a read only field.  In a hidden
                    field, the user may neither see nor edit the field. 
                    Most fields are generally both read and write.

                    ==> The default is both read & write.

               What is the display width?
                    In character fields, the width of the field display may
                    be changed.  This defaults to the length of the field. 
                    However, it may be shortened if there is limited space
                    on the screen.  If the width of the display is less
                    than the length of the field, then on data entry, the
                    value will be scrolled horizontally within the display.

                    ==> The default is the field length.



          


                                                                    Page 19


               Field value is (A)User entered (B)Derived (C)opied (D)efault
               (E)Sequential?
                    This question affects how a value may be entered into a
                    field.  Most fields are user entered, meaning that it
                    is up to the user to enter data into the field.

                    A derived field is one that is calculated based on a
                    formula that relates it to other fields, functions or
                    values.  For derived fields, a formula must be entered. 
                    Please refer to the Appendix B:  Formulas and
                    Functions.  A derived field differs from a calculated
                    field in that a derived field is real while a
                    calculated field is virtual and exists only in the
                    memory of the computer.  Generally, a derived field
                    should be used if you want the value to be saved.  The
                    display status for derived fields should be set for
                    read only.  The reason for this is because even though
                    it is possible to edit a derived field, its value will
                    automatically revert back to the calculated result once
                    the cursor leaves the field.

                    A copied field is one whose value is copied from the
                    last record in the database file.  

                    A default field is one that defaults to a certain value
                    only if the field is empty.  It is also based upon a
                    formula and is very similar to a derived field.  The
                    only difference between it and a derived field is that
                    a default field is only evaluated when the cursor drops
                    into the field display.

                    If the field value is sequential, then its value is
                    taken from the greatest value of the index of the field
                    read from.  This value is then incremented.  This type
                    of field is particularly valuable in generating unique
                    values for key fields such as a customer number field. 
                    The field must be indexed.

                    ==> The default is User entered.

               Field value appears (A)utomatically (U)ser selected.
                    This question is only asked for copied, default and
                    sequential field values.  If you define the field value
                    to appear automatically, then once the cursor drops
                    into the field, that value will appear if the field is
                    initially blank.  If a value is present initially, no
                    changes are made unless F5 is pressed.  If you define
                    the field to be user selected then F5 must be pressed
                    before the value will appear.

                    ==> The default is (A)utomatically.



          


                                                                    Page 20


               (I)ncrease (D)ecrease (S)ame?
                    This question is asked for copied field values.  It
                    indicates how the field is to be copied from the last
                    record of the database file (i.e. whether the value is
                    to increase, decrease or be the same).  In a numeric
                    field, a value of 1 is either added or subtracted if
                    the field is increased or decreased.  In a character
                    field, the ASCII value of the rightmost character is
                    either increased or decreased.  If end characters such
                    as 0, 9, a, z, A or Z are reached then the value is
                    wrapped around and the second from the right character
                    is increased or decreased and so on.  In date fields,
                    the date is either increased or decreased by one day. 
                    This question is only applicable to numeric, character
                    and date fields.

                    ==> The default is (S)ame.

                    The following table shows some examples of various
                    operations.

          =================================================================
          Field Type     Initial Value       Operation      Result
          -----------------------------------------------------------------
          Numeric             14             Increase       15
          Numeric             62.95          Decrease       61.95
          Character           xyz            Increase       xza
          Character           yzzzz          Increase       zaaaa
          Character           H06819         Increase       H06820
          =================================================================

               Formula:
                    Formulas are used for derived and default fields.  The
                    maximum length for formulas is 255 characters.  Long
                    formulas may be displayed in a window for editing by
                    pressing CTRL-Z (Z means zoom!).  A list of fields may
                    be displayed by pressing F9, a list of operators
                    displayed by pressing CTRL-F9 and a list of functions
                    displayed by pressing ALT-F9.  Formulas are dBASE
                    expressions.  See Appendix B:  Formulas and Functions.

                    Note that if a field name is used in a formula, the
                    preceding database name must also be included if the
                    field is from a foreign database (e.g.
                    CLIENT->SURNAME).  This is not necessary if the field
                    is found in the primary database file.

               Automatic cursor advance on full field? (Y/N)
                    When the field is fully filled, then the cursor will
                    automatically move to the next field.

                    ==> The default is NO.


          


                                                                    Page 21

               Formula error handling? (Y/N)
                    Formula error handling allows precise control over a
                    field value using a formula.  This question is asked
                    only for fields that have both a read and write display
                    status.

                    ==> The default is NO.

               Error Formula:
                    If formula error handling is requested, an error
                    formula must be entered.  An error formula is a dBASE
                    expression that evaluates to a logical TRUE or FALSE. 
                    A FALSE evaluation will result in the field being
                    rejected.  The error formula is evaluated upon exiting
                    the field.  The maximum length for formulas is 255
                    characters.  Long formulas may be displayed in a window
                    for editing, by pressing CTRL-Z (Z means zoom!).

               Error Message:
                    The error message may be up to 60 characters in length. 
                    It is displayed in a window in the middle of the screen
                    if the error formula is evaluated to be FALSE. 
                    Generally, this message should have meaningful
                    information to help the user enter a correct field
                    value.

               The following table shows an example of error formulas and
               the resultant error messages if the given values were
               entered into the respective fields.

          =================================================================
          Error Formula       SALE_PRICE     COST_PRICE     Error Message
          -----------------------------------------------------------------
          SALE_PRICE>COST_PRICE    13.95     15.00          ERROR: SALE
                                                            PRICE IS LESS
                                                            THAN COST
                                                            PRICE!
          SALE_PRICE>COST_PRICE    16.95     15.00          No error
                                                            displayed.
          =================================================================

               Help Message:
                    Each user entered field may have a help message
                    associated with it.  The help message is up to 70
                    characters and is displayed on line 23.  Try to make
                    this message useful for the person doing data entry. 
                    For example: a customer number field may have the
                    message, "Enter a five digit number to find the
                    customer".






          


                                                                    Page 22


          Calculated Fields
          -----------------

          Calculated fields are not real fields but are called virtual
          fields.  That is, they do not exist in a database file but just
          appear on the form and exist only in the memory of the computer. 
          Their value is obtained from formulas that may have fields,
          constants, functions and operators.

               Calculated Field Definitions
               ----------------------------

               Calculated fields are placed by moving the cursor over to
               the desired location and pressing F7.  Calculated fields are
               defined by the same process as database fields; by answering
               a series of questions.  The value of a calculated field may
               be used by a formula in another calculated field.  In order
               to reference a calculated field, the field name must be
               prefixed by the database name, "CAL_F->".  This indicates
               that it is a calculated field and that it is in a form (as
               indicated by the "F").

               Fieldname:
                    Calculated field names are defined in the same way as
                    database field names.  Calculated fields must have a
                    field name so that they may be referenced by other
                    calculated fields.

               Calculation type? (S)um (A)verage (H)igh (L)ow (C)ount
               (F)ormula:
                    Six different types of calculated fields are supported
                    by PRO-dVelBase.  They may be divided into two groups: 
                    summary and formula.

                    Summary Calculated Fields
                    -------------------------
                    The summary fields are sum, average, high, low and
                    count.  As its name indicates, these different field
                    types are summary operators based upon a particular
                    formula.  They are particularly useful in one-to-many
                    relationships where you would like to determine the
                    sum, average, high, low or count of a certain column of
                    numbers or fields.

                    Formula Calculated Fields
                    -------------------------
                    A formula calculation type is not a summary operator. 
                    That is, it does not require that a one-to-many
                    relationship exist.  The formula is entered, as defined
                    in the appendix.  Its value will automatically appear
                    once the appropriate values that it references have
                    been entered.  This is exactly how a derived field
                    works but this field is not saved.

          


                                                                    Page 23

               What is the field type of the calculated field? (C)har
               (N)umeric (D)ate:
                    Calculated fields may be either character, numeric or
                    date type.  Summary fields are always of numeric type
                    therefore, this question will not even be asked for
                    summary fields.

                    ==> The default is (C)har.

               Is this field hidden?
                    Calculated fields may be hidden from view.  The purpose
                    of having a hidden calculated field is that it acts
                    like a temporary variable holding an intermediate
                    result.  Other fields may then reference this field for
                    further calculations.

                    ==> The default is NO.

               What is the length of this field?
                    The field length of calculated fields represents the
                    resulting display width on the screen.  For numeric
                    calculated fields, the maximum field length is 19.

               How many decimal places are there?
                    The decimal places may be set for numeric calculated
                    fields, therefore, this question only appears for
                    numeric calculated fields.  The maximum number of
                    decimal places is 14.  Please ensure that the display
                    width is greater than the number of decimal places.

               Formula:
                    Formulas have a different meaning in summary fields
                    compared to formula fields.  Summary fields are used
                    when there is a one-to-many relationship.  The formula
                    for each of the one-to-many links is evaluated first
                    before the summary operator is performed.

                    Sum - takes the sum of the results of the formula for
                    each linkage on a one-to-many relationship.

                    High - finds the highest value of the results of the
                    formula for each linkage in a one-to-many relationship.

                    Low - finds the lowest value of the results of the
                    formula for each linkage in a one-to-many relationship.

                    Average - finds the arithmetic means of the results of
                    the formula for each linkage in a one-to-many
                    relationship.

                    Count - formulas for count must be logical expressions
                    that evaluate to either TRUE or FALSE.  The count field
                    will simply count the number of TRUE results.


          


                                                                    Page 24

                    Formula - formula calculated fields do not cross lines
                    in one-to-many relationships.  They are evaluated only
                    for the current line.  For example, a formula
                    calculated field evaluating a line total will just use
                    the values on that line and not any other line.

          Editing Text and Fields
          -----------------------

               Field Identification Characters
               -------------------------------
               Once the fields have been placed, you will notice some
               unusual characters at the beginning of each field display. 
               These are called field identification characters and are
               used internally by PRO-dVelBase to locate fields.  They will
               not show up on your data entry forms once you have finished
               designing your forms.  They are also helpful for you to
               quickly identify which fields are the same in a one-to-many
               relationship.

               Moving Text and Fields
               ----------------------
               Once fields and text have been placed on the form, their
               locations may be altered.  The process of moving fields and
               text is similar to that in any other text editor.  When in
               the insert mode, fields and text may be pushed to the right
               by typing blank spaces.  Fields and text may be pulled to
               the left by deleting the spaces before them.  The DELETE key
               will delete text under the cursor and the BACKSPACE key will
               delete text before the cursor.  Blank lines may be inserted
               by pressing ENTER while in the insert mode.  This will only
               work if the bottom line on the form is empty otherwise
               nothing happens.  CTRL-Y will delete text (not fields) on
               the current line.  CTRL-C will center the current line.

               Be careful when using these techniques on memo fields.  Memo
               fields are represented by windows on the form and using
               these techniques may break the window up.  If this occurs,
               you may not be able to save the form.  Be sure the memo
               field is in the form of a rectangular window after it has
               been moved.

               Blocking Text and Fields
               ------------------------
               The F3 key is used to block an area of the screen.  Move the
               cursor over to the start position for blocking.  Press F3. 
               Move the cursor over to the end position for blocking. 
               Press F3 again.  The blocked area will appear in a different
               attribute depending upon what type of monitor you have. 
               This block may then be copied (press F5) or moved (press
               F6).  Pressing F3 again will unblock the area.  Using this
               procedure to copy fields is how PRO-dVelBase creates
               one-to-many relationships (see Multi-File Forms).  You will
               not be allowed to move or copy blocks beyond the edge of the

          


                                                                    Page 25

               screen.  You will also be given a warning if the target site
               already is occupied.  By moving or copying a block to a
               target site that is occupied, the previous text or field
               will be deleted.

               Editing Field Definitions
               -------------------------
               Field definitions may be changed by simply moving the cursor
               over to the field display and pressing F7.  The field
               definition screens will again re-appear and the answers to
               the questions may be changed.

               Drawing Boxes
               -------------
               Boxes may be drawn around important fields as follows.  Move
               the cursor to the corner of the area you want to box.  Start
               by pressing ALT-B.  A window will open, showing the borders
               that you may choose for drawing your box.  Select the
               appropriate box borders and draw the box using the UP, DOWN,
               LEFT or RIGHT keys.  Once the box is drawn, press ENTER to
               complete the drawing of the box or press ESC to abort the
               drawing.

               Boxes may be deleted by selecting the box containing no
               drawing character and using that to draw on top of an
               existing box.

               IBM Extended Graphics Characters
               --------------------------------
               The IBM Extended Graphics Characters (ASCII values greater
               than 127) may be placed by pressing ALT-C.  Place the cursor
               over the location where the character is to be placed.  A
               window will open, showing the various characters that may be
               placed.  Select the appropriate character and press ENTER to
               place the character or press ESC to abort placing.  One of
               the purposes of this feature is to allow the placing of the
               intersections for the boxes drawn.

               Moving to Next/Previous Screen
               ------------------------------
               Text and fields may be placed on up to 5 screens.  The
               PAGEUP and PAGEDOWN keys will move between various screens.

               Deleting Fields
               ---------------
               Fields are deleted by simply placing the cursor over them
               and pressing the DELETE key.  A confirmation will be asked
               first before allowing to proceed.  If the cursor is in a
               field that is linked to another field, pressing the DELETE
               key will first delete the linkage and then the field itself
               may be deleted by pressing DELETE again.




          


                                                                    Page 26


          Multi-File Forms
          ----------------

          The true power of PRO-dVelBase comes from its ability to relate
          forms and their underlying database files together easily. 
          Relating forms allows information to be stored only once thus
          saving disk space and facilitating updating of that information.

          When you design any kind of a database application, you should
          first try to design all of your basic forms and database files
          i.e. all forms that only have one database file in them.  After
          that you may design forms that have multiple database files
          related together.  This is called the bottom up approach.

          Steps to relating forms:
           1.  Place the cursor over the key field that you would to relate
               to another form.  This field must be of char type or else it
               cannot be used as a key.
           2.  When the cursor is in the field, press ALT-F7 and a window
               will appear with all the forms previously created in the
               current directory.  Select the one that you would like to
               relate to.
           3.  Next a window appears with all the fields in that form that
               are indexed.  Select the key field of that child database
               file and press ENTER.  This links the 2 database files
               through their key fields.

                Note:    The key field in the foreign database file must be
                         indexed before this can occur.  If it has not been
                         indexed, you must go back to the primary form
                         containing that field and index the field first.

          Next you will see the Foreign Database Relationship Definitions
          screen and questions will be asked that define the relationship.

               Foreign Database Relationship Definitions
               -----------------------------------------

               (L)ink or (C)opy fields?
                    There are two types of operations that may be done: 
                    linking or copying.

                    When databases are linked through key fields, the
                    editing of fields from a child database will change
                    them in the child database.  The fields of the child
                    database do not exist in the parent database.

                    Copying is when the fields of the child database also
                    exist in the parent database.  The values of matching
                    fields from the child database are copied directly into
                    the corresponding field in the parent database.

                    Generally, linking should be chosen because it will

          


                                                                    Page 27

                    reduce the duplication of redundant data.  For example,
                    it is not necessary to store a person's name and
                    address in 2 different databases when storing that
                    information into one database will be sufficient. 
                    Secondly, by linking, changes that are made in one
                    database will be reflected in all the databases that
                    are linked to it.

                    You would use copying of fields if the field values are
                    to be fixed and not affected by any updates done in the
                    foreign database.  For example, in an invoicing system
                    where the foreign inventory database has a particular
                    item at a particular price in time.  The price should
                    be copied over to the invoice database because any
                    price increases in the inventory database should not be
                    reflected in the invoice database after the invoice has
                    been generated and the item shipped.

               Delete linked record if primary record deleted? (Y/N)
                    Answering YES to this question will cause linked
                    records to be deleted when the record on the primary
                    database is deleted.  For some linked records you may
                    not want this to occur.  For example, when a customer
                    record is linked to an invoice record, deleting the
                    invoice record should not delete the customer record. 
                    In other situations, deletion of linked records should
                    occur.  For example, when an invoice record is linked
                    in a one-to-many relationship to a group of details
                    records (each record containing the details of a given
                    invoice transaction), all the details records should be
                    deleted automatically when the invoice record is
                    deleted.  This process is called referential integrity.

               Is this a one-to-many link? (Y/N)
                    Only 1 one-to-many link is allowed per form.  Up to 10
                    links may occur on any one form.  A one-to-many link is
                    used in situations where you would like to link one
                    record in the primary database to many records in a
                    foreign database.  PRO-dVelBase allows you to create a
                    link with up to 20 records on the many side of the
                    relationship.  This may be used in an invoicing system
                    where a customer may buy more than one item but the
                    number of items is not known at the time of database
                    creation.

               Reject if value does not exist in the foreign database?
                    This allows a check to be made if a particular value
                    exists in a foreign database.  Answer YES if you would
                    like any non-existent value to be rejected.  This may
                    be used in an inventory system to ensure that a
                    particular item is present in the inventory database
                    before it can be accessed.

          After the key field has been defined, place the subsequent fields

          


                                                                    Page 28

          on the screen.  This is how you would place them.  If you
          selected (L)ink fields, move the cursor over to an empty area. 
          Press ALT-F7.  Then select the next field to be transferred over. 
          Then move to the next area to place another field.  Continue this
          process until you have transferred all the fields you would like
          to transfer.  When you have finished, press F10 to indicate that
          the process of transferring fields is completed.

          If you have selected (C)opy fields, the cursor will only be
          allowed to move into other fields that are in the parent database
          file.  Move the cursor into the first field that you want data to
          be copied into.  Select ALT-F7 again, then select the field you
          would like to be copied from and press ENTER.  Continue this
          until you have finished.  Again, press F10 to signify that you
          have completed this task.

          If you have set up a one-to-many relationship, subsequent lines
          can be created by performing a block and copy.  Move the cursor
          to the beginning of the area you would like to block.  Press F3. 
          Then move the cursor to the end of the area you would like to
          block and press F3 again.  Next move the cursor to the area you
          would like to copy to.  Press F5.  Every time you press F5, the
          blocked area will be replicated.  Continue pressing F5 until you
          have reproduced as many lines as needed.  Then press F3 again to
          unblock the blocked area.  By using this technique, you may
          create multiple lines and fields for data entry in a one-to-many
          relationship.  You may only block and copy up to 20 lines as this
          is the maximum that PRO-dVelBase handles in a one-to-many
          relationship.  Any additional lines will be ignored.  The key
          field does not need to be copied in the block as it only has to
          appear once on the form.  PRO-dVelBase automatically recognizes
          this as a one-to-many relationship and the key field value will
          be copied appropriately into each record.  In a situation where
          you know how many lines are required, this is all that is
          necessary.  If an unknown number of lines are required, you
          should design a scroll window.

               Scroll Window
               -------------

               A scroll window is designed around a one-to-many
               relationship and it allows the records in that area to be
               scrolled up and down.  This allows the user to enter up to
               20 records at a time.  To set up a scroll window, place the
               cursor before the first field of a one-to-many relationship. 
               Press ALT-S and a window will open.  Move the end of the
               window to the bottom of the area that you want scrolled and
               press ENTER again.  You will notice two small field
               identification characters appear in the corners of the
               window.  These characters will not appear on the data entry
               screen.  They are simply used by PRO-dVelBase to identify
               the boundaries of the scroll window.  On the data entry
               screen, an up arrow will appear in the upper scroll field if
               the window has been scrolled up and a down arrow will appear

          


                                                                    Page 29

               in the lower scroll field if the window has been scrolled
               down and there are more records beneath the scroll window.

               A scroll window may be deleted by moving the cursor to one
               of the field identification characters and pressing DELETE.

               Steps to Removing Relationships
               -------------------------------

               Once a relationship or series of relationships have been
               defined, how do you remove them?  Removal of relationships
               is quite simple.

               Find the key field that relates it to another form.  The key
               field is indicated by having the names of the fields
               flashing when the cursor is in it.

               With the cursor in the field, press the DELETE key.  A
               confirmation message will appear before the relationship is
               removed.  All fields in the related database file and
               secondary or tertiary files, etc.  will also be removed.

               In one-to-many relationships, the effects of the DELETE key
               is slightly different.  The relationship definition is
               stored in the first occurrence of a key field on the form. 
               If the cursor is in the first occurrence of a key field and
               the DELETE key is pressed then the relationship is removed
               and all related fields will be removed.  If the cursor is in
               subsequent occurrences of a key field then deletion will not
               remove the relationship but will remove all the related
               fields from that occurrence on.  The relationship will still
               be maintained in previous occurrences of the key field.

          Saving a Form
          --------------

          Upon completion of the form, press F10.  This performs a validity
          check on the form.  If any errors have occurred, a message will
          appear and appropriate actions must be taken to correct them
          before the form may be saved.  If there are any errors in any of
          the fields, the cursor will usually drop to that field.  Refer to
          Appendix C:  Warning and Error Messages, for the meaning of these
          messages.  At this point, a descriptive file name may also be
          given for the form.  A database file is automatically created
          when the form is saved.

          B. Form/Modify
          ==============

          To modify a form:
           1.  Use Form/Select to select the form you would like to modify.
           2.  Use Form/Modify to start modifications.  The form will be
               displayed, allowing you to modify the form along with the
               underlying database.  Field definitions may be changed by

          


                                                                    Page 30

               moving the cursor over to the appropriate field and pressing
               F7.  Any definition may be altered except for the field
               name.  The only way that a field name may be altered is by
               deleting the field and creating a new field.  Please note
               that by doing this any data already entered into that field
               will be deleted.  The Foreign Database Relationship
               Definitions may be altered by moving the cursor over to the
               key field and pressing ALT-F7.
           3.  Press F10 to save the modified form.

           Note:    If the fields in the primary database file associated
                    with a form are modified (fields deleted, fields added,
                    field lengths changed or field types changed), the
                    changes will also occur to the database.  If a field is
                    shortened, data values may become truncated.  The
                    original database files are stored as backup database
                    files with the extension .BAK and if there is any
                    associated memo field, it will have the extension .TBK.

          C. Form/Select
          ==============

          When using the Form/Select command, you are simply choosing the
          form that you want to use for subsequent operations.  Examples of
          such operations may include data entry, querying, report
          generation, label generation and mail merge.

          The Form/Select command will open the database file(s) that have
          been defined in the form.  All other objects and commands in the
          menu are dependent upon the selected form.  If no form is
          selected, then you may not access any other object on the main
          menu.  Thus, before any other operations are performed, you must
          select a form.

          Error checking automatically occurs at the time of selection. 
          All the formulas are checked along with the various fields.  If
          there are any errors, a message will appear and appropriate
          action must be taken to correct the problem before the form can
          be executed.  The most common error occurs when a field has been
          deleted or modified.  Related forms that reference this field
          will then generate an error unless they are updated.  The form
          may be UNEXECUTABLE and/or UNMODIFIABLE depending upon the nature
          of the error.  Also the form name will be in lower case in the
          work area if an error occurs.  Refer to the appendix for a
          complete list of error messages and appropriate steps to correct
          them.

           Note:    You must select the form that you want to use from a
                    directory.  This directory will only list the forms
                    that you have previously created and saved.

                    If there are no forms created and you try to select a
                    form, you will get an error message.  To create your
                    form, see Form/Create.

          


                                                                    Page 31

          To Select a Form:
           1.  Choose Form/Select.
               At this point a window will open and a directory of the
               existing forms will be displayed.  The description of each
               form is also shown.  This window may not be able to show all
               the forms that you have created.  However, by using the UP
               or DOWN keys you may scroll through the entire list of
               forms.  To alert you to the fact that there are more forms
               on your list, you will see arrows along the border of the
               window, pointing in the direction that you may scroll.
           2.  Place the cursor bar over the form that you want to select
               and press ENTER.

          At this point, you have chosen the form that you want to use. 
          Your work area will indicate the name and description of the form
          that you have chosen.  It will be displayed beside Selected Form
          towards the top of the work area.  Also note that the data
          directory will be displayed at the bottom of the work area.  This
          indicates the directory that your form resides in.  Now that you
          have selected your form, you may perform various operations on
          it.

          D. Form/Execute
          ===============

          The Form/Execute command is used for data entry and editing of
          data.

          When you select Form/Execute, a blank data entry screen will be
          displayed and new data may be entered.  If some data is already
          entered, you will be at the end of the file (EOF).

          The bottom four lines of the screen make up the information area. 
          The first line is the database information line.  Reading from
          left to right, the information identifies the:
           1.  Field you are reading from.  The information is in the form
               of:  database file name -> field name.
           2.  Field you are writing to.
           3.  Current record number in the primary database file.  The
               notation is in the form of:  current record/total records. 
               If you are at the end of the file, the record you are at
               would be EOF.  This means that data entered into the form
               will be appended (i.e. added to the end of the file.)
           4.  The word "Del" if the current record is marked for deletion.

          In most cases, the database information line will indicate that
          the field you are reading from is identical to the field you are
          writing to.  However, if the cursor in on a key field that
          relates to a secondary database file, this is not the case.

          The second line in the information area is the message line.  It
          provides messages as necessary, to prompt you for further action.

          The third line in the information area is the active keys line. 

          


                                                                    Page 32

          Not all the active keys are shown but only the main ones.  Any
          active keys that are CTRL or ALT keys may be displayed by
          pressing down the CTRL key or the ALT key.  The display for the
          active keys line will change.  The active keys of the
          Form/Execute command are as follows.

          ================================================================
          Key                      Action
          ----------------------------------------------------------------
          ENTER or TAB        finished entering data into a field and moves
                              cursor to next field.
          SHIFT-TAB           moves the cursor to the previous field.
          RIGHTKEY            moves the cursor one position to the right in
                              a field.  If the cursor is at the end of a
                              field, it will jump to the next field.
          LEFTKEY             moves the cursor one position to the left in
                              a field.  If the cursor is at the start of a
                              field, it will jump to the previous field.
          UPKEY               moves the cursor up to the field on the
                              previous line.
          DOWNKEY             moves the cursor down to the field on the
                              next line.
          HOME                moves the cursor to the start of a field.
          END                 moves the cursor to the end of a field.
          BACKSPACE           deletes the character before the cursor.
          DELETE              deletes the character under the cursor.
          INSERT              toggles between insert mode and overwrite
                              mode.
          CTRL-C              recalculates calculated and derived fields.
          CTRL-D              marks a record, that has been saved, for
                              deletion.  However, if you use CTRL-D while
                              appending a record and you have not saved the
                              record yet, the record will be cleared and
                              not saved.  Also, if there are any linked
                              records, they will also be marked for
                              deletion if the question, "Delete linked
                              record if primary record deleted?", was
                              answered YES.  Pressing CTRL-D on a record
                              already marked for deletion will undelete it
                              and remove the mark.
          CTRL-L              prints the current record based on the
                              selected label.  This will work only if a
                              label has been previously selected.
          CTRL-M              prints the current record based on the
                              selected mail.  This will work only if mail
                              has been selected for purposes of a mail
                              merge.
          CTRL-R              prints the current record based on the
                              selected report.  This will work only if a
                              report has been selected.
          CTRL-U              undo key.  Any changes made to a record will
                              be undone as long as it has not been saved.
          CTRL-Y              clears the data in the field where the cursor
                              is at.

          


                                                                    Page 33

          CTRL-HOME           moves to the first screen of the first
                              record.
          CTRL-END            moves to the append record.
          F1                  context sensitive help.
          F2                  used to view an underlying database file,
                              whether it be the primary or foreign
                              database.  The database, which is being read
                              from, will be displayed in table view in
                              sequential order.
          ALT-F2              used to view the database file being read
                              from in indexed order in table view based
                              upon any index.
          CTRL-F2             used to view the underlying database file in
                              indexed order in table view based upon the
                              current index and field value.
          F5                  used to bring up pre-set data in a field
                              whose value has been defined as a copied,
                              defaulted or sequential.
          F8                  brings up the search menu.
          F10                 saves the current records and moves to the
                              next one.
          PAGEDOWN            moves to the next screen of the current
                              record or the first screen of the next record
                              if the current screen is the last screen of
                              the current record.
          PAGEUP              moves to the previous screen of the current
                              record or the last screen of the previous
                              record if the current screen is the first
                              screen of the current record.
          CTRL-PAGEUP         moves to the first screen of the previous
                              record.
          CTRL-PAGEDOWN       moves to the first screen of the next record.
          ESC                 aborts the process of data entry and returns
                              to the main menu.
          =================================================================

          Appending and Editing Records
          -----------------------------

          Upon execution of a form, PRO-dVelBase places the record counter
          at the end of file (EOF).  At this position records will be added
          (appended) to the primary database associated with the form.

          The natural direction of cursor movement is from left to right
          then top to bottom.  The UPKEY moves the cursor to the closest
          field on the prevous line while the DOWNKEY moves the cursor to
          the next line.  The cursor will jump over fields that are
          write-only or calculated fields.

          The allowed data in a field is determined by how the field was
          defined.

          If you enter a value into a key field and this value is present
          in the related database, then the fields of that related database

          


                                                                    Page 34

          will be automatically retrieved and displayed on the form.  If it
          is not present, then the field values entered will be appended to
          the related database.  If the relationship was defined as being
          copied instead of linked, this will not happen and the field
          values will only be stored in the parent database.

          Upon completion of the last field on a form, the record(s) will
          be automatically saved and the record counter incremented. 
          Remember that if a form is a multi-file form, all updated records
          will be saved in an all or none fashion.  If the form is aborted
          by pressing ESC before it is finished, all the field values will
          not be saved.  This process is called a transaction.

          If you would like to save a form before all the fields are
          filled, press F10.  F10 causes a save to be made unless the
          cursor is in an one-to-many area (where it means go to the next
          field beyond the one-to-many area) or if in a memo field (where
          it means go to the next field).  Pressing F10 will evoke error
          checking to ensure all required fields have data in them and all
          error formulas evaluate to be TRUE.

          Previous forms may be viewed by pressing the CTRL-PAGEUP key (or
          just PAGEUP if the form only has one screen).  The fields on the
          form may then be edited and it will be automatically saved when
          the cursor passes the last field on the form or if F10 is
          pressed.

          If you are using the PAGEUP, PAGEDOWN, CTRL-PAGEUP,
          CTRL-PAGEDOWN, CTRL-HOME or CTRL-END keys to move between
          different forms and changes are made to the fields, a warning
          will be given to indicate that a field was changed on the form
          and the option will be given to save the changes or discard them. 
          No such warning is given if F10 is pressed to save a form.  If a
          form is being appended and one of these keys is pressed, the
          contents of the form is not saved onto the disk but is retained
          in memory in a separate buffer.  The records must be explicitly
          saved by pressing F10 or completing the last field on the form.

               Editing Character Fields
               ------------------------
               Character fields appear left justified and may have a
               picture present for formatting within the field display. 
               They are the only field types that allow horizontal
               scrolling if the field length is greater than the field
               display.

               Editing Numeric Fields
               ----------------------
               Numeric fields are displayed right justified within the
               display and have the decimal place in a fixed position. 
               Upon entering a numeric field, the cursor initially drops to
               the first position on the left.  After the number is
               entered, the field is right justified upon exiting the
               display.

          


                                                                    Page 35

               Editing Logical Fields
               ----------------------
               Logical fields have either a TRUE or FALSE value.  A TRUE
               value is represented by "T" or "Y".  A FALSE value is
               represented by "F", "N" or a null field value.

               Editing Single Key Fields
               -------------------------
               Single key fields only have one character.  The valid
               characters depend upon how the field was defined.

               Editing Date Fields
               -------------------
               Date fields are displayed with one of three templates: 
               "mm/dd/yy", "dd/mm/yy" or "yy/mm/dd".  The template is
               determined by how the field was initially defined.  These
               templates indicate which positions the day, month and year
               should go.  A date field cannot be partially filled.

               Editing Time Fields
               -------------------
               Time fields are displayed with one of four templates: 
               "hh:mm", "hh:mm:ss", "hh:mmp" or "hh:mm:ssp".  The template
               is determined by how the field was initially defined.  These
               templates indicate which positions the hours, minutes and
               seconds should go.  The "p" in the template indicates that
               time is in 12 hour format and an A or P should be entered at
               this position to indicate whether the time is am or pm.  A
               time field cannot be partially filled.

               Editing Memo Fields
               -------------------
               Memo fields are displayed as windows on the form and the
               active keys are slightly different in them.  If the length
               of a memo field is greater than what can fit into the
               window, the field may be scrolled vertically in the window.



















          


                                                                    Page 36


               The following table indicates the keys that have a different
               action in memo fields than in other fields.

          =================================================================
          Key            Action
          -----------------------------------------------------------------
          ENTER          places a carriage return at the current cursor
                         location.
          TAB            moves cursor 10 spaces to the right.
          SHIFT-TAB      moves cursor 10 spaces to the left.
          RIGHTKEY       moves the cursor one position to the right.  If
                         the cursor is at the end of a field, it will jump
                         to the next field.
          LEFTKEY        moves the cursor one position to the left.  If the
                         cursor is at the start of a field, it will jump to
                         the previous field.
          UPKEY          moves the cursor up to the previous line.  If the
                         cursor is at the first line, it will jump to the
                         field above it.
          DOWNKEY        moves the cursor down to the next line.  If the
                         cursor is at the last line, it will jump to the
                         field below it.
          HOME           moves the cursor to the start of a line.
          END            moves the cursor to the end of a line.
          F10            finished editing the memo field and cursor jumps
                         to next field.
          PAGEDOWN       displays the previous window screen.
          PAGEUP         displays the next window screen.
          =================================================================

               Editing Fields in a One-to-Many Area
               ------------------------------------
               Data entry in a one-to-many area is similar to data entry in
               other fields with a few exceptions.  First, pressing F10
               will only allow the cursor to jump to the next field beyond
               the one-to-many area.  Second, if the area is enclosed by a
               scroll window, the UPKEY and DOWNKEY will cause the window
               to scroll if at the top or bottom.  Third, if the cursor is
               beyond a one-to-many area and the UPKEY is pressed, the
               cursor will jump to the last line that has any field values
               entered and not the last empty line.  Fourth, calculated
               formula fields only evaluate for the current line.

          Table View
          ----------

          In table view, each record is shown in a row and the fields are
          displayed in columns.  All field values are displayed with their
          templates except for memo fields, which are only displayed with
          the four letter word "MEMO" (if text is present in the field) or
          "memo" (if text is not present).

          Record numbers are listed down the left hand side.  A vertical

          


                                                                    Page 37

          line separates the record numbers from the fields of the
          database.  Deleted records are identified by a diamond that is
          positioned in place of this vertical line and if the cursor is
          over a deleted record the word "Del" appears near the bottom.

          Pressing F2 activates table mode for the database file that is
          being read from.  In most fields, it is the same as the one being
          written to.  The only field where the read is different from the
          write is the key field.  PRO-dVelBase was designed in this way to
          allow "look-ups" in foreign database files.

          When the database is displayed in table mode, you may either view
          or edit the database.  Initially, you will be in the view mode. 
          You are not allowed to edit the fields until you use the edit key
          (E) to get into edit mode.

          The active keys in the table view mode are as shown in the
          following table.

          =================================================================
          Active Keys         Action
          -----------------------------------------------------------------
          HOME                moves to the first field.
          END                 moves to last field.
          F1                  context sensitive help.
          F8                  brings up the search menu.
          PAGEUP              scrolls up 20 records.
          PAGEDOWN            scrolls down 20 records.
          UP, DOWN, LEFT, 
          RIGHT, TAB, 
          SHIFT-TAB, 
          CTRL-LEFT, 
          CTRL-RIGHT          moves the cursor in the direction of the
                              arrow.
          CTRL-HOME           moves to the first record.
          CTRL-END            moves to the last record.
          CTRL-D              marks and unmarks the current record for
                              deletion.  Advances cursor to next record.
          E                   used to enter into table edit mode.
          T or ENTER          used to transfer the record, which the cursor
                              is on, into the form.
          V                   used to select which fields should appear in
                              the table and what order they are to appear
                              in.
          A                   used to append any records onto the end of
                              the database.
          =================================================================

               Altering Table View
               -------------------
               The following procedure allows you to select the fields that
               you want to view and to alter the order in which you view
               these fields.  This is done in the table view mode.
                1.  Press V.  Two windows are displayed.  The left window

          


                                                                    Page 38

                    displays all the fields present in the database.  The
                    right window is initially empty.
                2.  Place the cursor, which is in the left window, on the
                    first field that you want view.
                3.  Press ENTER.  A check mark will appear beside the field
                    name, and this field name will be displayed in the
                    right window.
                4.  Place the cursor over the next field that you want.
                5.  Press ENTER.  A check mark will appear beside this
                    field.  Also, this second field will be displayed in
                    the right window.
                6.  Continue this process until you have selected all of
                    the fields that you want to be seen in table view.
                7.  To alter the order in which the fields appear in table
                    view, use the RIGHTKEY to move the cursor to the right
                    window.  Locate the field you would like to move and
                    place the cursor over this field.  Press ENTER to lock
                    the field onto the cursor.  Use the UP or DOWN key to
                    move the field to the position that you would like it
                    to be viewed in.  Press ENTER again to unlock and place
                    your field into position.
                8.  If you have selected a field that you want to view in
                    the table view mode and then decide that you do not
                    want to view this field, you may remove it from the
                    view.  Place the cursor in the left window over the
                    field you want removed from the view.  Press ENTER and
                    the field will be removed from the view.
                9.  Press F10 to save the view or ESC to abandon.

               Editing and Appending in Table Mode
               -----------------------------------
               In the table view, editing fields occurs by pressing E while
               appending occurs by pressing A.  This allows for editing of
               records directly from the table.  This has the advantage of
               being able to see and edit many records at a time.  It has
               the disadvantage of not having the changeable field
               definitions apply to the fields.  While in table edit mode,
               only the fixed field definitions apply.

               A record is automatically saved after the field on the last
               column is filled, if F10 is pressed or if the cursor is
               moved to another row.













          


                                                                    Page 39


               The active keys in table edit mode are as follows.

          =================================================================
          Active Keys         Action
          -----------------------------------------------------------------
          HOME                moves to the start of a field.
          END                 moves to the end of a field.
          CTRL-END            moves to the last record.
          CTRL-HOME           moves to the first record.
          CTRL-D              marks and unmarks the current record for
                              deletion.  Advances cursor to next record.
          CTRL-LEFT or 
          SHIFT-TAB, 
          CTRL-RIGHT or TAB   moves the cursor left or right one field.
          ENTER               moves the cursor one field to the right.
          ESC                 returns to the table view mode. 
          F1                  context sensitive help.
          F8                  brings up the search menu.
          F10                 saves current record.
          LEFT and RIGHT      moves the cursor left or right within the
                              field.
          PAGEUP              scrolls up 20 records. 
          PAGEDOWN            scrolls down 20 records.
          UP and DOWN         moves the cursor up or down one record.
          =================================================================

               Indexed Table Mode
               ------------------
               While in the form, the table may also be brought up in
               indexed order instead of sequential order.  This is done by
               pressing CTRL-F2 or ALT-F2.  The indexes used belong to the
               database being read from.  A field value also limits the
               records displayed.

               CTRL-F2 displays the database being read from based upon the
               index of the current field being read from.  If no index is
               present, an error message will appear.  The current value in
               the field acts as a filter to limit the records displayed in
               table view.  If a null value is present, all the records are
               displayed.  In date fields, records with null date values
               are displayed using the field value of "00/00/00".

               ALT-F2 allows any index present in the read database to be
               used as the primary index.  Pressing ALT-F2 will display all
               fields in the read database that have an index.  One may be
               selected and an optional filter value entered to limit the
               number of records displayed.  Entering a null value for this
               filter will cause all the records to be displayed.

               The active keys in indexed table mode are exactly the same
               as in the sequential table mode except that appending is not
               allowed.  Also, if a filter value is used, the search menu
               (F8) is not operational.

          


                                                                    Page 40

          The Search Menu
          ---------------

          It is possible to perform searches while you are using the form,
          table or query.  If the search menu may be called up, you will
          see the search key (F8 key) listed as one of the options on the
          active keys line.

          Press F8 to display the search menu.  The following 5 submenu
          commands are on this menu:  Goto, Search, Search & Replace,
          Search & Delete, Search & Undelete.

               Goto
               ----
               Goto is one of the submenu commands of the search menu.  It
               allows you to move directly to any record number you desire.

               The Goto command is executed as follows:
                1.  Press F8 to bring up the search menu.
                2.  Select Goto.
                3.  Type the record number you want to go to.
                4.  Press ENTER.

               Search
               ------
               To perform a search:
                1.  Press F8 to bring up the search menu.
                2.  Select search.  The fields of the database will be
                    listed in a window.
                3.  Select the field that you would like to do the search
                    on.
                4.  Enter the search string, that is, the value you would
                    like to search for.  If null string is used for the
                    search string, then all records will be retrieved. 
                    Searching for null dates is done by using the search
                    string "00/00/00".
                5.  Next you will see the following prompt, "Ignore case?
                    (Y/N)".  For a case sensitive search, type N.  For a
                    case insensitive search, type Y.
                     Note:    Case sensitive or case insensitive searches
                              may only be done in a character or a single
                              key field.

                    A case sensitive search means that if the data you are
                    searching for is written in all upper case letters, you
                    should use upper case letters in your search string. 
                    Basically, you enter the search string using the same
                    case (lower, upper, or mixed) as the data was
                    originally entered into the form.  Thus, if the data is
                    in lower case and the search string is in upper case,
                    the search string will not be found.

                    A case insensitive search means that the search will be
                    conducted using the letters that you have entered,

          


                                                                    Page 41

                    ignoring whether it is in upper or lower case.

                    However, if you have created an index in which you
                    ignored the case and you use this index for doing your
                    search, then the search will be case insensitive.

                6.  If you are doing a search in a field that is indexed,
                    you have the option of using the index to perform the
                    search.  You will see "(I)ndexed or (S)equential
                    search?"  Enter either I or S depending on the type of
                    search you want.

                    Using the index to perform the search will be much
                    faster.  Remember that an index is a table of record
                    numbers arranged in sorted order to permit rapid access
                    to a specific record.  Therefore, when you use an index
                    to do your search, the search will not proceed in the
                    order in which the record appears in the database.

                     Note:    If you decide to do a sequential search
                              instead of an indexed search, you will be
                              allowed to choose whether you want to ignore
                              the case while doing the search.

               A search will be made until the first field is found that
               contains your search string.  For example, using a search
               string of "smi" in the surname field will find all the
               surnames that start with "smi", such as smith, smitty or
               smithers.  If you want an exact search, enter a space after
               the string set.

               When the first field that contains your substring is found,
               PRO-dVelBase moves this record to the top of your screen and
               your cursor will be on this field if in table mode.  On the
               message line, the third line from the bottom of the screen,
               you will see the prompt, "Continue? (Y/N)".  Press Y if you
               want to continue.  Press N if you do not want to continue.

               For an exact search:
                1.  Type your search string.
                2.  Type a space after your search string.  If you do not
                    type a space at the end, then the search will bring up
                    all the occurrences of the search string.  For example:

                         Smith(SPACE) will find Smith
                         Smith(without a space) will find Smithers,
                         Smithen, Smith

                3.  Press ENTER.  Your cursor will highlight the record
                    that contains your search string.

                Note:    If a null string is used, then the search will
                         bring up the entire database, one record at a
                         time.

          


                                                                    Page 42

               Search & Replace
               ----------------
               This command is a submenu command of the search menu.  It is
               similar to the search command but it also allows you to
               replace all the search strings with a value derived from a
               replace formula.

               Perform your Search & Replace command as follows.
                1.  Press F8 to bring up the search menu.
                2.  Select Search & Replace.  The fields of the database
                    will be listed in a window.
                3.  Select the field that you would like to do the search
                    on.
                4.  Enter the search string, that is, the value you would
                    like to search for.  If the search string is a null
                    string (no value) then this becomes a global operation
                    and all of the records are changed. Press ENTER.
                5.  Next you will see the following prompt for character
                    fields, "Ignore case? (Y/N)".  For a case sensitive
                    search, type N.  For a case insensitive search, type Y.
                6.  Enter the replace formula, that is, the value you would
                    like to see in place of your search string.  The
                    formula must evaluate out to the same type as the
                    search string.  The replace formula has a maximum
                    length of 255 characters and pressing CTRL-Z allows it
                    to be edited in a window.  Press ENTER.
                7.  As a precaution, you will also be asked, "Verify each
                    change? (Y/N)".  Press Y and you may verify each
                    change.  The search will stop at each spot where a
                    record is found and it will ask whether you want to
                    replace that field or not.  Also the new value to
                    replace the current field value will be displayed as a
                    confirmation.  If you answer NO to the above question,
                    all found records will be updated without confirmation. 
                    You will not be asked whether you want to replace that
                    field or not.

                     Note:    When replacing an exact word, include a space
                              as part of the search string.  Otherwise, the
                              replace string will replace any occurrence of
                              your search string.

               e.g. To perform a global update on a COST field, increasing
                    each field by 10%, the following may be done.  Use a
                    null string as the search string in the COST field and
                    the replace formula is COST * 1.1.

               Search & Delete
               ---------------
               To search and delete a record:
                1.  Press F8 to bring up the search menu.
                2.  Select Search & Delete.  The fields of the database
                    will be listed in a window.
                3.  Select the field that you would like to do the search

          


                                                                    Page 43

                    on.
                4.  Enter the search string, that is, the value you would
                    like to search for.  Press ENTER.
                5.  Next you will see the following prompt, "Ignore case?
                    (Y/N)".  For a case sensitive search, type N.  For a
                    case insensitive search, type Y.
                6.  As a precaution, you will also be asked, "Verify each
                    change? (Y/N)".  Answer YES and you may verify each
                    change.  The search will stop at each spot where a
                    record is found and it will ask whether you want to
                    delete that record or not.  If you answer NO to the
                    above question, the entire database will be updated
                    globally.  You will not be asked whether you want to
                    delete that record or not.

                Note:    When searching for an exact word, press the space
                         bar to include a space as part of the search
                         string.  Otherwise, the search find all
                         occurrences of your search string.

               When you delete a record, you are simply marking it as being
               deleted.  Records that you have marked for deletion will
               have the word "Del" in the right lower corner when the
               cursor is over them and a diamond will appear beside the
               record number on the left side if in table view.  In order
               to remove deleted records from the database, the database
               packing function must be performed.  However, once you have
               packed your database you will not be able to undelete a
               deleted record.

               Search & Undelete
               -----------------
               This function works in a similar way as the Search & Delete. 
               The Search and Undelete function simply unmarks a record
               that was previously marked for deletion.  This command will
               only work if you have not yet packed the database containing
               the deleted records.

          E. Form/Unselect
          ================

          Form/Unselect is the opposite of Form/Select.  Form/Unselect
          simply removes a given form from the work area.  Also all
          associated objects in the work area are also unselected.

          F. Form/Delete
          ==============

          This submenu command is used to delete forms.  When it is
          selected, you will be asked if you would also want to delete all
          the associated data files with the form and all the associated
          files in the catalog.  The associated files in the catalog
          include any queries, reports, labels, mails, appends and posts
          that were created with the currently selected form.  The default

          


                                                                    Page 44

          to these questions is NO.  Deleting the form only will only
          delete the .SCN, .FLD and .CAT files.  Deleting the data files
          will delete the .DBF and .DBT files.  Please be careful if you
          select this because there may be alot of data present in these
          files that you may not want deleted.


















































          


                                                                    Page 45


                                  Chapter 3:  Query
                                  =================

          A query is a request by a user for information from the database. 
          This request lays out the limits, conditions or criteria that
          needs to be met in order for data to be found and displayed. 
          Therefore, the query acts as a filter.  It will filter out as
          well as sort the appropriate records for subsequent operations. 
          These operations may include the report generation, mail merge,
          label generation, append and post.

          There are eight submenu commands under the query menu.  They
          include:  Select, Execute, Create, Modify, Unselect, Delete, Add
          to Cat. and Remove from Cat.

          Whenever a query is created, it is specific to a given form. 
          Therefore, the form must be selected before a query may be
          created.  Like the form, a query must be created and saved before
          it may be selected and executed.

           Note:    You only create your query once and save it. 
                    Thereafter, you just need to select it whenever you
                    want to execute it.  You may alter the query after it
                    has been saved.  This is done using the Query/Modify
                    command.  

          A. Query/Create
          ===============

          This command is used to create a query.  All queries are specific
          to a given form.  Therefore, before you may create your query, if
          you have not already done so, select the form that your query
          will be associated with.

          To Create a Query:
           1.  Select Query/Create.
           2.  Give this query a name.  The name must be a dBASE name and
               it must follow dBASE conventions.  Please refer to Appendix
               A:  dBASE Naming Conventions.  Try to make the name as
               descriptive as possible.  For example, a query of all the
               names between the letters A to M might be called NAME_A_M.
           3.  Press ENTER.  You will see a screen with all the field names
               across the top.  The field names are written in the
               following format:  database file name -> field name.  This
               is done because for any given form, there may be fields that
               come from more than one database file.  This is usually the
               case if your form is a multi-file form and consists of
               databases files that are related.

          The first line under the field names is the line that indicates
          the numerical view order of selected fields.  The next line
          indicates the numerical sort order of the fields.


          


                                                                    Page 46

          The following tables indicate the active keys on the query
          editor.

          =================================================================
          Active Key          Action
          -----------------------------------------------------------------
          E or ENTER          moves cursor to edit line.
          RIGHT               moves the cursor bar right one cell.
          LEFT                moves the cursor bar left one cell.
          S                   used for sort order.
          V                   used for view order.
          UP                  moves the cursor bar up one cell.
          DOWN                moves the cursor bar down one cell.
          HOME                moves the cursor bar to the last field.
          END                 moves the cursor bar to the first field.
          ESC                 abandons the query operation.
          F9                  displays a list of the field if on edit line.
          ALT-F9              displays a list of the functions if on edit
                              line.
          CTRL-F9             displays a list of the operators if on edit
                              line.
          F1                  context sensitive help.
          F10                 saves the query.
          ================================================================

          Query Editor
          ------------

          The query method used by PRO-dVelBase is a query-by-example.

          The table consists of 10 rows going down and the number of
          columns is equal to the number of fields in the form.  We will
          refer to the area in which you enter the conditions as cells.

          In this table, the query is created by placing conditions that
          must be met before a record will be filtered.  Conditions are
          placed in each cell and all these conditions must be evaluated as
          being TRUE before the transaction will be included in the query. 
          A condition consists of a relational operator and an expression.

          Here are the relational operators that will be accepted:

          =================================================================
          Symbol         Meaning
          -----------------------------------------------------------------
          =              Equal to
          <> or #        Not Equal to
          <              Less Than
          >              Greater Than
          <=             Less Than or Equal To
          >=             Greater Than or Equal To
          $              Contains
          =================================================================


          


                                                                    Page 47

          An expression is a string that contains a sequence of operators,
          functions, field names and constants.  All expressions evaluate
          to a specific type, such as numeric, character, date or logical. 
          Therefore, field names and constants used in an expression must
          be of the same type.  For example, you may add a numeric field
          only to a numeric field.  To further clarify this point, the
          condition to query a surname field must contain an expression
          that returns a character type.  An expression that returns a
          numeric type is not acceptable.

          Single key and time fields are considered to be equivalent to the
          character field type.

          It is not possible to query a memo field.  Any query conditions
          placed in a memo field will simply be ignored.  

          Multiple AND conditions may be placed on the query table.  All
          conditions are on the same row.  For example, if you want to
          search for all the Smiths living in Washington, then in the
          SURNAME cell, the condition would be ="Smith".  In the CITY cell,
          the condition would be ="Washington" and these 2 conditions would
          be on the same line.  This would retrieve a record or records
          that have the surname Smith and the city name Washington.

          Multiple OR conditions are placed going downwards.  For example,
          the search of all the records in which the surname is equal to
          Smith or Jones.  The conditions would be placed in the SURNAME
          cell with the condition ="Smith" on line 1 and ="Jones" on line
          2.  For characters, the search is case sensitive.

          To perform a multi-condition AND search on a given field, a "&"
          is placed between conditions and the conditions are placed in a
          single cell.  For example, to find all the surnames greater than
          Jones and less than Smith, the following conditions would be
          entered into the SURNAME cell:  >"Jones" & <"Smith".  The "&"
          character is reserved for this purpose and cannot appear in the
          condition for any other reason.

          If a condition does not have anything before the operator,
          PRO-dVelBase assumes that the field name of the current cell is
          to be used in the expression.  If anything is present before the
          operator, then PRO-dVelBase will evaluate the condition as a
          complete expression.  For example, if the expression,
          SUBSTR(SURNAME,2,2) = "on", was used then all surnames whose
          second and third letters have "on" (such as Jones, Bones, Bonn)
          will be found.  This expression may be placed in any cell and
          evaluated directly because the expression, SUBSTR(SURNAME,2,2),
          occurs before the equal operator.

          With this query-by-example method, very complex queries may be
          created and saved.  Upon execution of the query, all the records
          that satisfy these conditions will appear in table view.

           Note:    For a form that has a one-to-many relationship, the

          


                                                                    Page 48

                    query will only be applied to the first record of the
                    one-to-many relationship.  In order to query all the
                    records of a one-to-many relationship, another form
                    must be used that reverses the link so that a
                    many-to-one relationship exists.

          To Select Fields for Viewing
          ----------------------------

          The following procedure allows you to select the fields that you
          want to view and to alter the order in which you view these
          fields.
           1.  Press V.  Two windows are displayed.  The left window
               displays all the fields present in the database.  The right
               window is initially empty.
           2.  Place the cursor, which is in the left window, on the first
               field that you want view.
           3.  Press ENTER.  A check mark will appear beside the field name
               and this field name will be displayed in the right window.
           4.  Place the cursor over the next field that you want.
           5.  Press ENTER.  A check mark will appear beside this field. 
               Also, this second field will be displayed in the right
               window.
           6.  Continue this process until you have selected all of the
               fields that you want to be seen in table view.
           7.  To alter the order in which the fields appear in query view,
               use the RIGHTKEY to move the cursor to the right window. 
               Locate the field you would like to move and place the cursor
               over this field.  Press ENTER to lock the field onto the
               cursor.  Use the UP or DOWN key to move the field to the
               position that you would like it to be viewed in.  Press
               ENTER again to unlock and place your field into position.
           8.  If you have selected a field that you want to view in the
               query and then decide that you do not want to view this
               field, you may remove it from the view.  Place the cursor in
               the left window over the field you want removed from the
               view.  Press ENTER and the field will be removed from the
               view.
           9.  Press F10 to save the view or ESC to abandon.

          Once you save your changes, you will return to the previous
          screen.  Note that the first line indicates the order that you
          have chosen for the fields to appear.  This order is indicated by
          a number under the selected field name.  Note that all the field
          names are shown across the top of the screen but not all field
          names will have a number under them.  Only those that you have
          selected to be viewed will have a number to indicate the view
          order that you have assigned to it.

          If no fields are assigned to a query view, then PRO-dVelBase will
          display all the fields in the form.




          


                                                                    Page 49


          To Sort the Fields
          ------------------

          Proceed as follows:
           1.  Press S.  Two windows will open.  The left window will
               display the field names that you may choose from.  The right
               window will display the fields that you have chosen.
           2.  Place the cursor over the field that you would like to sort
               by.
           3.  Press ENTER.  A check mark will appear beside the field name
               and this field name will be displayed in the right window.
           4.  Place the cursor over the next field that you want.
           5.  Press ENTER.  A check mark will appear beside this field. 
               Also, this second field will be displayed in the right
               window.
           6.  Continue this process until you have selected all of the
               fields that you want to be sorted by.
           7.  If you want a sort to be case insensitive, press the SPACE
               bar instead.  This will place a double arrow beside the
               field name instead of a check mark.
           8.  To remove a field from the sort, place the cursor over the
               field name in the left window and press ENTER.
           9.  To alter the order in which the fields are sorted by, use
               the RIGHTKEY to move the cursor to the right window.  Locate
               the field you would like to move and place the cursor over
               this field.  Press ENTER to lock the field onto the cursor. 
               Use the UP or DOWN key to move the field to the position
               that you would like it to be viewed in.  Press ENTER again
               to unlock and place your field into position.

          Upon saving your changes, you will return to the previous screen. 
          The second line indicates the order that you have chosen for the
          fields to be sorted.

           Note:    PRO-dVelBase will only allow you to sort up to 10
                    fields and their combined lengths cannot exceed 100.

          The sort order will also be correct even if the fields have
          different field types.  The only field that cannot be sorted is a
          memo field.

          A sort does not physically rearrange the records in a database
          file.  An index is created and the records will appear to be
          sorted when they are printed.

          Saving The Query
          ----------------

          Proceed as follows:
           1.  Review your work on the screen.  If you are happy with the
               view order, sort order and conditions that you have assigned
               for the query, press F10.
           2.  Give the query file a description.  The maximum field length

          


                                                                    Page 50

               is 40 characters.  Try to make this file description as
               descriptive a possible.  For example, if this query was a
               query of all the Smiths living in Los Angeles, simply call
               this file description, "All Smiths living in LA."
           3.  Press ENTER.  The query is saved as a file with a .QCF
               extension (meaning query condition file).

          When you have created a query, you may select it and execute it. 
          Upon execution, all the records that are evaluated as TRUE, will
          be displayed in a table view.

          B. Query/Modify
          ===============

          The modify selection on the query menu will allow you to modify
          the selected query.  The rules for modification are the same as
          for creation.

          C. Query/Select
          ===============

          When using the Query/Select command, you are simply choosing the
          query that you want to use.

          Each query is associated with a specific form.  Therefore,
          PRO-dVelBase will not grant you access to the Query/Select and
          Query/Create commands unless you select the form first.  If no
          form is selected, all of the Query menu selections are turned
          off.  Once you select your form, PRO-dVelBase only turns on the
          Select and the Create submenu commands.  Then, when you select
          your query, PRO-dVelBase turns on the other Query submenu
          commands.  However, you may only select a query that you have
          previously created and saved.

          Query selection places the query into the work area for use. 
          Error checking occurs also on selection and if an error occurs
          the name will be put in lower case and a file description of
          UNEXECUTABLE and/or UNMODIFIABLE FILE will be given.  If the file
          name is present in the catalog but the file does not actually
          exist then the message "FILE DOES NOT EXIST" will appear.  This
          type of error may occur if a file is deleted from the DOS level
          instead of using PRO-dVelBase to delete it.

          To Select a Query
          -----------------

           1.  Select Query/Select.  At this point a window will open and a
               directory of the existing queries will be displayed.  Note
               that the description is also shown.
           2.  Place cursor bar over the query that you want to use.
           3.  Press ENTER.

          At this point, you have chosen the query that you want to use. 
          The name and description of the query that you have chosen will

          


                                                                    Page 51

          appear in the work area.

          D. Query/Execute
          ================

          Upon execution of a query, PRO-dVelBase will display in table
          view all the records that are evaluated as TRUE.

          The method that PRO-dVelBase uses to query a form is that it
          evaluates each record and if it is found to be TRUE, its record
          number is stored in a separate index file with a .QIF extension
          (meaning query index file).  If this was the first time this
          query was executed or if the databases on the selected form were
          updated, then PRO-dVelBase will query the entire database.  If
          the query had already been executed and no updates made on the
          databases, then you will be asked if you want to re-query the
          database.  The querying process may be paused by pressing SPACE
          or aborted by pressing ESC.

          The active keys in the query view are exactly the same as those
          in the table view except appends are not allowed.

          You may also edit any of these records by pressing E.  This
          allows you to enter the Query edit mode.  Editing records at this
          point will not update the index therefore the record will still
          be displayed even though it may evaluate to be FALSE.  A
          re-querying of the database is necessary.  Pressing Esc will take
          you back to the main menu.

          In a one-to-many relationship, all the fields in the first
          linkage are present.  Subsequent records in the relationship will
          not display the values present in the parent database file and
          the record number is displayed with a ditto (") to indicate that
          it is the same as the first linkage.  It is not possible to edit
          the blank cells in a one-to-many relationship.

          E. Query/Unselect
          =================

          The work area will display the name and file description of the
          query that is currently selected.  Queries act as filters to
          select the appropriate records for subsequent operations.  If you
          do not want your records to be filtered out, then you need to use
          the Query/Unselect command to remove the active query.  When you
          use Query/Unselect, PRO-dVelBase will resume using all the
          records in the form for all subsequent operations.

          To clarify this point, suppose you created a query named
          NAME_B_M.  This query is described as "Customer with Surnames
          between B and M".  If you have selected this query, the query
          name (NAME_B_M) and the file description (Customer with Surnames
          between B and M) will be displayed in the work area.  If you
          decide to print some labels, only the records of the customers
          whose surname fall between B and M will be printed.  PRO-dVelBase

          


                                                                    Page 52

          has used the query to filter out the records that you want to
          generate labels for.  If you wanted labels for all the customers,
          then you would simply use the Query/Unselect command to remove
          the filter.

          F. Query/Delete
          ===============

          This command may only be accessed if you have selected a query. 
          PRO-dVelBase will display this query in the work area.  If you
          select the Query/Delete command, the query will be deleted after
          a confirmatory message.

          G. Query/Add to Cat.
          ====================

          When a query is created, it is automatically added to a catalog. 
          This catalog is the file that contains the names of related
          operational files, such as query, report, mail, label, append and
          post, for a selected form.  There is one catalog for each form. 
          All queries that were created under a particular form would be
          listed in the catalog for that form.  This would keep the
          operational files of one form separate from the operational files
          of another form.

          To Add a Query to a Catalog
          ---------------------------

          Proceed as follows:
           1.  Select Query/Add to Cat.  A window will open to display a
               list of all the queries that are present on the current data
               directory.
           2.  Place your cursor over the query you would like to add.
           3.  Press ENTER.  A window will open to allow you to enter a
               file description.
           4.  Enter a brief file description.  PRO-dVelBase will permit
               you to enter up to 40 characters for your file description.
           5.  Press ENTER.

          You have now added your query to the catalog.  If you select
          Query/Select, you will see all the queries that are in the
          catalog.

          H. Query/Remove from Cat.
          =========================

          This command is used to remove a specific query from the catalog. 
          When you remove the query from the catalog, you are not deleting
          it from your hard disk.  Rather, you are simply removing from it
          from the catalog so that it will not be displayed or used.





          


                                                                    Page 53


          To Remove a Query from the catalog
          ----------------------------------

          Proceed as follows:
           1.  Select Query/Remove from Cat.  You will see the prompt, "Are
               you sure? (Y/N)"
           2.  Press Y if you are sure that you want to remove it. 
               Otherwise, press N.  If you pressed Y, you would have
               removed your query from the catalog.













































          


                                                                    Page 54


                                  Chapter 4:  Report
                                  ==================

          A report may be defined as a document produced from all of the
          records or a subset of the records from a selected form.  If a
          query filter is selected, this will limit and will also sort the
          records to be printed.

          There are eight submenu commands under the report menu.  They
          include:  Select, Execute, Create, Modify, Unselect, Delete, Add
          to Cat. and Remove from Cat.

          A. Report/Create
          ================

          This command is used to create a report.

          To create a report:
           1.  Select Report/Create.
           2.  Give this report a unique name.  This name must follow the
               dBASE naming convention as it will be a file name.  If you
               are not familiar with these conventions, refer to Appendix
               A:  dBASE Naming Conventions.

          The Report Definitions screen will now appear.  This screen
          consist of a series of questions regarding the report as a whole.

          Number of columns:
               The first question asked is number of columns.  On a
               standard printer this will generally be 80.  If you have a
               wide carriage printer or if you are printing in condensed
               mode, you may increase the number of columns in the report. 
               The range for the number of columns is between 40 and 255.

               ==> The default is 80.

          Number of rows:
               The next question is number of rows.  For a standard
               printer, this will be 66.  The range for the number of rows
               is between 20 and 100.

               ==> The default is 66.

          Maximum number of records per page:
               You may limit the number of records printed per page of the
               report.  On certain preprinted forms, only a certain number
               of records may be printed per form.  The range for this is
               between 0 and 99.  If 0 is selected, then PRO-dVelBase will
               print out as many records as will fit on the page.

               ==> The default is 0.



          


                                                                    Page 55


          Continuous paper? (Y/N)
               If you will be using continuous paper, answer YES.  If NO,
               you will be prompted to insert a new piece of paper after
               each page is printed.

               ==> The default is YES.

          Print blank records? (Y/N)
               If there are blank records in the database file, should
               these be printed?  Generally you will not want blank records
               printed.

               ==> The default is NO.

          Print deleted records? (Y/N)
               If records have been marked as deleted, should they be
               printed?  Generally you will not want deleted records to be
               printed.

               ==> The default is NO.

          New page after each group? (Y/N)
               PRO-dVelBase is able to sort the database information by
               groupings.  If you would like each grouping to be on a page
               of its own, then answer YES.

               ==> The default is NO.

          Prevent isolated group header? (Y/N)
               Group headers are printed at the beginning of each new
               group.  If you want to prevent a group header from appearing
               by itself without its associated table, then answer YES to
               this question.

               ==> The default is YES.

          Name of Printer File? (A-Z)
               Printer files are created when a printer is defined.  These
               are given the names A to Z.  PRO-dVelBase automatically
               assigns a .PRT extension to them.  Select the appropriate
               printer that you want this report printed under.  Press F9
               to display all the printer files that have already been
               created.

               ==> The default is A.

          Printer Port  (A) LPT1 (B) LPT2 (C) LPT3 (D) COM1 (E) COM2:
               PRO-dVelBase allows printouts to occur through any of 3
               parallel ports or 2 serial ports.  They are numbered as
               LPT1, LPT2, LPT3, COM1, COM2 respectively.  Generally,
               output will be through LPT1 but please check the
               configuration of your computer.  You may also allow
               different reports, labels or letters to be printed through

          


                                                                    Page 56

               different ports.  For example, an invoice report may be
               printed out through a printer connected to LPT1 while a
               label printed out through a printer connected to LPT2.

               ==> The default is (A) LPT1.

          If a serial port (COM1 or COM2) is selected, the next series of
          questions will appear.

          Baud rate (A) 300 (B) 600 (C) 1200 (D) 2400 (E) 4800 (F) 9600:
               This indicates how fast the output through the serial port
               will be.  The selections are 300, 600, 1200, 2400, 4800,
               9600.  Check your printer manual for these rates.

               ==> The default is (F) 9600.

          Parity (A) Odd (B) None (C) Even:

               ==> The default is (B) None.

          Stop bits (1-2): Stop bits may be 2 or 1.

               ==> The default is 1.

          Data bits (7-8): Data bits may be 7 or 8.

               ==> The default is 8.

          After you have answered the report definition questions, you will
          see the report editor.  If you want PRO-dVelBase to bring up the
          questions again, you may press ESC.  This will take you back to
          the report definitions screen.

          Report Editor
          -------------

          The report editor is a full screen editor and operates through
          the "band" method.  There are 4 different types of band:  report
          band, page band, 5 group bands and a table band.  The bands are
          laid out symmetrically so that there are an equal number of bands
          on the top as well as the bottom.  The top group of bands are
          called the header bands.  The bottom group of bands are called
          the footer bands.












          


                                                                    Page 57


          The following table shows how each band works.

          =================================================================
          Contents Within          How it Will be Printed
          -----------------------------------------------------------------
          report header band       printed once only at the beginning of
                                   the report.
          report footer band       printed once only at the end of the
                                   report.
          page header band         printed at the top of each page.
          page footer band         printed at the bottom of each page.
          group header band        printed at the beginning of each group.
          group footer band        printed at the bottom of each group.
          table band               printed in the body of the report
                                   itself.
          =================================================================

          Note:     The contents of each band may be text and/or fields. 
                    Text information is printed exactly as is while fields
                    are printed according to their value at the current
                    record.

          The bands are initially set with one space in the report bands,
          page bands and the table band.  The group bands are closed.

          Bands may be opened or additional spaces inserted by pressing
          ENTER while in the INSERT mode.  The maximum number of spaces
          allowed in the bands is determined by the number of rows defined
          per page.

          Bands may be closed by pressing CTRL-Y while the cursor is in the
          band and removing the lines.

          Field Placement
          ---------------

          There are 3 different kinds of fields that may be placed on
          reports.  They are database, calculated and system fields.  This
          differs from forms, which only have 2 kinds:  database and
          calculated.
           1.  Database fields are fields that come from a database file.
           2.  Calculated fields are virtual fields that are evaluated from
               formulas.
           3.  System fields will print current date, time, record number,
               record count or page.

          The following are steps to place a field:
           1.  Move the cursor to the spot where you would like to place
               that field.
           2.  Press F7, select the kind of field to be placed and answer
               the questions on the Report Field Definitions.  Again, as in
               the form, the types of questions will depend upon what kind
               of field is being placed and how the previous questions were

          


                                                                    Page 58

               answered.

          Filename->Fieldname:
               Select from the list which field to place.  If this field
               has never been defined, the list will appear automatically
               but if it has previously been defined, press F9 to view the
               fields.  This question only appears for the placement of
               database fields.

          Fieldname:
               This question only appears for the placement of calculated
               fields.  Calculated fields must be given a unique fieldname. 
               All calculated fields on a report are given the database
               name "CAL_R".  This allows them to be accessed in formulas
               by other calculated fields.

          Calculation type?
               (S)um (A)verage (H)igh (L)ow (C)ount (F)ormula:  These
               calculation types apply for calculated fields and have
               similar meaning to the corresponding types in forms.  The
               first five types are summary calculated fields.

               Their exact effect depends upon which band they are placed
               in.  Placing a summary field in the table band will only
               summarize the records in the table band if a one-to-many
               relationship is present.  Placing a summary field in any of
               the footer bands will summarize the records for that
               particular group, page or the entire report.  A formula
               calculated field placed in the table band evaluates each
               record separately in a one-to-many relationship.

               Also, calculated fields that reside in any footer band can
               only reference other fields that either reside on the same
               band or in the table band.  They cannot reference any fields
               that reside in any other footer band.  If they do,
               inaccurate values may result.

          Formula:
               Formulas are used for calculated fields and the effects of
               formulas differ depending upon the calculation type.  In
               Sum, Average, High and Low calculated fields, the formula is
               first evaluated for each record then the appropriate summary
               operator is performed.  In Count, the formula must evaluate
               to a logical TRUE or FALSE.  If it evaluates to TRUE then
               the record is included in the count.  In formula calculated
               fields, the evaluated results of the formula are displayed
               directly.

          What is the field type of the calculated field? (C)har (N)umeric
          (D)ate:
               Formula calculated fields can also have a type.  The result
               of the calculation may either be character, numeric or a
               date.


          


                                                                    Page 59

          Is this field printable? (Y/N)
               This question is asked for calculated fields, making it
               possible to hide them from printing.  This produces the same
               effect as hidden calculated fields in forms and they act as
               temporary variables for calculations involving other fields.

               ==> The default is YES.

          What is the length of this field?
               Calculated fields have to be given a length.  This is the
               length that will be printed.  Using calculated fields makes
               it possible to place long database fields on the report by
               decreasing the field length.  This will result in a
               truncation of the field value.

          How many decimal places are there?
               Numeric calculated fields require the number of decimal
               places be set.  The maximum number of decimal places is 14.

          Picture:
               A picture dictates the format for how the data in the field
               should be displayed.  The picture here is similar to the
               picture in forms in that special characters will be placed
               at the appropriate positions.  The only difference is that
               only the character X is used to indicate the position in the
               string.  The reason for this is that a report picture only
               acts as a template and not a mask.  For example, a phone
               number field would have the picture XXX-XXXX.

          Display current (D)ate, (T)ime, Record (N)umber, Record (C)ount
          or (P)age?
               This question is only asked for system fields and their
               meaning is fairly self evident.  The only one that may
               require explanation is current record count.  The record
               count refers to the number of records printed so far.  This
               type of field would be useful to number the records printed.

          Reset count after each group? (Y/N)
               The record count may be reset after each group.  This
               feature is useful if you want each group to be a separate
               block with its own numbering.

               ==> The default is NO.

          Reset page after each group? (Y/N)
               The page count may be reset after each group.

               ==> The default is NO.







          


                                                                    Page 60


          Date format? (A)-MMDDYY (B)-DDMMYY (C)-YYMMDD (D)-MON DD, 19YY
          (E)-MON DD/YY:
               Date fields may be printed in one of five formats.  A
               picture may be used for the first three formats to place in
               the appropriate delimiter such as a slash (/).

               ==> The default is A.

          Time format? (A)-12 hrs. (B)-24 hrs.:
               Time fields may either be printed in 12 hour or 24 hour
               format.  In 12 hour format, an AM or PM is automatically
               placed after the time.

          Display seconds? (Y/N)
               In time fields, the number of seconds may also be displayed.

               ==> The default is NO.

          Place at (C)urrent location or (A)djacent to previous text/field?
               Specify where you want to align your field in relation to
               other text or fields on the same line.  Placing it at the
               current location means that the field will appear on paper
               in exactly the same location as it appears on the screen in
               terms of its horizontal alignment.  Placing it adjacent to
               previous text or field, means that the field will be flushed
               immediately adjacent to any text or field on that line.

               ==> The default is at the current location.

          Justify (R)ight, (L)eft or (C)enter?
               Should the field be right, left or centre justified? 
               Character fields are normally left justified while numeric
               fields are normally right justified.

          Remove trailing blanks? (Y/N)
               If any trailing blanks are present, should they be removed? 
               Generally fields that are not fully filled have spaces added
               to the end to fill them.  If these spaces are not removed,
               they will be printed.

               ==> The default is NO.

          Insert commas? (Y/N)
               Numeric fields may be formatted so that they have commas at
               every third place.  This is useful for monetary values.  For
               example 1000000 would be printed as 1,000,000.

               ==> The default is NO.






          


                                                                    Page 61


          Preceding '$' sign? (Y/N)
               Numeric fields may have a dollar sign before them.  Again
               this would be used for monetary values.

               ==> The default is NO.

          Number of columns in memo: and Number of rows in memo:
               These two questions are asked for memo fields and allow you
               to set the number of columns and rows to be printed in a
               memo field.

          The following table shows the active keys on the report editor.

          =================================================================
          Active Key          Action
          -----------------------------------------------------------------
          ESC                 takes you to the previous screen and allows
                              you to exit this section of the program,
                              without saving.
          ARROW CURSOR KEYS   moves the cursor in the direction of the
                              arrows.
          PAGEDOWN            moves down 20 lines.
          PAGEUP              moves up 20 lines.
          HOME                moves the cursor to the extreme left.
          END                 moves the cursor to the last text or field on
                              the line.
          INSERT              toggles between overwrite and insert mode.
          DELETE              deletes the text or field on the cursor.
          BACKSPACE           deletes the previous text character.
          RETURN or ENTER     inserts a blank line when in insert mode only
                              if the bottom line of the report is empty.
          F1                  context sensitive help.
          F3                  starts and ends blocking of an area.
          F4                  inserts a printer control character (an
                              inverted question mark) that causes the next
                              character to act as a sequence of control
                              characters to the printer depending upon how
                              it was defined in the printer definition
                              file.
          F5                  copies blocked area.
          F6                  moves the blocked area.
          F7                  places and defines a database, calculated or
                              system field.
          F10                 completes and saves the report.
          CTRL-Y              clears text only from the current line.
          =================================================================

          One-to-many Relationships
          -------------------------

          The records in a one-to-many relationship are set up in the same
          way as on a form.  Simply place all the fields for one record on
          the screen, then use F3 to block them.  Move the cursor to the

          


                                                                    Page 62

          second line and press F5 to copy the block as many times as is
          required.  When finished, press F3 again to unblock the fields. 
          Remember that the maximum number of records on the many side of a
          one-to-many relationship allowed by PRO-dVelBase is 20, therefore
          only 20 lines may be copied.

          Group Expressions
          -----------------

          The report can be grouped by entering group expressions into the
          group header band.  This is done by pressing CTRL-G.  A group
          expressions window will open and up to 5 group expressions may be
          used.  The maximum length of an expression is 255.  Pressing
          CTRL-Z will allow longer expressions to be edited in a window but
          generally group expressions only consist of a field name.  Note
          that if group expressions are used, a query must be used and
          sorting must occur by these fields.  Grouping occurs whenever the
          value of the group expression changes.  The expression is
          evaluated for each record and all records that evaluate to the
          same value are grouped together when they are printed on the
          report.  This type of feature may be used, for example, in a
          report that breaks down sales by region or by salesmen.  When
          finished editing the group expressions, press F10 and the
          expressions will be placed in the appropriate group header band.

          Saving the Report
          -----------------

          Once the report is completed, press F10 and give the report a
          descriptive, meaningful file description.  An automatic check of
          the report is also done at this time.  If any errors were
          detected, you will not be able to save the report unless the
          errors are corrected.

          B. Report/Modify
          ================

          Once a report has been created, it may be modified.  Modification
          follows the same rules as creation.  The definitions for each
          field may be changed by placing the cursor over the field and
          pressing F7.  The answers to the questions may then be changed.

          C. Report/Select
          ================

          The process of selection places a previously created report into
          the work area.  If any errors are present in the report, the
          report name will be placed in lower case in the work area and the
          description will state that it is an UNEXECUTABLE and/or
          UNMODIFIABLE report.  If the file name is present in the catalog
          but the file does not actually exist then the message "FILE DOES
          NOT EXIST" will appear.  This type of error may occur if a file
          is deleted from the DOS level instead of using PRO-dVelBase to
          delete it.

          


                                                                    Page 63

          D. Report/Execute
          =================

          Execution of the report allows it to be printed either to a
          printer, the screen or a disk file.  If a query has been selected
          then the query acts as a filter to allow only a certain group of
          records to be printed.  A query will either be done automatically
          if the data files are more recent than the query index file or if
          they are not, you may choose to re-query the database files.  If
          the output is directed to a disk file, a name must be given to
          the output file.  If the report was defined as using
          non-continuous paper, a prompt will be given when the end of page
          is reached and a new one is required.

          Remember, if group expressions are present in the report, an
          appropriate query must be selected that will arrange the database
          in an order that corresponds to the groups.

          E. Report/Unselect
          ==================

          This removes the report from the work area.

          F. Report/Add to Cat.
          =====================

          Any report file with a .RPT extension may be added to the current
          catalog.  Be careful though because a given report may not refer
          to the selected form.

          G. Report/Remove from Cat.
          ==========================

          The report file may also be removed from the catalog so that it
          no longer displays but still exists on the current DOS directory.

          H. Report/Delete
          ================

          Deleting a report removes it from the DOS directory and from the
          catalog.  A confirmatory message will first be given before
          proceeding.













          


                                                                    Page 64


                                   Chapter 5:  Mail
                                   ================

          PRO-dVelBase is capable of performing a mail merge.  The process
          of mail merge means taking a standard letter and merging it with
          the records in the selected form to produce a series of
          personalized letters.  This feature is obviously quite useful in
          many applications such as advertising.  The letter may either be
          created with PRO-dVelBase's internal word processor or an
          external word processor.  If created with an external word
          processor, the file would have to be stored as a generic text
          file and then imported into PRO-dVelBase.  Because of the way
          mail merge is handled, field placement occurs a little different
          than with reports or labels.  Fields must be placed by using
          dBASE expressions and sandwiching them between the ASCII 20
          character.

          There are nine submenu commands under the mail menu.  They
          include:  Select, Execute, Create, Modify, Unselect, Delete, Add
          to Cat., Remove from Cat. and Import Text File.

          A. Mail/Create
          ==============

          To create a letter for mail merge:
           1.  Select Mail/Create.
           2.  Give this file an 8 character name, following dBASE naming
               conventions.
           3.  At the Mail Definitions screen, answer the questions that
               you are prompted with.

          Left/Right/Top/Bottom margin:
               This refers to the margins of the page.  The range that you
               may choose from is 0 to 40.

               ==> The default is set for 10 for left/right and 6 for
               top/bottom.

          Number of rows per page:
               Most letter size paper has 66 rows per page while legal size
               paper has 84.  The range allowed is from 33 to 255.

               ==> The default is 66.

          The following questions have the same meaning as in the report. 
          Please refer to that section for detail explanation of these
          questions.

          Continuous paper? (Y/N)

          Print blank records? (Y/N)

          Print deleted records? (Y/N)

          


                                                                    Page 65

          Name of Printer File? (A-Z)

          Printer Port  (A) LPT1 (B) LPT2 (C) LPT3 (D) COM1 (E) COM2:

          Baud rate  (A) 300 (B) 600 (C) 1200 (D) 2400 (E) 4800 (F) 9600:

          Parity  (A) Odd (B) None (C) Even:

          Stop bits  (1-2):

          Data bits  (7-8):

          The following table shows the active keys in the mail editor.

          =================================================================
          Active Key          Action
          -----------------------------------------------------------------
          ESC                 takes you to the previous screen and allows
                              you to exit this section of the program,
                              without saving.
          ARROW CURSOR KEYS   moves the cursor in the direction of the
                              arrows.
          PAGEDOWN            moves down 20 lines.
          PAGEUP              moves up 20 lines.
          HOME                moves the cursor to the extreme left.
          END                 moves the cursor to the last text on the
                              line.
          INSERT              toggles between overwrite and insert mode.
          DELETE              deletes the character on the cursor.
          BACKSPACE           deletes the previous character.
          F1                  context sensitive help.
          F4                  inserts a printer control character (an
                              inverted question mark) that causes the next
                              character to act as a sequence of control
                              characters to the printer depending upon how
                              it was defined in the printer definition
                              file.
          ALT-F4              inserts an expression character (ASCII 20). 
                              All text sandwiched inbetween two expression
                              characters is handled as a dBASE expression.
          F9                  list fields.
          CTRL-F9             list operators.
          ALT-F9              list functions.
          F10                 completes and saves the letter.
          CTRL-Y              clears the text from current line.
          =================================================================

          The mail editor is a mini word processor with word wrap features. 
          The width of the screen is dependent upon how the left and right
          margins were set.  The maximum size of the letter is limited to
          20,000 characters.  Field placement is different than on the
          report or label editor.  Fields must be placed as dBASE
          expressions sandwiched inbetween two expression characters (ASCII
          20).  The expression character is generated by pressing ALT-F4. 

          


                                                                    Page 66

          It was designed in this way to allow letters to be created on an
          external word processor and imported to PRO-dVelBase.  Formatting
          of the fields is also accomplished through dBASE expressions
          instead of answering a series of questions.  When the letter is
          finished, press F10, give it a descriptive file name and save it. 
          Again, error checking is also performed at this time and the
          letter cannot be saved until the error is corrected.

          B. Mail/Modify
          ==============

          Mail modification follows the same rules as mail creation.

          C. Mail/Select
          ==============

          Mail selection places the letter into the work area for use.  If
          there are any errors in the letter, an error will be reported,
          the file name will be in lower case in the work area and the file
          description will read UNEXECUTABLE and/or UNMODIFIABLE FILE.  If
          the file name is present in the catalog but the file does not
          actually exist then the message "FILE DOES NOT EXIST" will
          appear.  This type of error may occur if a file is deleted from
          the DOS level instead of using PRO-dVelBase to delete it.

          D. Mail/Execute
          ===============

          The selected letter will be printed either to the printer, file
          or screen.  Any formulas present in the letter will be
          automatically evaluated and the appropriate values inserted
          before printing occurs.  If a query is selected, only the
          filtered records will be printed.

          E. Mail/Unselect
          ================

          Unselection removes the mail from the work area.

          F. Mail/Add to Cat.
          ===================

          Any mail file with a .LET extension may be added to the current
          catalog.  Be careful though because a given mail may not refer to
          the selected form.

          G. Mail/Remove from Cat.
          ========================

          The mail file may also be removed from the catalog so that it no
          longer displays but still exists on the current DOS directory.




          


                                                                    Page 67


          H. Mail/Delete
          ==============

          Deleting a mail removes it from the DOS directory and from the
          catalog.  A confirmatory message will first be given before
          proceeding.

          I. Mail/Import Text File
          ========================

          External word processors may be used to create a letter.  Many
          stand alone word processors have much more powerful features than
          the mini word processor in PRO-dVelBase and thus are more suited
          for long letters.  Also, this feature allows previously created
          letters to be used.  In order for PRO-dVelBase to use these
          files, they must be stored as generic text files.  This precludes
          the use of any special formatting codes in the stand alone word
          processor.  Also, the size of the file imported is limited to
          20,000 characters.



































          


                                                                    Page 68


                                  Chapter 6:  Label
                                  =================

          PRO-dVelBase is capable of printing labels.  Labels are
          self-adhesive and can be pasted onto envelopes for mailing.  The
          differences between the report and label generation are as
          follows:

          Label generation is capable of printing multiple copies of each
          record while report generation can only print one copy of each
          record.

          Label generation is capable of printing different records across
          the page while report generation can print only one record across
          the page.

          There are 8 submenu commands under the label menu.  These
          include:  Select, Execute, Create, Modify, Unselect, Delete, Add
          to Cat. and Remove from Cat.

          The selections under the label menu is similar to those under the
          report menu.

          A. Label/Create
          ===============

          Labels are created as follows:
           1.  Select Label/Create.
           2.  Give this file an 8 character name, following dBASE naming
               conventions.
           3.  Answer the questions on the Label Definitions Screen. 
               Pressing F9 will automatically display many common label
               formats and selecting one will fill in the appropriate
               numbers for the questions.

          For dot-matrix printer labels, also set the number of labels
          across and down along with the inter-label spacing.

          For laser printer labels, ensure the printer is printing at 6
          lines per inch.  This is done by defining a printer definition
          file under Options/Printer Setup.  Note that many laser printers
          cannot print on the top and bottom margins therefore the rows per
          page would have to be set at 60 instead of 66.  Be sure that the
          labels used are approved for laser printers.

          Number of copies of each label:
               This refers to the number of copies of the label(s) that you
               would like to produce.  The range that you may choose from
               is 1 to 255.

               ==> The default is set for 1.



          


                                                                    Page 69


          Number of label columns:
               This refers to the number of character spaces across the
               label.  Each character occupies one column.  The range that
               you may choose from is 10 to 78.

               ==> The default is 35, which is for a 3 1/2 inch across
               label.

          Number of label rows:
               This refers to the number of rows there are down the label. 
               The range is 1 to 18.

               ==> The default is 5, which is for a 15/16 inch down label.

          Number of rows per page:
               This refers to the number of rows that exist down the page. 
               The range is 1 to 100.

               ==> The default is 66.

          Number of labels across:
               This refers to how many labels there are going across your
               page.  Some labels are 1 across, meaning they exist in one
               long strip.  The labels would be positioned one above the
               next.  The range is 1 to 10 across, therefore, you may use
               labels that are from 1 to 10 across.

               ==> The default is 1.

          Number of labels down:
               This refers to the number of rows of labels that exist on
               one page.  The range is 1 to 30.

               ==> The default is 11.

          Number of columns between labels:
               This refers to the number of spaces between each label in a
               horizontal direction, going across the page.  Each space
               occupies one column.  The range is 0 to 50.

               ==> The default is 0.

          Number of rows between labels:
               This refers to the number of rows that exist between each
               label in the vertical direction, going down the page.  The
               range is 0 to 50.

               ==> The default is 1.






          


                                                                    Page 70


          Left margin of page:
               This refers to the number of columns, or spaces, from the
               left edge of the paper to the edge of the first label.  The
               range is 0 to 100.

               ==> The default is 0.

          Top margin of page:
               This refers to the number of rows from the top edge of the
               paper to the top edge of the first row of labels.  Some
               printers, including some laser printers, are unable to print
               to the very edge of the paper.  Therefore, to accomodate for
               this, some labels are made so that there is a margin on the
               top and on the bottom.  The range for the top margin is 0 to
               50.

               ==> The default is 0.

          Continuous paper? (Y/N)
               Answering NO to this question will cause PRO-dVelBase to
               prompt you to insert the next page.

               ==> The default is YES.

          Print blank records? (Y/N)
               You may specify if you want blank records printed.  If you
               print the blank records, there will be a blank label where
               your blank record is.  If you do not want to waste a label,
               then you should not print the blank records.

               ==> The default is NO.

          Print deleted records? (Y/N)
               If records have been marked as deleted, should they be
               printed?  Generally you will not want deleted records to be
               printed.

               ==> The default is NO.

          Name of Printer File? (A-Z)
               The following printer questions have the same meaning as in
               a report file.  Please refer to the appropriate section in
               Report/Create for the meaning of these questions.

          Printer Port (A) LPT1 (B) LPT2 (C) LPT3 (D) COM1 (E) COM2:

          Baud rate (A) 300 (B) 600 (C) 1200 (D) 2400 (E) 4800 (F) 9600:

          Parity (A) Odd (B) None (C) Even:

          Stop bits (1-2):

          Data bits (7-8):

          


                                                                    Page 71

          The following table shows the active keys on the label editor.

          =================================================================
          Active Key          Action
          -----------------------------------------------------------------
          ESC                 takes you to the previous screen and allows
                              you to exit this section of the program,
                              without saving.
          ARROW CURSOR KEYS   moves the cursor in the direction of the
                              arrows.
          HOME                moves the cursor to the extreme left.
          END                 moves the cursor to the last text or field on
                              the line.
          INSERT              toggles between overwrite and insert mode.
          DELETE              deletes the text or field on the cursor.
          BACKSPACE           deletes the previous text character.
          ENTER               inserts a blank line when in insert mode,
                              only if the bottom line of the label is
                              empty.
          F1                  context sensitive help.
          F3                  starts and ends blocking of an area.
          F4                  inserts a printer control character (an
                              inverted question mark) that causes the next
                              character to act as a sequence of control
                              characters to the printer depending upon how
                              it was defined in the printer definition
                              file.
          F5                  copies blocked area.
          F6                  moves the blocked area.
          F7                  places and defines a database, calculated or
                              system field.
          F10                 completes and saves the label.
          CTRL-Y              clears the text from a line.
          =================================================================

          After answering the last question, the label editor will be
          brought up and a label will appear with the dimensions specified
          on the previous screen.

          This editor works exactly like the report editor.  Text may be
          placed in it and fields may be placed by pressing F7.  Again you
          may define database, calculated or system fields and the
          questions will be exactly the same as for the report editor.  The
          differences between the label editor and the report editor are:
           1.  The size of the screen is smaller than for the report
               editor.
           2.  No grouping is allowed.
           3.  Memo fields may not be placed.
           4.  Calculated fields will have a database name of "CAL_L"
               instead of "CAL_R".

          The label is saved by pressing F10 and giving it a file
          description.  Again, error checking is performed when F10 is
          pressed.  Please refer to the Report chapter for a more complete

          


                                                                    Page 72

          explanation of the editor.

          B. Label/Modify
          ===============

          Label modification follows the same rules as label creation.

          C. Label/Select
          ===============

          Label selection places the label into the work area for use. 
          Error checking occurs also on selection and if an error occurs
          the name will be put in lower case and a file description of
          UNEXECUTABLE and/or UNMODIFIABLE FILE will be given.  If the file
          name is present in the catalog but the file does not actually
          exist then the message "FILE DOES NOT EXIST" will appear.  This
          type of error may occur if a file is deleted from the DOS level
          instead of using PRO-dVelBase to delete it.

          D. Label/Execute
          ================

          Execution of a label allows the output to be directed to either
          the printer, screen or file.

          E. Label/Unselect
          =================

          Unselection removes the label from the work area.

          F. Label/Add to Cat.
          ====================

          Any label file with a .LAB extension may be added to the current
          catalog.  Be careful though because a given label may not refer
          to the selected form.

          G. Label/Remove from Cat.
          =========================

          The label file may also be removed from the catalog so that it no
          longer displays but still exists on the current DOS directory.

          H. Label/Delete
          ===============

          Deleting a label removes it from the DOS directory and from the
          catalog.  A confirmatory message will first be given before
          proceeding.






          


                                                                    Page 73


                                Chapter 7:  Utilities
                                =====================

          Utilities consists of a group of less used yet still important
          functions.  These include:  Append, Post, Setup, Re-index,
          Database Pack, Clone and Zap.

          A. Append
          =========

          The process of appending consists of copying records from one
          database file to the end of a second database file.  The file
          copied from is called the source database and consists of the
          primary database file of the currently selected form.  The file
          copied to is called the target database.

          One of the main purpose of the append command is to store records
          that are infrequently used.  For example, in an invoicing system,
          records older than one month may be appended from the current
          "working" database file to a "history" database file.  This will
          keep the current working database small and easily manageable and
          also keep records indefinitely if necessary.  Generally, the
          history database file is a cloned copy of the working database to
          ensure the fields of each database file are the same.

          There are eight submenu commands under the append menu.  They
          include:  Select, Execute, Create, Modify, Unselect, Delete, Add
          to Cat. and Remove from Cat.

          Append/Create
          -------------

          To create an append file:
           1.  Select Append/Create.
           2.  Give this file an 8 character name, following dBASE naming
               conventions.
           3.  Answer the questions on the Append Database Definitions
               screen.

          Target Database:
               The target database is the database file being appended to. 
               A pick list will appear with the names of all the database
               files (with extension .DBF) on the current directory.  If no
               other database files are available, an error message will be
               generated.  Select the file you would like to append to.  If
               a target database was previously selected, press F9 to view
               this pick list.

          Do you want to delete transferred records? (Y/N)
               The appended records may be marked for deletion on the
               source database.  Since this command works at the database
               file level, any linked records on the selected form will not
               be deleted.  Only the records in the primary database file

          


                                                                    Page 74

               will be deleted.  You would generally want to delete the
               records in the primary database file and pack them after
               appending to ensure that only one copy of the record exists.

               ==> The default is YES.

          Do you want to update a logical field on the transferred records?
          (Y/N)
               Another way to know which records have been appended from
               the source database is to update a logical field.  For
               example, if a logical field with the name APPENDED existed
               on the source database, all records appended would be
               updated to TRUE on this field.  This method allows a way to
               mark the appended records without deleting them.

               ==> The default is YES.

          Logical Fieldname:
               If the answer was YES to the previous question, a logical
               field must be selected.  If no logical fields exist on the
               source database file, you cannot proceed.  A window will
               open and the field may be selected.  If a logical field was
               previously selected, press F9 to open this window.

          After all these questions have been answered, the append editor
          will appear.  It consists of two windows.  The window on the left
          contains all the fields in the source database while the one on
          the right will contain all the fields on the target database. 
          The process of creating an append file consists of placing fields
          in the target database in which you would like to append records
          to.  The cursor bar is in the target database window.  Moving the
          cursor bar up and down causes the arrow head in the source
          database window to move correspondingly.  Place the arrow head
          over the first field you would like appended from.  Press F9. 
          This will open a window listing all the fields in the target
          database that have the same field type.  Select the field you
          would like appended to.  The field names do not have to match but
          the field types do.  Continue this process until you have
          finished.  If any mistakes were made, move the cursor to the
          appropriate field and press the DELETE key.  When finished press
          F10, give it an appropriate file name description and save it. 
          The created append file has an extension .APP.

          Append/Modify
          -------------

          Append modification follows the same rules as append creation.

          Append/Select
          -------------

          Append selection places the append file into the work area for
          use.  Error checking occurs also on selection and if an error
          occurs the name will be put in lower case and a file description

          


                                                                    Page 75

          of UNEXECUTABLE and/or UNMODIFIABLE FILE will be given.

          Append/Execute
          --------------

          Execution of an append results in records from the source
          database being appended to the target database.  If a query is
          present in the work area, only the records filtered by the query
          will be appended.  You may want to execute the query first to see
          if the appropriate records will be appended.

          Append/Unselect
          ---------------

          Unselection removes the append file from the work area.

          Append/Add to Cat.
          ------------------

          Any append file with a .APP extension may be added to the current
          catalog.  Be careful though because a given append may not refer
          to the selected form.

          Append/Remove from Cat.
          -----------------------

          The append file may also be removed from the catalog so that it
          no longer displays but still exists on the current DOS directory.

          Append/Delete
          -------------

          Deleting an append removes it from the DOS directory and from the
          catalog.  A confirmatory message will first be given before
          proceeding.

          B. Post
          =======

          Posting is very similar to appending in that two database files
          are involved:  a source database and a target database file.  The
          difference lies in the fact that posting does not add new records
          to the target database; the records are only updated.  Posting
          requires a key field on the target database to be indexed.  When
          posting occurs, the records to be posted from the source database
          will update the corresponding records on the target database if a
          match is found on the key field.  The type of update depends upon
          the field type.  A numeric field type may be added, subtracted or
          replaced.  A non-numeric field type may only be replaced.

          A typical example of posting occurs in an invoicing system.  If
          you have two database files with one containing the sales made
          and the other containing the current inventory.  The two
          databases have a common key field called ITEM_NUM, which

          


                                                                    Page 76

          represents the item number.  This field must be indexed in the
          inventory database file.  The invoice database will contain all
          the sales made during the day.  Posting will then allow the
          number sold of each item number in the invoice database to be
          subtracted from the number in stock field in the inventory
          database.  This procedure will ensure that the number in stock is
          a correct count.

          There are eight submenu commands under the post menu.  These
          include:  Select, Execute, Create, Modify, Unselect, Delete, Add
          to Cat. and Remove from Cat.

          Post/Create
          -----------

          To create a post file:
           1.  Select Post/Create.
           2.  Give this file an 8 character name, following dBASE naming
               conventions.
           3.  Answer the questions on the Post Database Definitions
               screen.

          Target Database:
               The target database is the database file being posted to.  A
               window will appear with the names of all the database files
               (with extension .DBF) on the current directory.  Select the
               file you would like to post to.  If a target database was
               previously selected, press F9 to open this window.

          Do you want to delete transferred records? (Y/N)
               The posted records may be marked for deletion on the source
               database file.  Since this command works at the database
               file level, any linked records on the selected form will not
               be deleted.  Only the records in the primary database file
               will be deleted.

               ==> The default is YES.

          Do you want to update a logical field on the transferred records?
          (Y/N)
               Another way to know which records have been posted from the
               source database is to update a logical field.  For example,
               if a logical field with the name POSTED existed on the
               source database, all records posted would be updated to TRUE
               on this field.  This method allows a way to mark the posted
               records without deleting them.  This is generally the
               preferable way to mark a record as being already posted
               because a query may be set up so that all records that have
               the POSTED field as TRUE will not be re-posted.

               ==> The default is YES.




          


                                                                    Page 77


          Logical Fieldname:
               If the answer was YES to the previous question, a logical
               field must be selected.  If no logical fields exist on the
               source database file, you cannot proceed.  A window will
               open and the field may be selected.  If a logical field was
               previously selected, press F9 to open this window.

          After all these questions have been answered, the post editor
          will appear.  It consists of three windows.  The window on the
          left contains all the fields in the source database, the window
          in the middle contains the operation to be performed and the one
          on the right will contain all the fields on the target database. 
          The process of creating a post file consists of placing fields in
          the target database in which you would like to post records to
          and giving the appropriate operations to them.  The cursor bar is
          initially in the middle operation window and the default
          operation is NONE.  The NONE operation means that nothing will be
          done to the target field if the record is posted.  Moving the
          cursor bar up and down causes the arrow head in the other two
          windows to move correspondingly.  Initially define the key field. 
          Move the cursor over to the key and press K.  Press the right
          arrow and move the cursor to the target database window.  Press
          F9 to view the indexed fields in the target database.  Select the
          appropriate one.  The entire process of creating a post file
          consists of placing fields to be posted to in the target database
          window and setting the appropriate operation in the middle
          operation window.  The keys used to set the appropriate operation
          are K for Key, N for None, R for Replace, A for Add and S for
          Subtract.  When the cursor is in the target database window, F9
          will list the fields that have the same field type as the
          corresponding field in the source database window.  To delete a
          particular field, press the DELETE key.  When finished press F10,
          give it an appropriate file name description and save it.  A post
          file is saved with extension .PST.

          Post/Modify
          -----------

          Post modification follows the same rules as post creation.

          Post/Select
          -----------

          Post selection places the post file into the work area for use. 
          Error checking occurs also on selection and if an error occurs
          the name will be put in lower case and a file description of
          UNEXECUTABLE and/or UNMODIFIABLE FILE will be given.

          Post/Execute
          ------------

          Execution of a post results in records from the source database
          being posted to the target database.  If a query is present in

          


                                                                    Page 78

          the work area, only the records filtered by the query will be
          posted.  You may want to execute the query first to see if the
          appropriate records will be posted.

          Post/Unselect
          -------------

          Unselection removes the post file from the work area.

          Post/Add to Cat.
          ----------------

          Any post file with a .PST extension may be added to the current
          catalog.  Be careful though because a given post may not refer to
          the selected form.

          Post/Remove from Cat.
          ---------------------

          The post file may also be removed from the catalog so that it no
          longer displays but still exists on the current DOS directory.

          Post/Delete
          -----------

          Deleting a post removes it from the DOS directory and from the
          catalog.  A confirmatory message will first be given before
          proceeding.

          C. Setup
          ========

          Setup takes a pre-existing database file with extension .DBF and
          creates a field definition file (.FLD), screen definition file
          (.SCN) and a catalog file (.CAT).  These are the three additional
          files necessary to define a form.  This set is necessary before
          any database files created by dBASE may be used by PRO-dVelBase.

          When Setup is selected, a directory of all files with .DBF
          extension is listed.  The appropriate file may then be selected. 
          A warning will be given if the file already has an associated
          .FLD file.  This is because Setup will delete the previous .FLD
          file.

          A form will then be created with all the fields listed vertically
          and their field names as labels for the field.  Follow the
          instructions under Form/Create and Form/Modify to modify this
          form.

          When finished press F10, give the form a optional file
          description and save it.  The form is now ready to use by
          PRO-dVelBase.



          


                                                                    Page 79


          D. Re-index
          ===========

          This command rebuilds the index files associated with the primary
          database file of a form along with all the linked database files
          if desired.  Generally, PRO-dVelBase automatically handles
          updating of the index when new records are added or when
          pre-existing records are modified.  Sometimes the index files may
          get corrupted.  Symptoms of a corrupted index file include
          inaccurate sorts on indexed table view and inability to access
          linked records through a key field.  The Re-index command will
          fix this problem.

          E. Database Pack
          ================

          Packing is a command that physically removes the records that
          have been marked for deletion from the database file.  It is
          generally recommended to backup the files first before packing in
          case you change your mind about the pack.  Related files may also
          be packed at the same time and PRO-dVelBase will prompt you if
          there are any related files.

          F. Clone
          ========

          Cloning is a command that allows the structure of the primary
          database file to be reproduced.  The currently selected form is
          used for cloning.  A name must be given for the new form along
          with an optional file description.  Each field of the primary
          database file will be reproduced along with its fixed field
          definitions.  Changeable field definitions, formulas, error
          formulas, error messages, help messages, calculated fields and
          scroll windows are dropped along with any relationship
          definitions and indexes.  The new form also does not have any
          data in it.

          One of the purposes of cloning is to produce a database file that
          can act as a target database for the append command.  This allows
          records to be saved in a "history" database file and deleted from
          the current "working" database file to keep it small.

          G. Zap
          ======

          Zapping a database file along with Form/Delete are potentially
          the most dangerous commands in PRO-dVelBase.  Zapping completely
          removes all the records in the primary database file of the
          selected form in one swoop.  A warning message will be given
          before being allowed to proceed.




          


                                                                    Page 80


                                 Chapter 8:  Options
                                 ===================

          Options consists of a group of functions that affect where and
          how PRO-dVelBase will operate.  They include:  Change Dir,
          Recalc, Flush, Printer Setup, Save Options and Quit.

          A. Change Dir
          =============

          It is generally recommended that a particular application be
          stored on a separate subdirectory rather than on the same one
          that PRO-dVelBase resides on.  The data directory may be changed
          using this option.  The naming convention follows standard DOS
          convention.  Drives may also be changed by using the commands A:\
          for A drive, B:\ for B drive, etc.

          B. Recalc
          =========

          The recalc command toggles automatic recalc ON and OFF.  With the
          recalc ON, all calculated and derived fields will be
          automatically recalculated each time a field is updated in the
          form.  With it OFF, recalculations only occur when a record is
          saved.  In both cases manual recalc with CTRL-C always works. 
          The default is ON.  It may be turned off if PRO-dVelBase is
          running on a slower machine and many calculated or derived fields
          have been defined.

          C. Flush
          ========

          The flush command causes all DOS buffers to be immediately
          flushed once a write occurs.  Normally writes to a disk are
          stored in a DOS buffer and only when the buffers are full does a
          disk write occur.  This situation is dangerous if you experience
          a power failure before the buffers are flushed.  The default for
          flush is ON and this guarantees that a write will write that data
          immediately to the disk.  You may elect to turn off the flush if
          you are using a floppy disk system as flushing does slow the
          saving of each record.

          D. Printer Setup
          ================

          Printer Setup allows printer definition files (drivers) to be
          defined.  These files have the extension .PRT and store the
          control codes for various print styles for your particular
          printer.  This is an important preliminary step in installing
          PRO-dVelBase.  Up to 26 different printer definition files may be
          created with the names A.PRT to Z.PRT.  Define as many printer
          definition files as you have printers connected to your computer. 
          The control codes stored in these files are used by report, label

          


                                                                    Page 81

          and mail.

          Printer Setup/Create
          --------------------

          Selecting this command will take you to the printer definition
          screen.  First a Printer File Name has to be assigned.  The name
          must be a letter from A to Z.  PRO-dVelBase defaults to the next
          available letter.  Next, the name of the printer must be entered. 
          Editing of the fields occurs by pressing E or ENTER.  The control
          codes for each of the given printer effects must then be entered
          in decimal form with a space between each code.  Most printers
          that require multiple numeric control codes start with the escape
          code (ASCII 27).  If a certain effect does not exist, you may
          leave the codes out.  Please refer to your own printer manual for
          the correct codes.

          Initialization codes refer to the codes that must be sent to the
          printer to clear and reset the printer.  PRO-dVelBase
          automatically sends these out before a report, label or mail is
          printed.

          Termination codes are the codes that are sent to the printer
          indicating the print job is finished.  These are automatically
          sent out when a report, label or mail is finished printing.

          Enter the control codes for each of the effects listed. 
          Generally an effect has a turn on code and a turn off code.  If a
          printer has a special effect, such as superscript, subscript,
          etc., the codes may be entered at this point and the name of the
          effect also saved.

          The printer control codes may also automatically be filled in by
          pressing F9 and selecting your printer.  Many printers have
          control codes that are the same as the printers listed.  Epson
          control codes are commonly used by many printers and selecting an
          Epson printer is usually a safe bet if your printer is Epson
          compatible.  Many laser printers are compatible with the H.P. 
          LaserJet therefore selecting one of the LaserJet options may
          work.

          The codes are sent to the printer when the inverted question mark
          (ASCII 168) is encountered in a report, label or mail.  The
          screen code defines which printer control codes will be sent out
          to the printer.  Note that an upper case letter will turn on the
          effect and a lower case letter will turn off the effect.

          When finished, press F10 to save the printer definition file.

          Printer Setup/Modify
          --------------------

          A previous defined printer definition file may be selected from
          the directory and modified.

          


                                                                    Page 82

          Printer Setup/Delete
          --------------------

          A previous defined printer definition file may be deleted.

          E. Save WorkArea
          ================

          This command saves:
           1.  The contents of the work area.
           2.  The status of the recalc, flush and insert.
           3.  The current data directory.

          This information is stored in the file PRO.OPT and the next time
          PRO-dVelBase is executed, the saved options are automatically
          loaded.

          F. Quit
          =======

          This commands exits from PRO-dVelBase and automatically closes
          any open files.

































          


                                                                    Page 83


                      Appendix A:  dBASE (TM) Naming Conventions
                      ==========================================

           1.  PRO-dVelBase uses dBASE naming convention for all file
               names.

           2.  A database file name may contain up to 8 characters. 
               Therefore, PRO-dVelBase will not even permit you to enter
               file names having more than 8 characters.

           3.  The first character of a database file name must be a letter
               of the alphabet.

           4.  Except for the first character, the rest of the characters
               may be letters, numeric digits, or the underscore(_).

           5.  Database file names may not contain spaces or symbols other
               than the underscore.  The reasons for this is that DOS uses
               the period (.), the slash (/), the colon (:) and the
               semicolon (;) for special functions.  Therefore, these
               symbols should not be used in file names.  As a precaution,
               PRO-dVelBase will prevent you from making these errors.

               Note:     All file names will be forced to upper case
                         regardless of what case you use to enter them.

           6.  There are also a few names that are reserved by PRO-dVelBase
               for internal usage.  These names are CAL_F, CAL_R AND CAL_L. 
               They are used for calculated fields therefore cannot be used
               as file names.

           7.  Field names follow the same convention except they may be up
               to 10 characters long.

           8.  All file and field names used by PRO-dVelBase must follow
               these conventions.


















          


                                                                    Page 84


                         Appendix B:  Formulas and Functions
                         ===================================

          PRO-dVelBase allows you to perform mathematical operations as
          well as complex queries.  This chapter will help you to
          understand the basis for these procedures.  It will help you in
          writing formulas and conditions using operators and functions.

          A. Formulas
          ===========

          A PRO-dVelBase formula is equivalent to a dBASE expression and
          consists of a string that contains a sequence of operators,
          functions, field names and constants.  All expressions evaluate
          to a specific type, such as numeric, character, date or logical. 
          Therefore, field names and constants used in an expression must
          be of the same type or convert to the same type.  For example,
          you may add a numeric field only to a numeric field.  To further
          clarify this point, the condition to query a surname field must
          contain a formula that returns a character type.  A formula that
          returns a numeric type is not acceptable.  The only exception to
          this rule is that a whole number may be added to or subtracted
          from a date type resulting in another date type.

          PRO-dVelBase has two additional types not found in dBASE:  single
          key and time.  These two types are considered equivalent to
          character fields.

          Also memo fields cannot be used by formulas and formulas cannot
          evaluate to a "memo type".

          B. Constants
          ============

          Constants have a fixed value and do not change.  There are 4
          types of constants that may be used in expressions.  They are the
          numeric, character, date or logical constants.

          Numeric Constants
          -----------------

          The numeric constant represents a number.  Some examples are: 
          -7, 8.5 and 20.

          Character Constants
          -------------------

          Character constants are letters enclosed within a set of quotes. 
          They may be enclosed within double or single quotes.  However,
          the set of quotes used must have its matching counterpart at the
          beginning and at the end.  For example, "Mary Brown" or 'Mary
          Brown' would be legitimate.  Also, if you need to use a set of
          quotes within a set of quotes, you would distinguish them by

          


                                                                    Page 85

          using one type of quotes inside another type of quotes.  For
          example, "Mary Brown's" or '"Please"' are legitimate character
          constants.

          Logical Constants
          -----------------

          Logical constants are the values in a logical field.  For
          example, .TRUE., .FALSE., .T., .F.  would be legitimate logical
          constants.  Note that the periods must be included as part of the
          constant.

          Date Constants
          --------------

          Date constants cannot be represented by themselves.  A date
          constant can only be represented by using the function CTOD to
          convert a character constant in the form "CCYYMMDD" to a date. 
          For example the date July 4, 1990 is represented by the function
          CTOD("19900704").

          C. Operators
          ============

          Operators are the symbols that manipulate elements of formulas. 
          These symbols may represent numeric, string, relational and
          logical operations.  For example, the + (plus) sign is a  numeric
          operator in the expression:  72 + 24.

          The order of precedence refers to the priority of an operator
          when evaluating a formula that contains more than one operator. 
          The operator with the higher priority will be evaluated first. 
          For example, in the expression 4 + 8/2, the divide operator has a
          higher priority than the plus operator.  Thus, 4 + 8/2 = 8.

          All formulas are evaluated from left to right.  Subformulas that
          are enclosed in () brackets will be evaluated first, with
          operators being evaluated by their order of precedence.

















          


                                                                    Page 86


          The four basic types of operators are numeric, string,
          relational, and logical operators.  Their order of precedence is
          shown on the following table.

          =================================================================
          Type           Operator Name       Symbol or Name      Order of
                                                                 Precedence
          -----------------------------------------------------------------
          Numeric        Sign (positive or
                         negative) of a
                         numeric expression       Unary +,-           7
                         Exponentiation           ** or ^             7
                         Multiply                      *              6
                         Divide                        /              6
                         Add                           +              5
                         Subtract                      -              5
          String         Concatenate I                 +              5
                         Concatenate II                -              5
          Relational     Equal to                      =              4
                         Not Equal to             <> or #             4
                         Less Than                     <              4
                         Greater Than                  >              4
                         Less Than or Equal To         <=             4
                         Greater Than or Equal To      >=             4
                         Substring Comparison          $              4
          Logical        And                      .AND.               3
                         Or                       .OR.                2
                         Not                      .NOT.               1
          =================================================================

























          


                                                                    Page 87


          The following table shows some examples of operators.

          =================================================================
          Operator Type       Action                   Example
          -----------------------------------------------------------------
          Numeric             operates on 
                              numeric values           4 + 4 returns 8
          String
           Concatenate I      connects two 
                              character values 
                              end to end, retaining 
                              all spaces in each 
                              value.                   "Mary " + "Brown"
                                                       becomes "Mary Brown"
           Concatenate II     connects two character 
                              values into one, moving 
                              all spaces at the end of 
                              the first character value 
                              to the end of the 
                              combined value.          "Mary " - "Brown"
                                                       becomes "MaryBrown "
          Relational          used to return a logical 
                              (TRUE or FALSE) result.  
                              These operators operate on 
                              numeric, character or date 
                              values.  However, both 
                              values being compared must 
                              be of the same type.  
                              These operators are 
                              primarily used in data 
                              search routines.         9>20 returns FALSE
                              The Substring Comparison 
                              operator operates on two 
                              character values. It is 
                              used in logical conditions. 
                              It returns a TRUE value if 
                              the first value is equal 
                              to, or found within the 
                              second value.            "Mary" $ "Mary
                                                       Brown" returns TRUE
          Logical             will return a logical 
                              result and ties two logical 
                              values together. Primarily 
                              used in data search 
                              routines.                1=1 .AND. 2=2
                                                       returns TRUE
          =================================================================







          


                                                                    Page 88


          D. Functions
          ============

          Functions may be recognized easily because they always have a
          function name and are followed by a left and right bracket. 
          There may also be specific values or parameters enclosed within
          the left and right brackets.  These are called arguments of the
          function.  The arguments must be of a specific type, such as a
          character, numeric or date type.

          You will note that some functions do not have arguments in their
          brackets.  However, to differentiate a function from a field
          name, functions that have no arguments will have a set of empty
          brackets following their function name.

          The following is a list of the functions that PRO-dVelBase will
          permit you to use.  The function names may be either upper or
          lower case.

          ABS(Num_Value)
          --------------
          Returns the absolute value of a numeric value.

               e.g.  ABS(-30) returns 30

          ASC(Char_Value)
          ---------------
          Returns the ASCII value of the leftmost character of a character
          value.
               e.g. ASC("Jones") returns 74

          AT(Char_Value1, Char_Value2)
          ----------------------------

          Returns the starting position, as a numeric value, of the first
          character value within the second character value.
               e.g. AT("XYZ","ABCXYZ") returns 4

          CDOW(Date_Value)
          ----------------
          Returns the name of the day of week as a character string from
          the given date.
               e.g. CDOW(DATE()) If the date is Monday, December 3, the
                    function returns "Monday".

          CHR(Num_Value)
          --------------
          Converts a numeric value to its corresponding ASCII character
          value.
               e.g. CHR(80) returns "P"




          


                                                                    Page 89


          CMONTH(Date_Value)
          ------------------
          Returns the name of the month as a character value from the given
          date.
               e.g.  CMONTH(DATE()) returns "January" if today is January
                    10, 1990

          CTOD(Char_Value)
          ----------------
          Character to Date.  Converts a character value to a date value. 
          The character value would be in the format "CCYYMMDD".
               e.g. CTOD("19901203")

          DATE()
          ------
          Returns the system date in the format CCYYMMDD.

          DAY(Date_Value)
          ---------------
          Returns the numeric value of the day from the given date.
               e.g.  DAY(DATE()) returns 10 if today is January 10, 1990

          DBF()
          -----
          Returns the name of the current database file that you are using.
               e.g.  DBF() returns "CUSTOMER.DBF" if you have selected and
                    are currently using the customer database.

          DEL()
          -----
          Returns a "*" to indicate that the current record is marked for
          deletion.  Returns " " if the current record is not marked for
          deletion.

          DELETED()
          ---------
          Returns TRUE to indicate that the current record is marked for
          deletion otherwise it returns FALSE.

          DOW(Date_Value)
          ---------------
          Returns the day of week as a numeric from the given date.  Sunday
          is considered day 0.
               e.g. DOW(DATE()) If the date is Monday, December 3, the
                    function returns 1.

          DTOC(Date_Value) and DTOS(Date_Value)
          -------------------------------------
          Date to Character and Date to String.  Converts a date value to a
          character value.  The resulting character value will have the
          format "CCYYMMDD".
               e.g. DTOC(DATE()) If the date was December 3, 1990 the
                    resulting character value would be "19901203".

          


                                                                    Page 90

          EXP(Num_Value)
          --------------
          Exponential value.  Returns the exponential value of the numeric
          value.
               e.g. EXP(1) returns 2.71828183

          FIELD(Num_Value)
          ----------------
          Returns the fieldname of the field whose position, in the
          database structure, corresponds to the position of the given
          numeric value.
               e.g. Field(3)  If PHONE_NO is the third field defined in a
                    file called CUSTOMER.DBF, then this returns "PHONE_NO".

          IIF(Condition, Expression1, Expression2)
          ----------------------------------------
          Immediate-if function.  Returns Expression1 if and only if the
          condition evaluates TRUE; otherwise, it returns Expression2.
               e.g.  IIF(cost>1000,"high cost","low cost")
                         Returns "high cost" if and only if cost is greater
                         than 1000; otherwise, it returns "low cost."

          INT(Num_Value)
          --------------
          Converts the given numeric value to an integer.
               e.g. INT(4.1797) returns 4

          ISALPHA(Char_Value)
          -------------------
          Returns the logical value, TRUE, if the Char_Value begins with an
          alpha character.  Otherwise, the logical value, FALSE, is
          returned.
               e.g. ISALPHA("123-xyz") returns FALSE

          ISLOWER(Char_Value)
          -------------------
          Returns the logical value, TRUE, if the leftmost character is in
          lower case.  Otherwise, the logical value, FALSE, is returned.
               e.g. ISLOWER("aBcD") returns TRUE
                    ISLOWER("ABC") returns FALSE

          ISUPPER(Char_Value)
          -------------------
          Returns the logical value, TRUE, if the leftmost character is in
          upper case.  Otherwise, the logical value, FALSE, is returned.
               e.g. ISUPPER("abc") returns FALSE
                    ISUPPER("ABC") returns TRUE

          LEFT(Char_Value, Number of characters from left)
          ------------------------------------------------
          Returns the given character value, showing only the specified
          number of characters from the left.
               e.g. LEFT("Mary Smith",4) returns "Mary"


          


                                                                    Page 91

          LEN(Char_Value)
          ---------------
          Returns the length of the character value.
               e.g. LEN("Mary Smith") returns 10

          LOG(Num_Value)
          --------------
          Returns the natural logarithm of the numeric value.
               e.g. LOG(2.71828183) returns 1

          LOWER(Char_Value)
          -----------------
          Converts all upper case alpha characters to lower case.
               e.g. LOWER("Mary Smith") returns "mary smith"

          LTRIM(Char_Value)
          -----------------
          Trims leading blanks from the character value.
               e.g. LTRIM("   Hello") returns "Hello"

          MAX(Num_Value1, Num_Value2)
          ---------------------------
          Returns the larger of the two numeric values that are compared.
               e.g. MAX(4.97, 5.97) returns 5.97

          MIN(Num_Value1, Num_Value2)
          ---------------------------
          Returns the smaller of the two numeric values that are compared.
               e.g. MIN(4.97, 5.97) returns 4.97

          MOD(Num_Value1, Num_Value2)
          ---------------------------
          Returns the integer remainder that is left when you divide
          Num_Value1 by Num_Value2.
               e.g. MOD(16,4) returns 0
                    MOD(15,4) returns 3

          MONTH(Date_Value)
          -----------------
          Returns the numeric value of the month from the given date. 
          January is considered month 1.
               e.g. MONTH(DATE()) returns 1 if today is January 10, 1990

          RECCOUNT()
          ----------
          Record count function.  Counts the total number of records in the
          database and returns the number count.
               e.g. RECCOUNT() will return 8000 if there are 8000 records
                    in the database.

          RECNO()
          -------
          Record number function.  Reads the record number of the current
          record and returns that record number.

          


                                                                    Page 92

          RIGHT(Char_Value, Number of characters from right)
          --------------------------------------------------
          Returns the given character value, showing only the specified
          number of characters from the right.
               e.g. RIGHT("Mary Smith",5) returns "Smith"

          ROUND(Num_Value1, Num_Value2)
          -----------------------------
          Rounds off Num_Value1 so that it will show the number of decimal
          places as specified by Num_Value2.
               e.g. ROUND(4.797970, 3) returns 4.798

          RTRIM(Char_Value)
          -----------------
          Trims trailing blanks from the character value.
               e.g. RTRIM("Smith   ") returns "Smith"

          SPACE(Num_Value)
          ----------------
          Adds the number of spaces as specified by the numeric value.
               e.g. FIRST_NAME + SPACE(1) + LAST_NAME  If the first name
                    was Mary and the last name was Smith, this returns
                    "Mary Smith".

          SQRT(Num_Value)
          ---------------
          Returns the square root of the numeric value.
               e.g. SQRT(9) returns 3.

          STR(Num_Value, Length, Decimals)
          --------------------------------
          String function.  Converts a numeric value into a character value
          and displays it according to the specified length and decimal
          place stated in the function.  The length indicates the number of
          characters allowed, including the decimal and unary +/-.  The
          decimals indicate the number of decimal places allowed.  If the
          resulting string contains more characters than the length of
          characters permitted, then *'s will be returned.
               e.g. STR(4.16345,5,3) returns "4.163".

          SUBSTR(Char_Value, Starting Position, Number of Characters)
          -----------------------------------------------------------
          The substring function returns a portion of the given character
          value.  The character value will start at the Starting Position
          and be the length specified by the Number of Characters.
               e.g. SUBSTR("XYZ",2,1) returns "Y"
                    SUBSTR("Mary Brown",7,3) returns "row"

          TIME()
          ------
          Time function.  Returns the system time as a character value in
          the format HHMMSS.
               e.g. TIME() returns "090000" if it is 9:00 a.m.


          


                                                                    Page 93

          UPPER(Char_Value)
          -----------------
          Converts a character string to upper case.

          VAL(Char_Value)
          ---------------
          Converts a character value to a numeric value.
               e.g. VAL("-7") returns -7
                    VAL("18") returns 18

          YEAR(Date_Value)
          ----------------
          Returns the numeric value of the year from the given date.
               e.g. YEAR(DATE()) returns 1990 if today is January 10, 1990









































          


                                                                    Page 94


                       Appendix C:  Warning and Error Messages
                       =======================================

          Warning messages indicate something adverse may happen if you
          proceed.  It is possible to proceed as long as you are aware of
          the consequences.

          Error messages will not allow you to proceed unless the error is
          corrected.

          A. Warning Messages
          ===================

          Error Formula Evaluates to False.  Save Anyways?
               An error formula on the form evaluates to FALSE.  The record
               may be saved anyways or else the field value re-entered.

          Field Definition File Already Exists.  Continue Setup?
               A setup was attempted on a .DBF file that has an associated
               .FLD file.  The previous .FLD file will be deleted if the
               Utilities/Setup operation is done.

          Foreign Key Field of Different Length.  Relate Anyways?
               The common key fields between a parent and child database
               files should be of the same length.  If they are not of the
               same length, errors may occur in linking the two databases. 
               Try to change the field length of the key in either the
               parent or child so they match.  

          Possible Circular Reference.  Save Anyways?
               A circular reference is when a formula refers to another
               field with a formula that ultimately refers back to the
               original formula.  Saving a circular reference will
               generally cause errors but there may be some cases where a
               circular reference would be the best way to define the form. 
               It is recommended to try the form out with a few records
               first to see if the calculations evaluate correctly.

          Record(s) Changed.  Save?
               The current record(s) has been changed.  The changes may be
               saved or discarded.

          Required Field Not Filled.  Save Anyways?
               A form has a required field that was not filled.  The record
               may be saved or the required field have a field value
               entered.

          Warning.  Destination Will Be Overwritten.  Proceed?
               An attempt was made to copy or move a block to a target with
               text or field present.  The target text or fields will be
               overwritten.



          


                                                                    Page 95


          WARNING!  Data Files Will Be Deleted.  Continue?
               Deleting the form will delete the primary database file.  A
               lot of data may be lost therefore be careful when you choose
               this option.

          WARNING!  File Exists.  Replace?
               The output file name already exists on the current
               directory.  This will overwrite the previous file.

          WARNING!  This Will Remove All Records.  Continue?
               The zap function will remove all records from the primary
               database file.  A lot of data may be lost therefore be
               careful when you choose this option.

          B. Error Messages
          =================

          The following is a list of PRO-dVelBase error messages.

          Catalog File Not Found.
               The associated catalog file with .CAT extension could not be
               found for the selected form.  It may have been deleted from
               the DOS level.  The catalog file may be re-created by
               modifying the selected form and saving it again.

          Database File is Missing a Field.
               One of the field description files (.FLD extension) has an
               extra field not found in its corresponding database file
               (.DBF extension).  This is generally remedied by running the
               Utilities/Setup function on the offending database file and
               re-creating the field description files and screen
               description files (.SCN extension).

          Database Not Located While Evaluating Formula.
               The database file specified in the formula was not located.

          Duplicate Key Value Not Allowed.
               The entered field value is already present in another record
               within the database file.  This error message will only
               occur if the current field is indexed and the "Prevent
               Duplicate Entries" question is answered YES.

          Error Building Index.
               This error indicates that there was either insufficient
               memory or there were too many records in the database to
               index.

          Error Closing Index.
               This error indicates that an index file could not be closed. 
               Try reindexing the form.




          


                                                                    Page 96


          Error in Printer Code String.
               The string of printer codes entered has one or more wrong
               codes.

          Executing Null Formula.
               Execution of a null formula was attempted.

          Expecting ',' or '(' While Evaluating Formula.
               The formula is probably missing a comma or a left bracket.

          Extra Field(s) in Selected File.
               The currently selected object has extra field(s) not found
               in the selected form.  This may be corrected by modifying
               the object and deleting the extra fields.

          Field Not Found in Underlying Form.
               The cause of this error depends upon where it was generated. 
               If in the form, it generally indicates a field that has been
               deleted in a related form.  If in one of the other objects,
               then it indicates the field has been deleted from the
               currently selected form.  This error may be corrected by
               deleting the offending field.

          Field Length Mismatch or Field Type Mismatch.
               A discrepancy exists between the field length or type
               described in one file compared with the field length or type
               described in a second file.  In the form selection, this may
               occur when one of the fields in the field description file
               (.FLD extension) has a length or type that does not match
               the length or type in the corresponding database file (.DBF
               extension).  This is generally remedied by running the
               Utilities/Setup function on the offending database file and
               re-creating the field description files and screen
               description files (.SCN extension).  If this error occurs in
               other objects, the object should be modified, and the
               offending field corrected or deleted.  Generally this error
               occurs when a field length or type has been altered and
               there are related files that also reference the altered
               field.

          Field of Given Type Not Present.
               This error occurs in the process of creating an append or
               post file.  It indicates that no fields of the appropriate
               field type are present.

          Fieldname Already Used.
               Each field in a database file must have a unique name.

          File Closing Error.
               Unable to close a file.  Generally indicates a corrupted
               file or a disk failure.



          


                                                                    Page 97


          File Creation Error.
               This error may be caused by a full directory or a disk
               failure.

          File Does Not Exist.
               The selected file does not exist on the current directory. 
               This may occur if the file has been deleted from the DOS
               level but its name is still in the catalog.  The file name
               has to be removed from the catalog and the file re-created.

          File Name Already Used.
               The given file name already exists and a different one must
               be used.

          File Name is a Reserved Word.
               An attempt was made to use a reserved word as a file name. 
               The words "CAL_F", "CAL_R" and "CAL_L" are reserved by
               PRO-dVelBase for internal use to represent calculated
               fields.

          File Not Found.
               The requested file was not found on the current directory.

          File Opening Error.
               The requested file does not exist and may have been deleted
               at the DOS level.  Another possible cause is an insufficient
               number of file handles.  Try increasing the number of opened
               files allowed by using the command "FILES=60" in the
               CONFIG.SYS file and restarting the computer.

          File Reading Error.
               A read error could be caused by a disk failure.

          File Writing Error.
               A write error will occur when the disk is full.

          Formula is Not Complete.
               The formula could not be evaluated because it is incomplete.

          Help File Not Found.
               The PRO.HLP file could not be found.

          Illegal Date in Formula.
               An illegal date was encountered when evaluating a date
               value.

          Incompatible File Type.
               An attempt was made to open a non-PRO-dVelBase file.  The
               offending file must be deleted and re-created.

          Index File is Missing a Key.
               The index file key of a database record does not exist.


          


                                                                    Page 98

          Insufficient Memory.
               This is a fatal error and immediately exits to DOS after it
               is encountered.  Either the amount of RAM has to be
               increased, any TSR programs unloaded or the form has to be
               simplified and some of the relationships removed.

          Insufficient Space for Field Placement.
               There is insufficient space at the current position of the
               form to place a field of the defined length.

          INTERNAL ERROR NUMBER:
               This indicates an unresolvable error.  Please contact
               Accelerated Software with the details.

          Invalid Date.
               The entered date is incorrect.

          Invalid Number.
               The entered number is incorrect.

          Invalid Operation for Given Field Type.
               This error may occur in creating a post file.  Only numeric
               field types are allowed to be added or subtracted.

          Invalid Time.
               The entered time is incorrect.

          Key Field Already Defined.
               Only one key field allowed in a post file.

          Key Field Must Be Indexed.
               This error may occur when creating a post file.  The field
               in the target database must be indexed before it can be
               posted to.

          Key Value Doesn't Exist.
               The entered value does not exist in the related database
               file.  This error will only occur if question "Reject if
               value doesn't exist in related database" is answered YES.

          Key Length Over 100 Characters.
               Index files allow for a maximum of 100 characters for the
               key.

          Logical Update Field Not Present in Source Database.
               If a logical field is to be updated when appending or
               posting, the field must first be defined in the source
               database.

          Maximum Number of Printer Files Already Defined.
               A maximum of 26 printer files allowed.

          Maximum of 127 Fields.
               A maximum of 127 fields allowed per database object.

          


                                                                    Page 99

          Maximum of 5 Database Files Per Form.
               A maximum of 5 related database files allowed per form.

          Maximum of 20 Records in a One-To-Many Relationship.
               The current version of PRO-dVelBase allows a maximum of 20
               records on the many side of a one-to-many relationship.

          Memo File Missing.
               The memo file (with .DBT extension) for the current database
               file could not be found.  It was probably deleted at the DOS
               level.

          Multiple Field Copies Not Allowed.
               This error occurs in the process of creating or modifying a
               form.  Multiple copies of the same field are found on the
               form.  The user was probably attempting to create another
               field with similar definitions by blocking and copying. 
               This process, however, will create another field with the
               same field name which is not allowed.  The offending field
               must be deleted and re-defined.

          No Files Found.
               No files could be found on the current directory.

          No End Formula Character.
               The dBASE expression is not sandwiched between the formula
               character (ASCII 20) in a letter.

          No Index For Present Field.
               Unable to perform an indexed search because current field
               lacks an index.

          No Indexes For Related Database.
               Unable to view the related database in indexed table view
               because it does not have any indexes.

          No Key Fields Present.
               This error occurs in the process of relating forms and
               indicates that no indexed fields are present.

          No Record(s) Found.
               No records found that match specified criteria.

          No Selected Label.
               There is no label file in the work area.

          No Selected Mail.
               There is no mail file in the work area.

          No Selected Report.
               There is no report file in the work area.

          Not a Textfile.
               Cannot import a non-textfile into mail merge.

          


                                                                   Page 100

          Only One Memo Field Allowed Per Form.
               Only one memo field may be defined per form.

          Overflow While Evaluating Formula.
               The formula is too large or too complex for PRO-dVelBase to
               evaluate.

          Overlay File Not Found.
               Overlay file for PRO-dVelBase could not be found.

          Parameter or Operator has the Wrong Type.
               Type checking for formulas occur at run time.  The formula
               has a type mis-match.

          Path Not Found.
               The specified path could not be found.

          Picture Too Short.
               A picture must have the same number of user entered
               characters as the length of the field.

          Posting Requires a Key Field.
               An attempt was made to save a post file without a key field. 
               One key field must be defined for each post file.

          PRO.PRT File Not Available.
               Unable to find the main printer definition file.

          Range Error.
               The field value is beyond the specified range allowed for
               the field.

          Right Bracket Missing in Formula.
               The formula requires equal number of right brackets as left
               brackets.

          Selected Object Not Found in Catalog.
               Catalog does not contain any of the selected objects.  They
               must either be created or added to the catalog.

          Text File Too Long.
               Maximum length of text file allowed is 20,000 characters.

          Trying to Move Block Beyond Screen Window.
               The marked block will partially end up outside of the screen
               window.

          Unable to Create an Empty Database File.
               This error occurs when a form is saved with no fields in the
               primary database file.  Each database file must contain at
               least one field.




          


                                                                   Page 101


          Unrecognized Function in Formula.
               The formula has a function that is not recognized as a
               legitimate PRO-dVelBase function.

          Unrecognized Operator in Formula.
               The formula has an operator that is not recognized as a
               legitimate PRO-dVelBase operator.

          Unrecognized Value in Formula.
               The formula has a value that is not recognized as a field,
               string, number, logical value or function.

          Unterminated String in Formula.
               A character string must terminate with a right quote.








































          


                                                                   Page 102


                           Appendix D:  PRO-dVelBase Files
                           ===============================

          The following is a list of files present in PRO-dVelBase or
          created by PRO-dVelBase.  The '*' will indicate any legitimate
          DOS file name.  Generally the name should also follow dBASE
          naming convention.

          A. Program Files
          ================

          PRO.EXE, PRO.OV1 and PRO.OV2
               These files represent the main program file along with its
               overlays.

          PRO.HLP
               PRO-dVelBase help file.

          PRO.PRT
               Main printer definition file.

          B. Created Files
          ================

          *.APP
               An append file stores the names of the database files and
               their associated fields which are to be appended.

          *.BAK and *.TBK
               These are the backup files to the main database files
               created when a form is modified.

          *.CAT
               This is a catalog file and contains the names of all
               associated files for a given form.

          *.DBF and *.DBT
               These are the main database files along with an associated
               memo field file.  These files are dBASE compatible.

          *.FLD
               This is the field definition file and contains all of the
               Fixed Field Definitions for a given form.

          *.LAB
               A label file which stores a given label design.

          *.LET
               A letter file used in the process of mail merge.

          *.NDX
               These are the index files for PRO-dVelBase and they are
               dBASE compatible.

          


                                                                   Page 103

          *.QCF
               This is a query condition file and stores created queries.

          *.QIF
               This is a query index file and is created once a query is
               executed.  It stores the record numbers of the records which
               match the conditions stored in *.QCF.

          A.PRT to Z.PRT
               The user created printer definition files.

          *.PST
               A post file stores the names of the database files and their
               associated fields which are to be posted.

          *.RPT
               This is a report file and stores the format of the
               previously created report.

          *.SCN
               A screen definition file stores the Changeable Field
               Definitions for a given form, field locations on the screen
               and the relationships with other database files.
































          


                                                                   Page 104

                            Appendix E:  Trademark Notices
                            ==============================

           1.  PRO-dVelBase is a trademark of Accelerated Software
           2.  dBASE is a trademark of Borland International Inc.
           3.  Clipper is a trademark of Nantucket Corp.
           4.  CodeBase is a trademark of Sequiter Software.
           5.  dBXL is a trademark of WordTech Systems Inc.
           6.  Fox Base is a trademark of Fox Software.
           7.  MS-DOS is a trademark of Microsoft Corp.
           8.  PC-DOS is a trademark of IBM.












































          

