#1#

                             EZ-Forms DataBase
                            by Saje Enterprises
                            and EZX Publishing


  EZ-Forms DataBase gives you the capability to add, modify, sort, display
  and print all kinds of information in various ways.

  Use the on-line manual (from the main menu) or the context sensitive help
  (via F1) for detailed information.


  Comments or suggestions for improving EZ-Forms DataBase will be
  appreciated.

  EZ-Forms DataBase requires an IBM PC or compatible with at least 640K of
  RAM.  Supported printers include the Epson graphics printers and
  compatibles, and the HP Laserjet laser printers and compatibles.  Display
  adapters known to work with EZ-Forms DataBase are the IBM monochrome, CGA,
  EGA, VGA and compatibles.
#20#

  General help for all menus:

  This menu is broken up into two basic windows.  The window at the top of
  your screen shows several choices.  The window at the bottom of the screen
  expands on what will occur if you choose the highlighted option (the one
  that has a different background color).

  Options may be selected in one of two ways.  You can either press the
  first letter key of the desired command, or move the highlight bar over the
  desired option and press Enter.  To move the highlight bar, use one or any
  combination of the space bar, up arrow, down arrow, left arrow, or right
  arrow keys.  You can also use Home to move to the first top line item on
  the menu.  This is very useful when you need a reference point on the main
  menu to start a keystroke macro from.  The End key will move the highlight
  bar to the last option.

  Using the first letter of a command only works in the  ACTIVE  window.  If
  you don't have a pulldown, then the active window is the top window.  Once
  you pulldown one of the options, that becomes the active window.  You must
  use one of the commands in the pulldown once it is active.  You can always
  use Escape to back out of the pulldown and return to the top menu.
#21#

  In order to get help on specific areas, you must first select the command
  as explained on the previous screen.  Then you can use F1 to get the
  context-sensitive help for where you are in the program.

  KEYBOARD MACROS
  
  Keyboard macros will execute a sequence of keystrokes for you.  This can
  be used to automate data entry, simplify command selection or automate
  file selection.  The 'Alt =' key brings up the keyboard macro menu from
  any point in the program.  Any macro assigned to the 'Shift F10' key is
  an auto-start macro, which is automatically executed at program startup.
  Over 100 keyboard macros can be saved to a macro file.  This file can be
  automatically selected by entering it on the EZFDB command line with the
  '/m' switch, or by using the Load Macro File command in the keyboard macro
  menu.

  HINT:
  To simplify access to a multitude of databases, create a keyboard macro
  file for each database.  Define an auto-start macro to automatically load
  the database and form files.  Define some other macros to simplify data
  entry and command selection for that database.  Then whenever you want to
#22#

  access that database, invoke EZFDB and specify it's associated keyboard
  macro file on the command line.  For example:

        EZFDB /m=addrs.mac


  NOTE
  
  In the on-line help and manual, commands are usually identified by using
  a two part convention.  The first part is the item name from the main menu,
  and the second part is the item name from its pull-down menu.  For example,
  the Database - Open command is frequently mentioned.  This is the 'Open'
  command item in the 'Database' pull-down menu.  From the main menu (with
  no pull-downs shown), you can access the Database - Open command by
  entering the 'D' key followed by the 'O' key, among other ways.

  DATA INTEGRITY
  
  This stands for the accuracy and proper retention of your data
  notwithstanding operator error.  It is imperative that you avoid certain
#23#

  types of actions while EZFDB is running.  These include rebooting,
  turning off or resetting your computer.  Whenever any file is updated
  by EZFDB, it does not necessarily mean that all data has been properly
  preserved on disk.  All data is properly saved whenever you exit the
  program, load a new database, or execute the Database - Close command.

  BACKUPS
  
  The importance of backing up (making copies of) your database and
  associated files can never be overstated.  Hardware and software is never
  perfect, so backing up your files at least daily is the only way to assure
  that any problems will be minimized.

  SUGGESTIONS
  
  We have tried to design EZ-Forms DataBase to let you get your job done
  quickly and easily.  Please feel free to forward any suggestions for
  improvement to us at EZX Publishing, Attn: EZFDB Author.
#50#
                           Quick Expression Help
                           

  Expressions can be used for selection criteria, index creation or field
  calculations.  The following screens explain expressions in more detail,
  but first, here are some examples to give you an idea of what's going on.
  To find (or print or delete) all records that have a LASTNAME field
  starting with 'X', the selection criteria expression would be:
        LASTNAME = 'X'
  Alphabetic case is significant for data between quotes, but otherwise case
  is insignificant.  The 'UPPER' function can be used to make the search
  case insensitive:
        upper(lastname) = 'X'
  However, since the 'UPPER' function converts all characters to uppercase,
  the characters in between the quotes must also be uppercase in order to
  match.  The quotes can be either the single quotes (') or the double
  quotes (").  Spaces anywhere except between quotes or within function
  or field names are optional and insignificant.
    Items can be combined to provide further specificity.  To find all
  records that have a CITY field starting with 'DENVER' and STATE field
  starting with 'CO':
        CITY = 'DENVER'  .AND.  STATE = 'CO'
#51#
                          Detailed Expression Help
                          

  All expressions have the same structure, no matter where they're used.
  They consist of combinations of field names, operators, functions and/or
  constants.  All expressions evaluate to a Logical, Character, Numeric or
  Date type.  Logical expressions have a True or False result and are used
  for record selection, i.e., selection criteria.  Index key expressions can
  have a Character, Numeric or Date result.  A field calculation can have any
  result type, as long it matches its field type.  Evaluation to a specific
  type means that all parts of the expression, whether they be fields,
  functions or constants, must be appropriately combined to yield any one
  type.  Any improperly mixed types will cause an error.

  Memo fields cannot be used in expressions because of the way Memo fields
  are stored.

  A common form of an expression is the name of a field.  In this case, the
  type of the expression is the type of the field.  A common Logical
  expression is one that contains nothing.  This is the simplest way to
  specify all records.
#52#

  Constants are fixed values of any type.
    - Character constants are letters with quote marks around them.  A
      single (') or double (") quote can be used, but be sure to use the
      same one on both sides of the constant.  "Ed", 'Edwardo' and "15515"
      are all examples of Character constants.  If you wish to specify a
      character constant with a single quote or a double quote contained
      inside it, use the other type of quote to mark the Character constant.
      For example, "Andy's" and '"OK"' are both legitimate Character
      constants.
    - A Numeric constant represents a number.  For example, 7, 82, 2.35 and
      -22 are all Numeric constants.  To enter a number less than 1, precede
      it with a zero.  E.g., enter .25 as 0.25, otherwise the number will not
      be recognized.
    - A Logical constant can only be '.TRUE.' or '.FALSE.'.  '.T.' and '.F.'
      are legitimate abbreviations.  The '.' is used to distinguish it from
      a field name.
    - A Date constant must be specified using the Character to Date function
      (CTOD) which converts a character string to a date constant.  For
      example, assuming the default date format MM/DD/YY, February 5th, 1993
      would be specified as CTOD('02/05/93'). The date format is specified
      in the Config-Other menu.
#53#

  Field names are entered directly or selected via the F2 key, which gives
  you a window from which you can select the field and paste its name into
  the expression with the Enter key.  The presence of a field name in an
  expression will cause the value of that field from the current record to
  replace the field name in the expression.  The value returned matches the
  type of the field.

  Operators can relate one part of an expression to another (>, =), or they
  can combine parts of an expression through a mathematical process (+, -).
  The result of a relationship is either .TRUE. or .FALSE..  The result of a
  mathematical process can be a value of any type.  Operators have a
  precedence which specifies operator evaluation order.  The precedence of
  each operator is specified in the following table.  The higher the
  precedence, the earlier the operation will be performed.  For example,
  Divide has a precedence of 6 and Plus has a precedence of 5 which means
  Divide is evaluated before Plus.  Consequently, 7+8/2 is 11.  Evaluation
  order can be made explicit by using parenthesis.  For example, 1+2*3
  returns 7 and (1+2)*3 returns 9.
#54#

  Operator      Symbol  Precedence    Type            Comments
  
  Add              +         5       Numeric,Date
  Subtract         -         5       Numeric,Date
  Multiply         *         6       Numeric
  Divide           /         6       Numeric
  Exponentiate     ** or ^   7       Numeric     X**Y means X to the Yth powr
  Concatenate I    +         5       Character   Straight concatenate
  Concatenate II   -         5       Character   Concatenate, spaces on end
  Equal To         =         4       Logical     Any type
  Not Equal To     <>        4       Logical     Any type
  Less Than        <         4       Logical     Any type except Logical
  Greater Than     >         4       Logical     Any type except Logical
  Less Than or     <=        4       Logical     Any type except Logical
    Equal To
  Greater Than     >=        4       Logical     Any type except Logical
    or Equal To
  Contained in     $         4       Logical     Character only
  Not              .NOT.     1       Logical
  Or               .OR.      2       Logical
  And              .AND.     3       Logical
#55#

  Functions can be used as an expression or as part of an expression and
  always return a value.  Functions always have a name and are followed by a
  left and right parenthesis.  Values (parameters) may be inside the
  parenthesis.  A list of functions follows.

  Function                      Description
  
  ABS(Numeric_Value)       Returns absolute value of Numeric_Value
  CTOD(Char_Value)         Convert Character to Date
  DTOC(Date_Value)         Convert Date to Character (in User Date Format)
  DTOS(Date_Value)         Convert Date to String (CCYYMMDD)
  DATE()                   Return the system Date
  DEL()                    Returns "*" if current record deleted, else " "
  DELETED()                Returns .TRUE. if current record deleted
  DESCEND(Char_Value)      Returns "inverse", for creating descending indexes
  IIF(Logical_Value,True_Result,False_Result)  Returns True_Result when
                           Logical_Value is .TRUE., else returns False_Result
  INSTR(Char_Value,Char_V) Returns position of substring in string
  LOOKUP('Index_Field','Index_File','Database_File','Field_Name')  Get value
        from Field_Name in other Database_File, via lookup using Index_File
        and value in Index_Field.  Pick names (in quotes) with F3 -> F6.
#56#
  Function                      Description
  
  LOWER(Char_Value)        Converts Character string to lower case
  LTRIM(Char_Value)        Removes preceding spaces from a Character string
  PROPER(Char_Value)       Properizes (upper case first letter of each word)
  RECCOUNT()               Returns the total number of records in the d/b
  RECNO()                  Returns the current record number
  RELATE(....)             Same as LOOKUP
  RTRIM(Char_Value)        Removes trailing spaces from a Character string
  STR(Numeric_Value,Length,Decimals)  Convert Numeric_Value to a Char. value
  SUBSTR(Char_Value,Start_Position,Num_Chars)  Returns part of Char_Value
  TIME()                   Returns system time as HH:MM:SS
  TRUNC(Numeric_Value,Length,Decimals) Truncate Numeric_Value at Decimals
  UPDATE('Index_Field','Index_File','Database_File','Field_Name',Value,Code)
        Place Value into Field_Name field in related Database_File, via
        lookup using Index_File and value in Index_Field. Code specifies non-
        existant rec mode: 0:add but ask, 1:add w/o ask, 2:never add-ignore,
        3:never add-error.  Add 4 to Code for update only when adding record
        to the main database.  Pick names (in quotes) with F3 -> F6.
  UPPER(Char_Value)        Convert Character string to upper case
  VAL(Char_Value)          Convert Character value to Numeric value
  ZS(Numeric_Value)        Zero Suppression - blanks field when Value = 0
#57#

                            Expression Examples
                            

  city='CHICAGO' -> Returns .T. (the 'true' constant) when the 'city' field
    of a record starts with 'CHICAGO'.

  'CHICAGO'$UPPER(city) -> Returns .T. when the 'city' field of a record
    contains 'CHICAGO' in any case.
  
  state='TX'.AND.city='HOUSTON' -> Returns .T. when the 'state' field
    starts with 'TX' and the 'city' field starts with 'HOUSTON'.

  qty1+qty2 > 100 -> Returns .T. when the 'qty1' field added to the 'qty2'
    field is greater than 100.

  SUBSTR(zip,5,1)='3' -> Returns .T. when the fifth digit of the 'zip'
    field contains a '3'.

  LOOKUP('cust_id','idx_cust','customer','lname') -> Use 'cust_id' field
    from current database to search in 'idx_cust' index of 'customer'
    database, to get contents of 'lname' field.
#60#

  EZ-Forms DataBase Data Entry Commands:

  Movement Within a Field            Movement Between Fields
       
  HOME  - Beginning                  Ctrl HOME - First field of form
  END   - Last character             Ctrl END  - Last field of form
       - Cursor left                TAB or ENTER - Next field
       - Cursor right               SHFT TAB  - Prev field
  BKSP  - Delete char left           PAGE UP   - First field on prev page
  DEL   - Delete under crsr          PAGE DOWN - First field on next page
  Ctrl - Word left                           - Prev closest field up
  Ctrl - Word right                          - Next closest field down

  Vertical Form Movement             Horizontal Form Movement
       
  Ctrl T- Top section                Ctrl L - Leftmost section
  Ctrl B- Bottom section             Ctrl R - Rightmost section
  Ctrl U- Up one line                Ctrl P - Left one character
  Ctrl D- Down one line              Ctrl N - Right one character
  Ctrl PAGE UP - Top first
  Ctrl PAGE DOWN - Bottom rightmost
#61#

  EZ-Forms DataBase Data Entry Commands (continued):

  Edit Functions
  
  Alt A - Alternate character lookup          Alt = - Keyboard macro menu
  Alt C - Clear current field                 Alt F1- Form Help
  Alt D - Place today's date into field       Alt F2- Form Pick List
  Alt E - Edit Memo field (same as F9)        Alt F3- Relational Pick List
  Alt F - Recall field from Recall Buffer
  Alt M - Execute all field calculations
  Alt N - Recall and increment                F9    - Edit field
  Alt O - Recall and decrement                F10   - Save record
  Alt P - Print form
  Alt R - Recall record from Recall Buffer    Ctrl Q- Abort/Flush macro
  Alt S - Save record (same as F10)           Ctrl X- DOS shell
  Alt T - Place current time into field
  Alt V - Clear all fields
  Alt Z - Greek Characters (printer commands)
#62#

  Record Movement                    Record Movement via selection criteria
       
  HOME or F  - First record          Ctrl HOME or F - First matching rec
  END or L   - Last record           Ctrl END or L  - Last matching rec
  PGUP or P  - Prev record           Ctrl PGUP or P - Prev matching rec
  PGDN or N  - Next record           Ctrl PGDN or N - Next matching rec

  Form Movement                      Display / Revise Functions
       
   - Left section                   Alt A - print with Alternate form
   - Right section                  Alt D - load new Database
   - Up section                     Alt F - load Form file
   - Down section                   Alt I - select Index
                                     Alt L - print Label
                                     Alt O - index temporarily Off
  Global Functions                   Alt P - Print current form
       Alt R - Remember rec (load Recall)
  Alt = - Keyboard macro menu        Alt S - Save filled out form (.fof)
  Ctrl Q- Abort/Flush macro          Alt T - expression Tutor
  Ctrl X- DOS shell                  Alt W - Write form as ASCII file
#63#

  Permissable Entries
  

  As you move around the form to different fields, you will notice the
  contents of the bottom line change.  The row and column numbers indicate
  the cursor position within the form.  Whenever editing is started, row 1
  column 1 of the form is positioned at the top left of the screen.

  The 'Field:' area of the bottom status line indicates the field name and
  type for the current field the cursor is in.  For example,
  'Field:    NAME/C' indicates that the cursor is in the field named 'NAME'
  and it's a Character field type.  Some of the field types have limits on
  what characters can be entered and how the characters can be structured.

    Type          Description
  
  C  Character    No limits
  N  Numeric      Numbers, '-' (and decimal point if decimals>0)
  D  Date         Numbers and characters specified in the Date Format
  L  Logical      'Y','y','T','t' for True -OR- 'N','n','F','f' for False
  M  Memo         No limits
#64#

  Window Fields
  

  EZFDB will only place data into a form field when that field's name
  matches a database field name.  Even so, the form field can be longer
  or shorter than the corresponding database field.  When the form field
  is longer, all the data appears but data entry will be limited to the
  length of the database field.  When the form field is shorter, the field
  is automatically windowed.

  A window field is a form field whose data is longer than its area length.
  All data is accessible, it's just not all shown in the form at the same
  time.  Initially, only as much of the data field as can fit in its form
  field is displayed.  During data entry, when the cursor approaches the
  end of the field, the remaining data will automatically scroll leftward
  into view. The cursor will remain in the field until it reaches the end of
  the data.  Similarly, when the cursor approaches the beginning of the
  field, the remaining data will automatically scroll rightward into view.
  Again, the cursor will remain in the field until it reaches the end of the
  data.
#65#

  Memo Fields
  

  All Memo fields are automatically Windowed fields since the permissable
  Memo field length (5000) is much longer than the longest possible form
  field.  However, there is one exception: Memo fields cannot be changed
  within the form but the first part is displayed in the form.  An external
  memo editor (MEMO.COM) must be invoked (with Alt E) during data entry to
  edit Memo fields.  This allows for use of the full screen for editing.
  When you exit the editor, the Memo field will be updated.  An intermediate
  file is used for the editing: MMxxxxxx, where xxxxxx is a random number.

  EZFDB comes with a full screen editor program, MEMO.COM.  This simple
  editor is a separate, stand-alone program with its own on-line help.
  You are free to replace this with any other editor that can accept an edit
  file on its command line.  To use another editor, either copy it into the
  EZFDB directory as MEMO.COM or MEMO.EXE, or make a MEMO.BAT file that
  calls it.  EZFDB searches for MEMO.BAT, then MEMO.COM, then MEMO.EXE, so
  make sure no files exist that will be found before the one you want.
#66#

                                Data Entry
                                

  The commands used to access the many data entry features are listed in the
  following help screens.  Availability of some features is indicated by
  the bottom line of the data entry screen.  The contents of this line
  changes from field to field, based on what has been designed for this
  form and database.

  [phrw] on the bottom line represents:

  P = Form Pick List - Alt F2 for data entry, design with Form-Edit.
        Choose from fixed list of possible entries.
  H = Form Help - Alt F1 for data entry, design with Form-Edit.
        Provides information specific to a section of the form.
  R = Relational Pick List - Alt F3 for data entry, design with
        Revise-Fields.  Choose from dynamic list from related database.
  W = Word-wrap - automatic in data entry, design with Form-Setup.
        Treats a set of form fields as a word-processing "paragraph".
#70#

                      Expression Tutor and Calculator
                      

  This dialog box will show the results of any expression you enter.  Any
  field names in the expression will be replaced by data from the current
  record.  You can enter and re-enter expressions as long as you like, until
  you've mastered the operation or function of interest.  The expression
  can also be any numeric formula, so you can use this expression evaluator
  as a calculator.  Expressions must evaluate to a specific type (Character,
  Date, Numeric or Logical), so be sure to not mix types.

  The screens that follow give details on how to form expressions.

  Use the ESCape key to exit the Expression Tutor and Calculator when you
  are done.
#200#

  Database - Open will select an existing database for use.  If you want to
  create a new database, you instead need to use the Database - New command.

  Enter the database name only, without the .dbf extension.  If you don't
  remember exactly what it's called, a list of files will be presented
  whenever you enter just the directory name and leave the filename blank,
  or whenever you enter a wildcard for the file name.  Directory listings
  consist of files in the current directory, then subdirectories in the
  current directory, and then valid drives.  Selecting a file will load that
  database.  Selecting a subdirectory will show a listing for that
  subdirectory.  Selecting a drive will show a listing for the current
  directory on that drive.

  A file or directory name consists of up to 8 characters.  The following
  characters CANNOT be used in file or directory names: ."/\[]:|<>+=;,

  Directory names are optional and if left blank, the current directory
  is assumed.  The directory name can contain a drive name, a path name or
  both.  A path name is a list of directories separated by backslash
  characters ('\'), that leads through the directory tree up to the
  directory of interest.
#201#

  Refer to your Disk Operating System (DOS) manual for detailed information
  on directories and file names.

  The following files are read at this time:

  - database file  (.dbf)   Stores the actual data
  - memo file      (.dbt)   Where memo fields are stored
  - database defs  (.dbr)   Stores Index List, Calculations, Rel. Pick Lists
  - form file      (.frm)   EZ-Forms form for data entry or reports
  - form/db file   (.fdb)   Contains form field names, Word Wrap and
                              Field Sequencing info
  - index files    (.ndx)   Record ordering data (optional)

  The database file is always required for this command.  If the form file
  does not exist, EZFDB can create one for you.  When the form file exists
  without the form/db file, EZFDB can create the form/db file for you.  The
  resulting form/db file may not place database fields into form fields
  properly, since form field names are assigned from the database field names
  by sequence.
#210#

  Database - Close will flush all internal disk buffers to disk and terminate
  access to selected files.  This is useful for saving data to a floppy
  before its removal, or before powering down a system.

  This command is just as effective as exiting the program at preserving
  data.

  On a network, this command is useful for freeing up a database so someone
  else can make structural modifications, which require exclusive file
  access.
#230#

  Database - New can create a database using a currently loaded form, any
  other existing form, or it can also create a new form.  Once a form is
  available, a Field Setup menu is presented, which allows modification
  of all field characteristics before the database is actually created.
  Subsequent changes can be made with the Revise - Fields command, or the
  Database - Build command.

  The Field Setup menu allows you to setup field width, type and name for all
  fields.  In the first window (selection list), move the cursor with the up
  and down arrow keys to select the field you want to change, then press the
  'Enter' key.  This will bring up a second window (dialog box) that allows
  you to change certain characteristics for the selected field.  Once in the
  dialog box, the direct field selection keys PGUP (previous field), PGDN
  (next field), Ctrl PGUP (first field) and Ctrl PGDN (last field) are
  active. The F10 key will return back to the field selection list.  Field
  Calculations can only be entered and modified with Revise - Fields.

  If a database with the same name already exists, you will be prompted
  before it is overwritten.
#231#

  Characteristic              Description
    
  Name              Can be up to 10 alphabetic, numeric or '_' characters.

  Type              Character, Numeric, Date, Logical or Memo.

  Width             0 through 256, depending on type.

  Decimals          For Numeric fields only.  Number of digits after decimal
                    pt., 0 - 15.  Must be at least 2 less than field width.


  Limits
  

  The sum of the widths of all fields (10 for Memo fields) is the record
  length.  The maximum record length is 32000 characters.
  The total number of fields in the form or database cannot exceed 1000.
  Limits are subject to available memory.
#232#

  Type        Can Contain                                   Width
      
  Character   any ASCII character                           0 - 256
              (letters, numbers, symbols and spaces)

  Numeric     '0' - '9', '.', '-'                           0 - 19
                                                            Decimals 0 - 15

  Date        '0' - '9', and other chars in user format     8

  Logical     'T','t','Y' or 'y' for logical true (.T.)     1
              'F','f','N' or 'n' for logical false (.F.)

  Memo        any ASCII character                           10
              (letters, numbers, symbols and spaces)    (0-5000 in memo file)

  Data Entry Help
  

  During data entry, the field name and type is displayed on the bottom
  line.  A help screen is available to explain permissable entries by type.
#233#

  Memo Fields
  

  A Memo field is very similar to a Character field, except that its data
  is stored in a separate Memo (.dbt) file and each Memo field's length
  can be variable and relatively long.  The advantage is that when an
  occasional elaboration is required for a certain record, there are no
  limits on how long or short the elaboration can be.  Only 10 bytes are
  used for each Memo field in a record to point to the corresponding data in
  the Memo file.  When there is data in a Memo field, it is written to
  the Memo file in 512 byte blocks.  When there is no data, nothing is
  written to the Memo file.
#235#

  EZ-Forms DataBase will create a new form and database from answers
  you place in this dialog box.  Fields names are automatically assigned,
  and all field types and widths are the same, as specified.  Once the
  default database definition is built, a Field Setup menu is presented,
  which allows full control over all field characteristics.  Since defaults
  have already been setup, the field definitions can be used as is.

  The Field Setup menu presents a list of fields.  Selecting one of the
  fields will present a dialog box for modification of the default field
  characteristics.  Once in a dialog box, the direct field selection keys
  PGUP (previous field), PGDN (next field), Ctrl PGUP (first field) and
  Ctrl PGDN (last field) are active.  The F10 key will return back to the
  field selection list.
#236#

  EZFDB imposes some limits on the form it automatically creates.  The form
  width is fixed to 80 columns, and the height varies depending on the
  number of desired fields.  Remember, the maximum height is 999 lines, but
  this can be further limited by the Config - Memory settings.  EZFDB tries
  to fit one field per line, but if there are too many fields, it will try
  to fit two fields per line.  Depending on the actual field width and total
  number of fields on the form, some fields may be shortened only in the
  form, and therefore windowed.

  Of course, the Form - Edit command can then be used to edit the form and
  make it more suitable.

  For full control over the form size and format, use the Form - Create
  command to create a new form.  Then run Database - New and tell it you
  want to create a database from an existing form.
#240#

  Database - Build will rebuild (clone) the current database to a new one, or
  create a new database that matches an alternate form.  When you choose a
  new form, a copy of the current form is made.  The new database will then
  be created using the new or alternate form's name.

  Once a form is available, the Field Setup menu will appear.  This allows
  you to setup all field characteristics for the NEW database.  EZFDB can
  add, delete or move fields only when creating a new form.  Whenever fields
  are added, deleted, or moved, EZFDB will change the form accordingly.  When
  building is done, you may want to edit the form to move new fields into
  proper position, or to remove text relating to deleted fields.  However,
  when editing the form, be careful about moving, adding, or deleting fields.
  You can use Form - Setup to change the field names accordingly. When you're
  finished making field changes, press the F10 key to continue to the next
  window, which asks for selection criteria and index ordering.  By entering
  an expression, you can select which records get copied to the new database.
  Specifying index ordering will cause records to be written to the new
  database in current index order.

  NOTE: After this command executes, the PRIOR database and form are still
        active, not the new ones.
#241#

  Database - Build is useful for making changes to your database structure,
  after you have created the database.  You simply build to a new name, then
  load the new database to verify any changes.  You can then use the
  Database - Erase command to delete the old database.

  Field Setup Commands  NOTE: Only available when creating a new form.
  

  Insert - insert a new field, before or after the current one, if room.
  Delete - delete the current field.
  Alt C  - copy field characteristics into paste buffer.
  Alt D  - copy field characteristics into paste buffer, then delete field.
  Alt P  - insert field, using field characteristics in paste buffer.  If
           the original field from which the paste buffer was loaded was
           not deleted, then make sure to change this field name.
  Alt V  - view new form in its current state.
#242#

  Using an alternate form to build a new database can be rather involved, but
  in some situations it may be necessary.  For example, there may be times
  when massive changes to the form are needed.  Or there may simply be no
  room in a certain area to add more fields.  Here are the steps:

  1) Create the alternate form, either from new or by altering a form.
  2) Use the Form - Setup command to assign form field names.  Remember,
     these names must match the appropriate fields in the original database.
  3) Load the original database.
  4) Optional: use Form - Open to load the alternate form to verify proper
     form setup and field naming.
  5) Run Database - Build.
  6) Load new database to verify results.
#243#

  Database - Build is useful for creating a different database to be used by
  a different department or person.  In this case, only some of the records
  and fields are needed.  For example, a company has a master customer
  database, which includes all domestic and foreign customers.  A new
  domestic sales department is created, so the master customer database must
  be split into two - one domestic, and one foreign.  Here are the steps:

  1) Load the master customer database.
  2) Select the Database - Build command, and enter a name for the domestic
     customer database.
  3) When the Field Setup menu appears, make any necessary modifications,
     then press F10 to the selection criteria dialog box.
  4) For selection criteria, specify:
        COUNTRY=' '.or.upper(COUNTRY)='USA'.or.upper(country)='U.S.A.'
     This is simply an example, specific cases may vary.
  5) Select index or non-index order, and press ENTER to start the build.
  6) When complete, the original customer database will still be active.
  7) Load the new domestic customer database and verify the results.  Since
     you still have the original database, it's easy to redo the above steps
     if there were any problems.  Redo until you are satisfied.
  8) Repeat steps 1-7, with appropriate changes, for the foreign database.
#250#

  Database - Export will export the current database to a seperate file, in
  one of the 6 supported formats.  You can select which fields get exported,
  field order, and what records get exported.  Records will be ordered based
  on the currently active index.  EZFDB leads you through the following
  steps:

  1. Select export file type.  Each of these types are fully documented in
     the manual, and are also available for importing with Revise - Import.

  2. Fields to export.  Here you can control which fields get exported and
     their sequence.

  3. Selection criteria.  Here you enter an expression which selects what
     records get exported.

  4. Export file name.
#260#

  Database - Rename will rename all files directly associated with a
  database.  These files are identified by the following file extensions:
        .frm - form
        .fdb - form/database
        .dbr - database definitions
        .dbf - datbase
        .dbt - memo

  As with Database - Erase, other files that may be associated with a
  database are not affected.  These include:
        .ndx - index
        .cnf - configuration
        .mac - keyboard macros
  To rename one of these other files, you can exit or shell to DOS, and use
  the DOS 'REN' command.  However, there is a problem with renaming an
  index file using DOS, since the index file name is also present in the
  database's Index List.  To rename an index file, you could:

  1) Use the Index - Erase command to erase the index file and then use
     the Index - Create command to recreate it with the new name.
  OR ...
#261#

  2) Exit or shell to DOS, and rename the index file.  Then re-enter EZFDB,
     tell it to eliminate invalid indexes from the Index List, then use
     the Index - Include command to include the index under its new name.

  If any associated keyboard macros use an old file name, that macro must
  be re-recorded using the new file name.
#270#

  Database - Erase will erase all files directly associated with a database.
  These files are identified by the following file name extensions:
        .frm - form
        .fdb - form/database
        .dbr - database definitions
        .dbf - datbase
        .dbt - memo

  As with Database - Rename, all other files that may be associated with a
  database are not affected.  These include:
        .ndx - index
        .cnf - configuration
        .mac - keyboard macros

  To erase one of these other files, you can exit or shell to DOS, and use
  the DOS 'DEL' command.
#280#

  Database - Describe will change the descriptive comment that shows up
  whenever you request a database directory listing.  This description is
  first entered at time of database creation.  A similar description is also
  maintained for each form, and can be changed with the Form - Describe
  command.

  When listing a database directory, to get the database descriptions, EZFDB
  must read part of each database .dbr file.  This can be rather time
  consuming on slower machines, or on directories with very many databases.
  The Config - Files menu contains an option to turn off descriptions when
  listing database directories.  Initially, this is on.
#300#

  Form - Open will load a form file (.frm) and its form/database file (.fdb)
  if it exists.  A form defines the data entry screen and/or the report
  format.  Before selecting a database, or after closing a selected database,
  loading a form can be the first step towards creating a new database, or an
  alternate view/report form.  To create an alternate form, create a master
  form, then use Form - Setup to name the form fields appropriately.  To
  create a database from a form, use Database - New.

  When a database is selected (with Database - Open), the corresponding form
  and form/database files are also loaded.  Subsequent form loading will
  provide an alternate view or report format for that database.

  Enter the form name only, without the .frm extension.  If you don't
  remember exactly what it's called, a list of files will be presented
  whenever you enter just the directory name and leave the filename blank,
  or whenever you enter a wildcard for the file name.  Directory listings
  consist of files in the current directory, then subdirectories in the
  current directory, then valid drives.  Selecting a file will load that
  form.  Selecting a subdirectory will show a listing for that subdirectory.
  Selecting a drive will show a listing for the current directory on that
  drive.
#301#

  A file or directory name consists of up to 8 characters.  The following
  characters CANNOT be used in file or directory names: ."/\[]:|<>+=;,

  Directory names are optional and if blank, the current directory is
  assumed.  The directory name can contain a drive name, a path name or both.
  A path name is a list of directories separated by backslash characters
  ('\'), that leads through the directory tree up to the directory of
  interest.

  The form file (.frm) must have been created by EZ-Forms DataBase or any
  other EZ-Forms program.  EZ-Forms DataBase supports all printing features,
  but not math formulas of other EZ-Forms programs.  Most math formulas can
  be rewritten as EZFDB Field Calculations (see Revise - Fields).
  EZ-Forms DataBase also supports the use of the HP LaserJet Font and
  Graphics Support Pack (HPLJFGSP) for printing.
#310#

  Form - Print will print a form, with or without a database active.  If a
  form is not already active, you can enter the name of one.  When a form is
  read at this time, you are given a chance to view the form before the
  full-screen Print Setup menu appears.


  When the form is larger than the screen, the arrow keys will move the form
  to allow viewing of other sections.
#320#

  Form - View allows you to view a form, with or without a database active.
  If a form is not already active, you can enter the name of one, or choose
  one from a directory list.


  When the form is larger than the screen, the arrow keys will move the form
  to allow viewing of other sections.
#340#

  You can create many different sizes of forms in EZ-Forms DataBase.  One
  of the most common is 64 lines by 80 columns.  Text 80 columns wide at
  10 cpi will just fill a 8 1/2" x 11" sheet of paper.  Most printers use
  66 lines per page vertically.  So if you allow for a little leeway on
  positioning the printer head at the VERY top of the page, things should
  fit well.

  If you have a 80 column printer like the Epson MX80, you can print a form
  as large as 88 lines by 132 columns by using compressed print and 8 lines
  per vertical inch.

  Those of you lucky enough to have a wide carriage printer may be able to
  print up to 130 columns normal size print or about 230/240 in the
  compressed mode. The largest form you can print on a MX100 with wide paper
  is 88 lines (if you use 8 lpi) by 230/240 columns.  This is a huge form!

  For multiple page forms, simply total up all the lines.  So for a 3 page
  form where there are 66 lines per page, the total number of lines is 198.
  The maximum EZFDB form height is 999 lines, and the maximum width is 254
  columns.  This is dependent on the maximum settings in the Config - Memory
  menu.
#350#

  Form - Setup allows you to enter field names directly into the form, so
  that you can see the form while you're deciding on names.  Form names can
  also be assigned when creating a new database with Database - New, but the
  form is not accessible there.  Use F2 to view/paste database field names.

  Field names consist of up to 10 characters with only alphabetic, numeric
  and the '_' characters allowed.  Alphabetic case is insignificant.  Field
  windowing is used when the field is smaller than 10 characters.  All form
  field names and parameters are stored in the form/database (.fdb) file.

  Until the database is opened or created, form field names only apply to
  the form.  When a new database is created, the database field names are
  made identical to the form field names.  When a database is open and an
  then an alternate form is opened (without closing the database), the form
  field names are matched up to the database field names, in order to find
  out where to place data on the form.  Any fields without a match always
  display blanks and any data entered into these fields will be lost.

  F2 - View/paste database field names   F7 - Insert new field name
  F3 - Form Field Parameters             F8 - Delete field name at cursor
                                         F9 - Edit name full size
#351#

  F3 brings up a Form Field Setup dialog box.  This is where Field
  Sequencing and Word Wrap is selected.  Field Sequencing controls where the
  cursor will go after data entry for the current field is complete.  This
  is the forward sequence.  Normally, the next field is defined by normal
  left to right, top to bottom sequence.  Field Sequencing allows for
  alternate sequencing, to make data entry easier and more intuitive.  The
  next field is selected by entering its name, which also automatically
  selects the backward sequencing from the next field to the current field.
  Field sequencing is sometimes necessary, when lines contain multiple fields,
  with unrelated purposes.

  Word Wrap can be selected for each field, and is normally off.  With
  Word Wrap on, words will not be divided between fields, unless a word is
  too large for the field.  When there are words in the next field, the
  wrapped word is inserted at the beginning. This word wrap process
  continues, in word-processing fashion, until a non-word-wrap field is
  encountered. You will also notice that cursor movement within and
  between fields changes to be more like a word processor.
#360#

  EZ-Forms DataBase Form Editor Commands:

  FUNCTION KEYS              ALT FUNCTION KEYS        CTRL FUNCTION KEYS
      
  F1 - Help                  AF1 - Form Help          CF1 -
  F2 - Resize Form           AF2 - Form Pick List     CF2 -
  F3 - Insert Field Markers  AF3 -                    CF3 -
  F4 - Delete Field Markers  AF4 -                    CF4 -
  F5 - Draw Line             AF5 -                    CF5 -
  F6 - Erase Line            AF6 -                    CF6 -
  F7 - Draw Border           AF7 -                    CF7 -
  F8 - Erase Border          AF8 -                    CF8 -
  F9 - Clear Form            AF9 -                    CF9 -
  F10- Editor Menu           AF10-                    CF10-
#361#

  Single keystroke commands (most of these can also be executed via F10):

  Alt A - Alternate Character Lookup  Ctrl A - Add Block Attributes
  Alt B - Bold Text                   Ctrl B - Box Draw for Marked Block
  Alt C - Copy Block                  Ctrl C -
  Alt D - Delete Block                Ctrl D -
  Alt E - End Block                   Ctrl E - Erase Block Attributes
  Alt F - Find Text                   Ctrl F - Feed Date/Time into form
  Alt G - Graphics Walk-Around        Ctrl G - Delete Character
  Alt H - Hide Block (disable block)  Ctrl H - (same as backspace)
  Alt I - Information about Form      Ctrl I - (same as tab)
  Alt J - Justify Text                Ctrl J - Insert a line at cursor
  Alt K - Cross Hatch Generator       Ctrl K - WordStar-like ^K Commands
  Alt L - Line Graphics Palette (1-4) Ctrl L - Large Character Lookup
  Alt M - Move Block                  Ctrl M - (same as Enter)
  Alt N - Notepad (use between forms) Ctrl N - Number (Auto Number Setup)
  Alt O -                             Ctrl O - Kybd macro prefix (Global)
  Alt P - Print Current Form          Ctrl P - Patch Form
  Alt Q - Abort edit                  Ctrl Q - Abort/Flush macro
  Alt R - Replace Text                Ctrl R - Read ASCII file from disk
  Alt S - Start Block                 Ctrl S - Save Form and Resume Edit
#362#

  Single keystroke commands continued:

  Alt T - Text rotation (vertical)    Ctrl T -
  Alt U - Underline                   Ctrl U -
  Alt V - Visible block enable        Ctrl V - Verbose (Help Message Level)
  Alt W -                             Ctrl W - Write ASCII file to Disk
  Alt X - Save form then exit edit    Ctrl X - Exit to DOS Shell (Global)
  Alt Y - Generate CFO Grid           Ctrl Y - Delete Line
  Alt Z - Printer Cmds (Greek Chars)  Ctrl Z -
  Alt = - Kybd macro Menu (Global)

  Ctrl Enter - Inserts a line in the form at the current cursor line.

  NOTE:  The various graphics commands use one of four different sets of
         line type characters, depending on the palette selected with Alt L.
#363#

  Most printers support printing of graphic characters.  EZ-Forms DataBase
  provides printer drivers to handle most of them.  If you have a text only
  printer, then EZ-Forms DataBase provides a translation of these characters
  into something your printer can handle.

  Cursor movement commands:
  
  Use the keypad arrows to move        Home  Move to left side of form
  left, right, up, and down.           End   Move to right side of form
                                       Ctrl Home  Upper left of form
  Use the Control key with the         Ctrl End   Lower left of form
  keypad left and right arrows         Ctrl PgUp  Top of screen/form
  to move to left and right of form.   Ctrl PgDn  Bottom of screen/form

  Note: Commands beginning with the Ctrl, Alt or Shift key, are selected by
        holding down the  first key and then pressing the second key.  For
        example: to use the Ctrl Home command, you would hold down the
        Control key and then press the Home key once.
#364#

 Note:  Auto numbering must be set up in the form.  During data entry, this
        information is used to automatically insert the updated number into
        the record.

 Special character oriented commands that only affect printing: 

    Alt U -- Underline the character at the cursor.  NOT on graphics!
    Alt B -- Bold the character at the cursor.  NOT on graphics!
    Alt 1 -- User defined function 1.   \
    Alt 2 -- User defined function 2.    \  Use the Alt I command to see
    Alt 3 -- User defined function 3.    /  the configured names for these.
    Alt 4 -- User defined function 4.   /

    Note: These affect only the printed form.  A status of these commands is
          shown on the bottom of the screen.  You can see the status updated
          as you move the cursor.  Character status will toggle from U and B
          if you press the key again.  The user defined functions can be
          altered thru the configuration portion of EZ-Forms DataBase.
#370#

  Form - Describe will change the descriptive comment that shows up whenever
  you request a form directory listing.  This description is also entered
  whenever a form is saved from the form editor.  A similar description is
  also maintained for each database, and can be changed with the
  Database - Describe command.

  When listing a form directory, to get the form descriptions, EZFDB must
  must read part of each form (.frm) file.  This can be rather time
  consuming on slower machines, or on directories with very many forms.  The
  Config - Files menu contains an option to turn off descriptions when
  listing form directories.  Initially, this is on.
#400#

  Add Records
  

  Add new records to current database.  New records are concatenated onto
  the end of the database file.  The new key values along with the database
  record number will be inserted into all index files in the Index List.

  When you enter the F10 function key, the record will be added.  If no
  error occurs, you will get a menu of options:

        A  Add another record       
        R  Revise current record    
        P  Print this form            Same as Print - Single
        L  Print label              
        F  Print with alternate form  Explained on next screen
        E  Exit or Escape           
                                     
        Your selection (ARPLFE)?    


#401#

  The 'L - Print label' and 'F - Print with alternate form' commands require
  a form file (.frm) and associated form/database (.fdb) file.  The
  form/database file must contain at least one form field name that matches
  a database field name.  After the files are read, the alternate form is
  matched to the database by field name and the appropriate data is inserted
  into the new form.  Then, the Print Setup menu allows you to print the
  alternate form with the current data.  Once printing is complete, the
  original form is re-loaded and the previous menu appears.


  Unique Indexes
  

  If you've selected any of the indexes to have unique key values only,
  and the record you're adding contains a key value that is already in that
  index file, the record will not be added to the database or any of the
  index files.  Unique indexing is an option available at time of index
  creation with the Index - Create command.  This prevents adding of
  duplicate records.
#410#

  EZ-Forms DataBase Display Commands:


  FUNCTION KEYS
  
  F1 - Help
  F2 - Search for record matching given value, anywhere within record
  F3 - Find records via match of given mask against record
  F4 - Query database for records via index key and/or selection criteria
  F5 - Find next record containing duplicate key
  F6 - Select a record by entering its database record number
  F7 - Add a record
  F8 - Delete/undelete this record (can be purged later)
  F9 - Edit this record
  F10- Exit
#411#

  Edit Records
  

  At this point, you can browse through all records in the database by
  using the keys listed later in this help area.  To help find a particular
  record, you can use one of the movement keys described previously, or you
  can use one of the find commands, Search (F2), Match (F3) or Query (F4).

  The Search command is probably a good first choice, since all that is
  required is a string of sequential characters for which to look.  The
  Match command may be more accurate, if you know what field the characters
  are in.  Even though Search and Match are fairly simple, they may need
  a long time to find the record, since each record is searched one by one.
  The Query command has two parts, of which either or both can be used to
  help find records.  The first part deals with using the current index file
  to find a record.  As long as the character string of interest lies at the
  beginning of an index key, a matching record can be found in an instant.
  The second part of the Query command allows you to enter an expression
  for selecting certain records.  The expression query still must search
  record by record, but entering an index key to search for (first part) can
#412#

  speed this up by finding a record that matches the key before searching
  via the expression.

  To edit any record, use F9 to enter the edit mode on the currently
  displayed record.  Using the F8 key to delete a record will simply tag the
  record for later removal by the Revise - Purge command.  The Config -
  Misc command can change whether the delete-tagged records are displayed
  by any of the record display commands.  If you know the number of a
  particular record you want to see, you can use the F6 function to retrieve
  that record by number.

  A record's number is its position in the file relative to the beginning of
  the file.  The very first record is number 1 and they are numbered
  sequentially after that.  A database can contain up to 2,147,483,647
  records, assuming your disk is large enough.  Once a record is added, its
  record number is fixed until the record is deleted with the F8 function and
  purged with the Revise - Purge command.  After a record is purged, its
  record number and position in the file are reused by the next valid record.
#420#

  Revise - Delete allows you to delete all records that match the selection
  criteria you provide.  Once deleted, the records remain in the database
  until the database is purged.  The Config - Other command contains an
  option for selecting whether EZFDB displays deleted records or not.

  This command is useful for situations where you want to rid your database
  of some records that contain data that set them apart from the records you
  do want.  For example, let's say your database is getting too large for
  your disk and you want to delete all records that are older than a year.
  Assuming that today's date is 12/22/92 and the date field's name is 'DATE',
  you would enter this formula for the selection criteria:

  DATE < ctod('12/22/92')

  When this command finishes, it displays the number of records found and the
  number of records deleted.  If these numbers are different, its only
  because some of the records it found were already deleted.
#430#

  Revise - Undelete allows you to restore any set of previously deleted
  records.  It will not allow you to restore any deleted records that
  have already been purged by the Revise - Purge command.

  This command allows you to easily change your mind about records you've
  previously deleted.  For example, let's say that you normally delete
  invoices for orders that total less than $5.00.  Assuming that the total
  field is Numeric and it's name is 'TOTAL', you could enter this formula
  for the selection criteria:

  TOTAL < 5.00

  When this command finishes, it displays the number of records found and the
  number of records undeleted.  If these numbers are different, its only
  because some of the records it found were already not deleted.
#440#

  Revise - Purge will physically remove all deleted records from your
  database.  This allows you to reuse the space taken up by deleted records.
  You will probably want to make a backup of your database before running
  this command.

  CAUTION: Be  v e r y  careful, since no backup copy of the database is
           automatically made before the purge is carried out.  Once the
           purge is started, it may be impossible to restore the deleted
           records.


  NOTE: After the database is purged, any record numbers that you've noted
        may now be different.  Be careful when recalling records with these
        possibly obsolete numbers.
#450#

  Revise - Merge will add records to your database from another dBASE
  compatible file that has some matching field names.

  First, you select a database to merge.  Then EZFDB will check each field
  name in the merge database against each field in the current database.
  If there are no matches, an error is given.  If there is at least one
  match, one record is added to the current database from each record in
  the merge database.  Only the fields that match by name are copied into
  the new database record.  All unmatched fields are left blank.  Any size
  discrepencies between matched fields are handled by truncation or
  padding with spaces, whichever is appropriate.

  CAUTIONS: No field-type validation is performed on non-character fields.
            No field calculations are performed.

  Finally, one record is added to the current database from each record
  in the merge database.  Indexes are automatically updated.
#460#

  Revise - Import will add records from a non-dBASE compatible database.

  First, you select a database to import.  Then EZFDB asks you for a
  database file type, all of which are listed on the next screen.  These
  same file types are also available for export with Database - Export.

  The only way this command will work is if the fields in the import
  database are in the same order as the fields in the current database.
  Additionally, if there are no field separators, the fields must match
  up by size or translation errors will occur.  Also, for type 5 where
  there is no record delimiter, the record length must exactly match.

  CAUTIONS: No field-type validation is performed on non-character fields.
            No field calculations are performed.

  Finally, one record is added to the current database from each record
  in the import database.  Indexes are automatically updated.
#461#

  The following types are supported:

   Type  Field Sep  Rec Sep     Notes
   
     1      CR LF     None     PeachText (field per line)
     2        ,       CR LF    MailMerge
     3        ,       CR LF    Lotus PRN
     4      None      CR LF    Fixed length packed 1
     5      None      None     Fixed length packed 2
     6      None      CR Only  File Express format
#470#

  Revise - Recalc will recalculate all field calculations in all records.
  If you've turned Auto Recalc on, this may not be needed, since all field
  calculations would be performed during data entry, and just prior to saving
  a record during an Add or Edit function.

  Here are some examples where Revise - Recalc may need to be run:

  1) After merging or importing records from another database.

  2) After changing some fields with the Revise - Substitute command.

  3) You normally leave Auto Recalc off, and now you do want to
     calculate everything.

  4) After changing some pertinent information in a database that is
     'related' to the current database via the Relate function in a field
     calculation.
#480#

  Revise - Substitute will set a certain field of selected records to a
  particular value.  An expression can be used to create the value.

  For example, assume the selection criteria expression is 'ZIP='606', the
  field name is 'STATE' and the substitute expression is '"IL"'.  This will
  place 'IL' into the 'STATE' field of all records with zip codes starting
  with '606'.

  This command achieves nearly the same result as the Replace command of
  any word processing program.  The search value in the word processor's
  Replace command is similar to the selection criteria expression in
  conjunction with the field name.  The replace value is similar to
  EZFDB's substitute expression.  The substitute expression can specify any
  value of the same type as the field to be substituted.  This allows the
  use of math, relations, properizations, etc.  When the replace is carried
  out, the entire field is set to the substitute expression's result, not
  just the portion found.  So, the entire field is replaced.
#490#

  Revise - Fields allows you to change any database characteristic, except
  database field width.  To change field widths or field order, a rebuild
  with Database - Build will be necessary.  Field Calculation and
  Relational Pick Lists are saved into the database-related (.dbr) file.
  All other field characteristics are saved into the database (.dbf) file.

  A Field Calculation is an operation performed on a particular field.  This
  operation is specified by an expression, which evaluates to a result of
  the same type as its field.  Entry and modification of Field Calculations
  can only be done with the Revise - Fields command.

  A Relational Pick List is a more visual but less automatic version of the
  automatic Lookup feature, available via a Field Calculation.  It is also a
  more powerful version of the Form Pick List.  Instead of choosing from a
  fixed list, records from a related (secondary) database are displayed in a
  pick list manner.  Data from the current (primary) record helps select the
  start of the list, but all records are accessible.

  Since these characteristics are kept with the database, data entry
  through an alternate form will have no affect on Field Calculations or
  Relational Pick Lists, even if some db fields are missing from the form.
#491#

  Revise - Fields presents a list of fields.  Selecting one of the fields
  with F2 or F3, will present a dialog box for modification of the chosen
  field characteristics.  Once in a dialog box, the direct field selection
  keys PGUP (previous field), PGDN (next field), Ctrl PGUP (first field) and
  Ctrl PGDN (last field) are active.  The F10 key will return back to the
  field selection list.  F10 from the selection list will save the changes.

  NOTE: All indexes are rechecked after the new characteristics are saved to
        the database.  If you change the name or type of a field whose old
        name or type is being used by an index, an error will result.
        Rebuild all index files which use old field names or types in their
        key expressions.
#500#

  View - Look
#510#

  Search for a record containing a given value, anywhere within that record.
  Alphabetic case is insignificant.

  This is the simplest method of searching, but it may find more records
  than you need, in which case you may have to specify a longer search
  string or use the Match or Query command instead.

  The 'index number of where to start search' allows you to speed up the
  search by specifying at what position in the file to start the search.
  The index number is very similar to the record number.  The index number
  represents the position of a record's index key within the active index
  file, relative to the beginning of that file.  When there is no active
  index, the index number is identical to the record number.
#520#

  Find records by applying the given mask to each record until a match
  results.  Any character position containing a '*' will be masked out
  of the search, essentially ignoring it.  The '*' represents a wild card,
  where it in effect matches any character.  All other characters are
  matched by position, ignoring alphabetic case.
  
  A Match is more powerful than a Search, but more information about the
  target record is required.  In some cases, Match may be too restrictive
  or too slow.  The Query command can utilize the index to speed up the
  search, or it can use a search expression for maximum accuracy.
#530#

  Query gives you the most power in finding records.  To accomplish this,
  Query is divided into two parts, either or both of which can be used.
  The first part, which is placed in the upper half of the entry box, is
  called the Seek, where the currently active index is used to find a record.
  The second part, which is placed in the lower half of the entry box, is
  called the Find, where an expression is used to find a set of records.
  The additional power comes from being able to combine the above two parts
  to speed up an otherwise slow Find.  When both parts are specified, a
  Seek is performed to find a matching index key, then the sequential Find
  is performed, record by record.  If there is no active index, the index
  key value is ignored.

  For example, assume we have a database of names and address indexed by zip
  code and we want to find 'John Brown' in zip code '99076'.  If we use the
  Find part by itself, the selection criteria expression would be:

    NAME = 'John Brown' .AND. ZIP = '99076'

  Since Find searches in index order and doesn't automatically notice that
  zip code is part of the expression, we must needlessly sit through the
#531#

  first part of the search.  For a large database, this can take quite some
  time.  All zip codes from 00000 to 99075 must be searched before it finds
  99076.  With the Seek part alone, we need just enter '99076' as the index
  value, and the first record with zip code 99076 is immediately found.  But
  still, we have to use the Find part to find 'John Brown'.  If both parts
  are used in conjunction, the responses would be:

    Index value:
    99076

    Selection criteria expression:
    NAME = 'John Brown'

  The first record for zip code 99076 is found immediately, and then the
  first John Brown record is found.  In many cases, the Query command will
  be faster than Search or Match, even for simple searches like the above
  one.  However some of this speed gain is offset by the extra time needed
  to enter an expression.  For the uninitiated, this can be considerable.
  You will need to judge, based on the situation, whether to use Search,
  Match or Query to achieve the quickest overall results.
#532#

  To further clarify, a Seek is almost always faster than a Find for two
  reasons:

    1) Since the index fields are already known, only a value need be
       entered instead of an entire expression.
    2) Find searches the database record by record, using the index to
       order the search.  Seek uses the index file only, and since the
       index file is maintained in the B+Tree format, the search is very
       fast.  Once the value is found in the index, the corresponding record
       is retrieved instantaneously.  Query essentially combines the above
       two operations - Seek followed by a Find.

  A Seek can result in one of the following conditions:

    1) The value was found.

    2) Inexact find.  The value was found but had fewer characters than the
       index file keys.  For example, if "Andy    " was the index file key
       value, seeking for "Andy" would yield an inexact find since there were
       8 characters in the index file key value and 4 characters in the seek
#533#

       value and the first 4 characters match.

    3) The value was not found, so the record with the key value that's just
       greater than the seek value will be displayed.

    4) The value was not found, and the end-of-file was reached during the
       search.  Therefore, the next greater value record can't be displayed.

  A Find can be sped up by turning off all indexes with the Index - Off
  command.  This will search the database record by record without using
  any index file and result in faster file accessing.  Turning off all
  indexes will of course disable the Seek operation.

  Case Sensitivity
  

  The Search and Match functions are not sensitive to alphabetic case, but
  Query (Seek then Find) is.  To minimize Seek errors, the seek value is
  automatically converted to upper case whenever the 'upper' function
  appears at the beginning of the index expression.  Similarly, the 'lower'
  function will automatically convert the seek value to lower case.
#540#

  View - Browse will display 21 records per screen and allow you to browse
  through the entire database.  A Selection Criteria expression can select
  which records to display.  For example, by entering the expression
  'city="CHICAGO"', you can limit Browse to only display records for
  'CHICAGO'.  Once in the Browse screen, you can change the selection
  criteria by using a function key to select Search, Match or Query.

  First, enter the names of the fields you want to see on the screen,
  separated by '/'s.  If you choose less than can fit on the screen, the
  fields directly following the last one you list are used to fill it up.
  If you choose more than can fit on the screen, the remainder is truncated.
  Then, you can enter the selection criteria expression.  On the screen, one
  of the top lines is devoted to column titles, which are simply the names of
  the fields.

  When no fields are entered and the input line is blank, EZFDB
  automatically builds the screen starting with the first database field,
  and continuing in database field order until the screen is filled.

  View - Browse also allows you to delete/undelete records, search for
  duplicates, edit, add, and view the entire form.
#550#

  View - Report will display a summary of a set of records.  The summary
  consists of at least a count.  When a Numeric field is specified, the
  summary also includes a sum and average.  The count is the number of
  records that match the selection criteria.  This means that the expression
  is evaluated on every record of the database and the count is incremented
  by one for each record that yields a true result.  When the optional field
  is entered and its Numeric, a sum and average are computed on that field
  for each record that was counted.

  This command is useful for getting some quick overall information on your
  database.  For example, if you wanted to count the number of records that
  contained 'HOUSTON' in the city field, you could enter:

    Expression: 'HOUSTON' $ city
                                
    Report Field:               


  After all records are accessed, a count would appear.  A sum and average
  is not computed since no Report Field was specified.  Also, now you can
  choose to run Report again or make a simple printout of it.
#560#

  View - Fields lets you browse through all the field definitions for the
  current database.  The display style is identical to the Revise - Fields
  command's display.

    Num   - field's order number

    Name  - field name, used in expressions

    Type  - C)haracter, N)umeric, D)ate, L)ogical or M)emo

    Width - A.B, where A is the total width and B is the number of places
                after the decimal point for Numeric fields

    Field Calculation - expression used for field's data
                (truncates at end with '...' if too long)
#570#

  View - Other allows viewing of any other database, in a tabular form
  similar to View - Browse.  It will display 21 records per screen and allow
  browsing through the entire database.

  First, select the database to view.  Any database except the currently open
  one is browsable here.  To view the open database, use View - Browse
  instead.  Then, enter the names of the fields you want to see on the
  screen, separated by '/'s.  If you choose less than can fit on the screen,
  the fields directly following the last one you list are used to fill it up.
  If you choose more than can fit on the screen, the remainder is truncated.
  On the screen, one of the top lines is devoted to column titles, which are
  simply the names of the fields.

  When no fields are entered and the input line is blank, EZFDB
  automatically builds the screen starting with the first database field,
  and continuing in database field order until the screen is filled.
#580#

  View - Info displays a single screen of pertinent information regarding
  the current status of EZ-Forms DataBase.

  The screen is divided into four parts:


  Database - info on currently loaded, open database

  Form - info on currently loaded form

  Indexes - info on current index and Index List

  DOS - memory statistics


  Blank parts signify no available information.
#600#

  Index - Select allows you to select a new current index from the index
  list.  The current index is the index that controls the order in which
  records are displayed.  The Index List is a list of index files that are
  valid for the current database.  The Index List is stored in the .dbr
  (database definitions) file.  Index files can be added to the Index List
  by using the Index - Create or the Index - Include command.  Index files
  can be deleted from the list by using the Index - Erase command.  To select
  an index, a list of valid index files in the Index List is given.  The
  cursor initially highlights the current index.  The columns are as follows:

    Name - index file name
    D - This letter stands for 'Default'.  A 'D' in this column indicates
        that this index is the default current index.  That means that this
        index will be the current index whenever this database is selected
        via the Database - Open command.
    U - This letter stands for 'Unique'.  A 'U' in this column indicates that
        this index was created with the 'unique' option.  Anytime a record
        is added or revised with an index key identical to one that already
        exists, an error will result.
    Expression - The expression that was used to create the index file.
#610#

  Index - Off turns off all indexed record access.  This allows the records
  to be displayed in chronological order.  When a database is first created,
  no indexes exist for it and the Index List is empty.  All displays show the
  records in chronological order, i.e., the order in which the records were
  entered.  Once the first index is created, it becomes the default index.
  Whenever the database is selected via the Database - Open command, the
  default index is active.  The only way to go back to a chronological index
  is either by using the Index - Erase command to erase the index or by using
  this command to turn off all indexes.

  Even after indexed record access has been turned off, all indexes are
  still updated whenever a record is added or modified.

  Turning off indexed record access is a way to speed up the Find command,
  since it normally searches using the active index, which takes more time.
#620#

  Index - Find Dup will find any records that have the same index key values.
  This command will only work on the current index so be sure to select
  the appropriate index for your duplicate search.  Duplicates cannot be
  found when there is no index selected, since no key is defined.

  Once the first duplicate is found, all record movement functions are
  available.  This allows you to move between the duplicates to help decide
  which duplicate needs to be modified, deleted or whatever.  To continue
  the duplicate search, or to restart the search at any time, use the F5
  function.

  NOTE: When you delete a record, and the Use Deleteds option in
        Config - Other is off, the next record in the list is automatically
        displayed.  If the next record is another duplicate, it may not be
        found as such, since the F5 function starts duplicate searching from
        the current record.  The solution is to move to the previous record
        after deleting one.

  The View - Browse screen also has an F5 - Find Duplicate function.  This
  can be more useful when more than one duplicate exists for any record.
#630#

  Index - Create will create a new index file from a given expression.  When
  complete, the index's file name will be added to the Index List.  There is
  a limit of 12 indexes in the Index List.

  The expression must be the kind that evaluates to a Character or Numeric
  type.  Logical expressions are only used for selection criteria.  Memo
  fields cannot be used in an index expression.  The result of the expression
  on a given record is the index key for that record.  The result must be of
  proper type and cannot be longer than 100 characters.

      UPPER(last_name+first_name)

  This expression will create an index ordered by each record's last_name
  then first_name fields, all converted to upper case.  For example, if
  last_name='Smith          ' and first_name='Andrea         ', the index
  key is 'SMITH          ANDREA         ', which is of Character type.

  A filename for the index file is required.  If the filename already exists
  in the Index List or in the specified directory, a warning is given before
  the file is overwritten.
#631#

  The 'Require unique key values' question requires a yes or no response.
  When yes, any duplicate keys encountered during index creation will halt
  the creation process with an error indicating what record contains the
  duplicate key.  In addition, duplicate key values will cause an error after
  adding or revising a record.  Records with key values already in the index
  file cannot be entered.  A 'no' response allows any keys, and therefore
  allows possibly duplicate records.

  To create a descending index, use the DESCEND function.  For example, to
  create a descending index using the previous example, enter:

      DESCEND(UPPER(last_name+first_name))

  To create a descending index with a date value or numeric value, first
  convert it to a character value with the DTOS or VAL functions.  For
  example, to create a descending index using a date field, enter:

      DESCEND(DTOS(date))

  For a numeric field, enter:  DESCEND(VAL(number))
#640#

  Index - Rebuild will rebuild any one index file or all index files listed
  in the Index List.  Rebuilding an index file is usually only necessary when
  one of the files has been damaged or the database has been modified without
  the corresponding modification made to the index files.  EZFDB cannot
  always determine when an index file is invalid.  Occasional checks are
  made where possible.  Here are some examples of when the index file is
  partially checked for validity:

    1) When a database is initially selected, the database file and all its
       Index List indexes are opened.  When an index file is opened, the
       expression that was used to create the index file is checked against
       the database for valid field names and field types.
    2) When an index is active, the index helps determine which record to
       display.  A particular entry in the index file corresponds to a
       record in its database.  If the corresponding record no longer exists
       or it has a different key value, an error will occur.
    3) When a record is accessed by number, the index file is not needed.
       After the record is retreived however, the key is determined and
       found in the index file to setup the next indexed access.  An error
       will occur when the key is not found in the index file, or when the
       key points to a different database record.
#650#


  Index - Erase will delete an index file and remove its entry from the Index
  List.  This may be necessary when you decide that you no longer need an
  index you've previously created.

  If an index file is deleted by any other method, you will get an error
  when the database is opened with Database - Open, since the index file name
  is still present in the Index List.  At that time, you can choose to delete
  the index from the Index List, thereby eliminating future error messages.
#660#

  Index - Include will add an existing index file to the Index List.  This
  is only needed when the database and its index files were created by
  another program and you're setting it up for use with EZFDB.

  Enter the index name only, without the .ndx extension.  If you don't
  remember exactly what it's called, a list of files will be presented
  whenever you enter just the directory name and leave the filename blank,
  or whenever you enter a wildcard for the file name.  Directory listings
  consist of files in the current directory, then subdirectories in the
  current directory, then valid drives.  Selecting a file will load that
  index.  Selecting a subdirectory will show a listing for that subdirectory.
  Selecting a drive will show a listing for the current directory on that
  drive.

  A file or directory name consists of up to 8 characters.  The following
  characters CANNOT be used in file or directory names: ."/\[]:|<>+=;,
  Directory names are optional and if left blank, the current directory
  is assumed.  The directory name can contain a drive name, a path name or
  both.  A path name is a list of directories separated by backslash
  characters ('\'), that leads through the directory tree up to the
  directory of interest.
#670#


  Index - Default will select a default index.  This is the index that will
  be active whenever the database is selected using the Database - Open
  command.  The default index is identified by a 'D' in the Index - Select
  command's index listing.  The View - Info command will also indicate the
  default index.
#680#


  Index - Test will completely test the accuracy of all indexes.  In
  most cases, this will not execute much faster than rebuilding the index,
  but it is useful for finding certain problems.  If an error is found,
  a description is displayed and testing is aborted.
#700#
  Config - Printer options are:

   U  Select a printer by pressing U and specifying a predefined printer
      type.  This must be done before you can customize a printer driver.
      This first step sets up the basic printer defaults.

   M  Modify a predefined printer type.  This allows you to customize the
      printer driver for things such as initialization string, user defined
      functions, etc.  You should first choose a basic printer type with the
      U option.

   C  Change the default printer and user defined function names.

   S  Show the configured printer defaults. This screen will display a number
      on the left side to number each string.  These numbers correspond to
      the numbers in the "Modify predefined printer type" section.
   
   L  Select printer port number, LPT1 through LPT4.

  EZ-Forms DataBase will support almost any printer on the market.  Some of
  the printers, such as the Epson, are so numerous that we have taken the
  time to customize EZ-Forms DataBase to provide many print options.
#701#

  Look for your printer in this list and choose it.  The list is in
  alphabetical order by manufacturer name.  If you cannot find your specific
  printer, try one that may be similar to it.  Please notify us if your
  printer is not listed, and you have found a driver that works properly with
  it, so that we can provide it in our printer list for future releases.
  Some printers in the list are followed by mode or emulation
  information, such as Epson or LaserJet.  If yours does, make sure your
  printer is setup in this mode.

  The left column of the printer list is a type code, which identifies
  which printer driver EZFDB is to use.  If your printer is not in the
  list, or does not work properly, here is a description of each driver.
  After reading this, you may be able to choose a driver that is more
  suitable.  All of these drivers are available at the end of the printer
  list.

  A. Plain generic dot matrix  This type should work with ANY printer.
     Plain dot matrix/daisywheel.  Only standard ASCII (like 1,2,Z,-, etc.)
     are sent to this printer.  No control codes.  ALL character graphics
     symbols are translated to a standard symbol like -, |,  and +.
#702#

  B. IBM Extended ASCII No ESC Sequences
     IBM Graphics printer compatible codes (ASCII codes above 127 like   
     etc).  EZ-Forms DataBase sends the same character graphics symbols as
     you see on the screen to the printer.  NO escape sequences are used,
     therefore no special print attributes are supported.
  C. IBM ASCII with ESC Sequences
     Same as above, but uses IBM Proprinter escape sequences to provide some
     of the special print attributes.
  D. HP LaserJet Font Cartridge Y
     This driver requires the Y font cartridge (or any other cartridge with
     the IBM character set) to be inserted into the printer.
  E. HP LaserJet with Optional Soft Fonts
     This is for use with the EZX optional HP LaserJet Fonts and Graphics
     Support Pack (HPLJFGSP).  It can be used to display up to 10 different
     fonts and 15 different graphic images, with unlimited repetition
     throughout the form.  Any printer that supports PCL 4 or higher, and
     has at least 1MB of internal memory can be used.  Printers with less
     memory can can still work, but total number of fonts and graphic images
     will be limited.  The HPLJFGSP also works in conjunction with the
     Printer - Preload command, to speed up printing by loading all fonts,
#703#

     graphic images and the form only one time.  Subsequent printing only
     sends the filled-in portions of the form.
  F. HP LaserJet with HPGraph
     For older LaserJets without a Y font cartridge or the IBM character set,
     such as the LaserJet II series, this driver can be used.  It requires
     the HPGraph program to be loaded prior to running EZFDB.  The font
     is fixed to portrait, at 10cpi (80 col, 66 lines).
  G. Okidata Plus Series (Utility mode)
     For older Okidata printers without Epson compatibility, this driver
     will print the graphics and attributes on your forms.
  H. HP LaserJet with Basic Soft Fonts
     As an alternative to the type F driver, this driver can print
     compressed and landscape forms.  Refer to HPLJFNTS.EXE for more info.
  I. HP LaserJet/DeskJet with PC-8 Symbol Set
     This driver is the simplest and quickest LaserJet driver to use, but
     requires that the printer support the IBM character set, PC-8.  Of
     course, these printers can also use drivers E or K, with the HPLJFGSP.
  J. HP LaserJet/DeskJet with PC-8 and Macros
     Same as driver type I, except can also print graphic images via HP
     print macros.
#704#

  K. HP LaserJet with Optional Soft Fonts and PC-8
     Same as driver type E, except uses the PC-8 font for the default font,
     font 0, instead of the HPLJFGSP font 0.
  1. Epson 9 pin dot matrix
     Uses Epson escape sequences for print attributes and to generate high
     quality graphics.
  2. HP ThinkJet (Epson mode)
     Similar to driver type 1, but uses different resolution for graphics,
     as required.
  3. Epson LQ 24 pin SW selected font
     Same as driver type 1, but for 24 pin printers.  Also selects the
     basic draft font.  To use the front panel or switches to select any
     other font, use driver type 4.
  4. Epson LQ 24 pin HW selected font
     Same as above, but uses default font.
  L2. HP LaserJet/DeskJet Series
      This is a family of drivers.  When selected, it shows a list which
      allows a choice of driver types I, J, H, E, K, F or D.  Refer to the
      above descriptions for further information.
#705#

  PS. Postscript with PSFX
      This is for any Postscript printer.  PSFX is a TSR program that
      converts Epson 9 pin codes into Postscript.  PSFX must be loaded prior
      to running EZFDB.  Refer to PSFX-DOC.EXE for further information.
      Driver type 1 is used.  Superscript and subscript are not supported.
#706#

  The printer control codes are broken into five basic groups.

  1. Codes 1-8: Printer initialization/exit, form initialization/exit, and
                and the 6 lines per inch (6 lpi) and 10 characters per inch
                (10 cpi) codes.  The drawing below shows you how they are
                used.

                 Printer Initialization
                  Form Initialization
                   Print one line
                      -- Send text quality codes to printer (see 19 & 20)
                      -- If 6 lpi use 6 lpi codes else use 8 lpi codes
                      -- If 10 cpi use 10 cpi codes else use 17 cpi codes
                   End printing line and loop back to print another line
                  Form Exit
                 Printer Exit

  2. Codes 9-16: User defined character attributes.  These codes are used
                 for EZ-Forms character attribute functions.
#707#

  3. Codes 19-20: Selects either high quality or draft quality text.
  4. Codes 21-68: Character graphics symbols. If you are using a text driver
                  this string will be sent to the printer to print the
                  the character shown.  On some printers you can get them
                  to print character graphics symbols but they aren't in the
                  same order as the IBM Extended ASCII Symbols.  These codes
                  allow you to translate the order to match your printer.
                  Also, you can configure an escape sequence for each one of
                  these symbols to get your printer into graphics, draw the
                  character,  then return to normal text mode.  These
                  translate strings offer you a means to really customize
                  EZ-Forms DataBase.  These codes do not affect the graphics
                  drivers.  In the bit-image graphics drivers, a graphics
                  escape sequence is used to draw the entire line at one
                  time instead of using these translate strings.
#708#

  5. Codes 69-98: Greek characters.  These are user defined commands to
                  direct the printer to do something.  They are defaulted to
                  spaces to maintain correct form spacing.  Add any printer
                  commands you want for these special characters. The first
                  time EZFDB encounters the symbol in a form it will send the
                  the On sequence.  The second time it will  send the Off
                  sequence (they toggle states each time used).
                  NOTE: Printer driver types E, J and K use Greek characters
                  for graphic image placement.  In these cases, the Greek
                  character printer codes are not replaceable.
#709#

  EZ-Forms DataBase allows you to customize the "translate strings" it uses
  to work with your printer.  These printer command strings consist of up to
  18 (24 decimal) characters to be sent to the printer plus a length
  character you use to tell EZ-Forms DataBase how many of the characters to
  send.

  All codes are displayed in hex (base 16).  If you are changing codes in
  this area, you probably are already used to working in hex.  If not, then
  most computer books provide a quick tutorial on working with hex and may
  even provide a conversion table between decimal and hex.

  Please be careful when modifying these codes.   You can easily enter
  codes that have your printer doing all sorts of strange things.
#710#

  This menu gives you complete control over the way you print a form. It
  also places a lot of responsibility on you to know how your printer
  works.  In particular, you need to know how wide the form is and whether it
  will fit on the width of paper in your printer.  Most Epson series
  printers can only print 80 characters per line normally or 132 characters
  per line using compressed print.  This is the type of information you will
  need to refer to your printer manual for or see a PC Guru in your area.

  Warnings:
  
  Epson series printers can't print both compressed and bold at the same
  time.  Because of this conflict, EZFDB disables bold when printing a
  compressed form.
#715#
  High level problem description:

  EZFDB has sensed an error while trying to initialize your printer.  The
  perceived error may or may not be real.  The most common problem here is
  forgetting to turn on the printer.   The second most common
  problem is that the printer is off-line.  If you are fairly sure that
  everything is all right with your printer, then tell EZFDB to NOT abandon
  printing (Ignore) and to try printing anyway.  If there really is an
  error/problem in your system, then it may lock up when you print anyway!

  Technical problem description:

  Interupt 24 (Abort, Retry, Ignore) checking has been vectored thru the
  EZFDB code disabling that message.  The result of an interrupt call
  indicates that there is a serious printer problem in your system.  You will
  no longer have the option to abort thru the Int 24 handler.  If you choose
  to proceed  with printing, ALL further error messages will be disabled.
  This will cause one of three things to happen.  One - if there is no
  problem, then printing will work as normal.  Two - you may be able to
  "print thru" the error with EZFDB continually ignoring the errors (nothing
  to the printer).  Three - your system locks up forever, there really is
  a serious problem!
#717#

  Did you press one of the keyboard keys?
  That is the signal to EZ-Forms DataBase that you would like to
  abandon printing.

  If you pressed a key by accident and would like to continue printing,
  answer N for no, you don't want to abandon printing.
  Otherwise, press Y for yes to abandon printing.
#720#

  The "Status" on the left reflects the selected options for printing. These
  options can be changed by pressing the key shown under "Select" heading.

  Some combinations of the options are not valid.  That is why some of the
  selected options under "Status" switch their condition.  For example,
  when you press 8 for 8 lines per vertical inch - the 6 will be deleted
  from the "Status" area.  You can't have both 6 and 8 lines per inch
  selected at the same time.

  Many printers do not support the full range of options shown.  A summary 
  of printer capability by driver type is shown below.

  Driver Types           Options NOT Supported
  
  A, B . . . . . . . . . . 6, 8, S, V, F, U
  F. . . . . . . . . . . . S, V, F, U
  E, I, J, K . . . . . . . U
  C, D, G, 1, 2, 3, 4. . . F, U
  H  . . . . . . . . . . . 6, 8, S, V, F

  NOTE: Not all 24 pin printers support the Double Tall attribute.
#721#

  To change the default printer type, use the Config command of
  EZ-Forms DataBase located in the main menu.  Don't forget to tell
  EZ-Forms DataBase to retain the new printer type.

  Filling out Pre-printed Forms
  

  EZ-Forms DataBase has a Clear Forms Overlay selection on this menu, which
  allows you to easily use most preprinted forms.  To use this feature,
  first create a form to act as the template.  Make sure that all the
  fields match or align with those on your preprinted form.  When you go to
  print, select C for Clear Forms Overlay.  This will ensure only the
  unprotected area (the form fields) will be printed.  The form outline is
  not printed.
#725#

  Orientation ONLY applies to HP LaserJet drivers type E, I, J and K.

  EZ-Forms DataBase allows you to print your form in the landscape (sideways)
  orientation if you are using an HP LaserJet with one of the LaserJet
  drivers.  For driver types E and K, EZFDB will download the landscape fonts
  (they have a .sfl extension) and use them for printing.  Please ensure the
  landscape fonts are in your default directory.

  You must also have a landscape version of your print macros.  The print
  macros have an L or P as the last letter of the macro name to denote the
  orientation in which they were created, and when EZFDB should use them.

  Examples: macro01p.hpm (portrait) and macro01l.hpm (landscape)

  When using printer driver type H, the orientation will automatically match
  the orientation of the font that is downloaded.
#730#

  You  are being asked to input in HEX, the byte you would like to enter  at
  this location.   Don't forget the length byte has to contain the number of
  characters you want to send to the printer.  The length byte doesn't count
  against the total so the maximum is 18 (24 in decimal).

  These codes are sent to the printer during printing.
#735#

  EZ-Forms DataBase allows you to download custom fonts to your printer
  before printing a form.

  Steps in the process:
  
  1. You select any font other than 0.  For example, Font 1.
  2. Tell EZFDB to print.
  3. EZFDB will run a DOS shell to execute FONT1.BAT (place the commands
     for downloading your font in FONT1.BAT).
  4. For landscape printing, specify a landscape font.
  5. After FONT1.BAT executes, normal printing of your form will take place.

  The batch file's name is built up of 'FONT' plus the 'font number you
  select' with Print Setup option U, plus '.BAT'.

  Example:  You select font 27, then EZFDB will execute FONT27.BAT before
            printing your form.
#740#

  This option refers to the actual number of lines on the paper in your
  printer.  Normally a 8 1/2 by 11 inch sheet of paper using 6 lines per inch
  contains 66 lines (6x11=66) or 88 lines using 8 lines per inch (8x11=88).

  EZ-Forms DataBase will print blank lines at the end of your form to advance
  the paper to the top of the next page.  Examples:

  Form length       L setting        Additional line feeds
                 
      64               66                     2
      80               80                     0

  Formula for additional line feeds (ALF):   ALF = Form length - L setting.
  If ALF is 0 or negative, no additional line feeds will be printed.

  A few printers may require "tweeking" of these numbers to compensate for
  nonstandard paper or unusual print size.

  The default minimum lines per page setting is the length of your form.
  The maximum is set to the maximum lines supported by EZFDB (999 lines max).
#745#

  EZ-Forms DataBase allows you to print more than one copy at a time.  Enter
  the number of copies desired at the prompt.

  Please ensure you have the "lines per page" option set for the correct
  value to advance your printer after printing a form to the top of the next
  page.  The default value will work for most printers.  A few printers may
  require the number of lines under "lines per page" option to be modified.

  You may abandon the printing of multiple copies just like a single copy.
  By pressing a key on your keyboard you can signal EZFDB to give you
  this option.  If selected, all further copies will be abandoned.

  EZ-Forms allows you to store the print attributes into a form.  During
  printing, these attributes are used.  The attributes include: the number
  of copies, whether to compress the printed form, etc.
#770#

  EZ-Forms DataBase allows you to customize the name of the printer and user
  defined print functions/attributes.  When you choose a basic printer type
  (under Use Predefined), EZFDB loads a generic set of text labels.  As you
  customize the printer driver, you should modify these names to document
  the changes.  Example: If you customize user function 4 to switch your
  printer into double high, then install the user function 4 name to say
  "Double High Character".

  Use the modify printer driver option to modify the command codes sent to
  your printer when a user defined function is attached to a character.
#775#

  This  very  confusing  screen  shows you the codes contained  in  the  user
  configurable printer command strings.   These strings control many  of  the
  operations during printing.  See the modify option on the printer selection
  menu for a breakdown of what each command string does.

  The format for the information is:

  Location:      1                         2          3-26
  What it is:    [Command string number]   [length]   [printer commands]
  Number base:    (in decimal)              (in hex)   (in hex)

  The first byte of the command tells EZ-Forms DataBase how many of the
  possible 24 bytes to send to the printer.

  Hex (base 16) was chosen for the commands to reduce the display space  and
  to allow more commands per string  (example: 255 is hex FF).
#800#

  Print - Multiple will print all records that match the given selection
  criteria, using the current form.  The first dialog box is very similar
  to the Query command's.

  For each matching record, the form is filled out and printed.  The next
  form will be printed immediately after the previous one.

  If you answer 'Y' to the 'Break form across page?' question, a form that
  appears at the end of a page may have its last part printed on the
  beginning of the next page.  A 'N' answer will cause the form to be
  printed on the new page if all of it can't fit in the remainder of the
  current page.  If the form itself is larger than a page, it will be broken
  across a page boundary, but each form will start on a new page.

  When a Window field or a Memo field is printed, only the first part of its
  data will appear on the form.
#810#

  Print - Single will print the current record, and then move the paper in
  the printer to the top of a new page.

  Be sure to have your printer aligned to the top of the first page before
  printing.
#820#

  Print - Labels will print all records that match the given selection
  criteria, using an alternate form.  This command differs from Print -
  Multiple by being able to print forms 1, 2, or 3, etc. accross, and remove
  multiple blanks between fields (auto label spacing) and lines.  This allows
  use of 2x, 3x, or 4x, etc. labels and laser printer label sheets.  With
  label spacing, labels look more natural.

  Label Spacing
  

  The width of fields on a form are fixed, but sometimes the data within
  them is not.  This can lead to an unnatural-looking label.  For example,
  consider 2 fields on the same line, for first and last name, each 20
  characters wide.  Without label printing, the label would look like:

  DAWN                DAVIS

  12212 Pasadena Ct.

  Pasadena,           CA 99999
#821#

  A label looks more natural with automatic label spacing and blank line
  removal, thereby bringing all information close together, like:

  DAWN DAVIS
  12212 Pasadena Ct.
  Pasadena, CA 99999

  With label spacing, both protected (~) and non-protected extra blank spaces
  are considered blank and are candidates for removal.  Automatic Label
  Spacing only makes sense when the start of a field is not significant.  To
  prevent a field from being moved, simply place a non-blank, protected
  character in front of it, in the form.  To prevent a blank line from being
  moved, simply place a non-blank, protected character on that line, in the
  the form.

  After printing, the current form is automatically reloaded.

  Be sure to have your printer aligned to the top of the first label before
  printing.
#822#

  Limitations on Label Size
  

  For processing while printing labels, EZ-Forms DataBase utilizes unused
  portions of the maximum form area.  The size of this maximum form area is
  defined by the maximum form row and column numbers in the Config - Memory
  dialog box.  This imposes some limitations on the size of a label and how
  many can be printed across.

   The maximum number of labels that can be printed across, is equal to
    the maximum form width divided by the current form width.  For a
    typical label of 40 columns in width, a maximum form width of 132
    columns will allow for printing 3 labels accross.

   A label form can be no taller (number of rows) than half the maximum
    form area height.  This is rarely a problem, and only becomes a
    consideration when the label has more than 66 rows.

  For example, when the form area is set to 248 columns by 132 lines, a 40
  column by 6 line label can be printed up to 6 across.
#830#

  Print - Alternate will print all records that match the given selection
  criteria, using an alternate form.  First select the alternate form, then
  enter the selection criteria.  After printing, the current form is
  automatically reloaded.

  For each matching record, the form is filled out and printed.  The next
  form will be printed immediately after the previous one.

  If you answer 'Y' to the 'Break form across page?' question, a form that
  appears at the end of a page may have its last part printed on the
  beginning of the next page.  A 'N' answer will cause the form to be
  printed on the new page if all of it can't fit in the remainder of the
  current page.  If the form itself is larger than a page, it will be broken
  across a page boundary, but each form will start on a new page.

  When a Window field or a Memo field is printed, only the first part of its
  data will appear on the form.
#840#

  A report is a detailed listing of some or all of a database.  Sometimes
  this can be accomplished by printing the main form for each record with
  Print-Multiple, or an alternate form with Print-Alternate, or an alternate
  form used as a label with Print-Labels.  A report is used to print page
  titles, page headers, column titles, etc.  Similar to labels, an
  alternate form called a "report form" defines the report layout.  Before
  creating a new report, you must first create a new form to be used as the
  report form.  If you have not done so already, exit this command and run
  Form-New to create a report form first.

   A report form is usually the size of a printed page, and contains a page
    header, detail and footer to use for the report.  It is very similar to
    any other alternate form, but the fields on the form must group together
    to form a detail section, which is then repeated throughout the form.

   The detail section is assumed to start on the first line that contains a
    field, and to end on the last line that contains a field.  Blank lines
    can be added between detail instances.

   The portion of the report form above the detail section is the page
    header.
#841#

   The non-blank (protected) portion of the form below the detail section is
    the page footer.  To allow border printing throughout the report,
    footer start line can be specified.

   Any one of the indexes created for this database can be used to control
    record ordering.

   A selection criteria expression can select which records to print.

   All of the above information is stored into a report file, which has a
    .rpt extension.  The next time you print a report, you simply select this
    report file.

  The following diagram represents a general report form, divided into all
  possible sections.  Header and footer are optional.
#842#

  Ŀ
       Header       Can contain text, graphics, or even be empty.
  Ĵ    NO FIELDS.
       Detail       Must contain at least one field. Can also contain
  Ĵ    text, graphics, blank lines, etc.
       Detail      
      repeated      This area must be completely filled with protected
        here           blanks (tildes, ~).  It must be large enough to hold
                       at least one more detail section.
  Ĵ
       Footer       Similar to header. NO FIELDS.
  

  To print page number, date and time, a series of repeating characters is
  placed into the header or footer at the desired position.

  PPP      - page number  (3 char sequence minimum, maximum 10)
  DDDDDDDD - current date (8 char sequence required)
  TTTTTTTT - current time (8 char sequence required)
#843#

  EZ-Forms DataBase will recognize any of the above sequences, and replace it
  with the appropriate information at report printing time.  For page number,
  a minimum of 3 characters in a row is required, with no intervening
  characters.  Date and time require 8 characters in a row.  Date and time
  can occur more than once, and will be the same throughout the report.  Page
  number can only occur once.

  To define a new report, first create a report form using the above
  guidelines.  Then select the Print-Report command, which also allows you to
  edit and/or print an existing report.  EZFDB guides you through report
  creation, editing and printing.  The end result is simply the printed
  report form, with as many records as can be printed in the detail areas.

  EZFDB comes with an example report called CITIES.RPT.  This is a report of
  US cities, listed alphabetically by name, using data from the CITIES
  database.  The report form is CITIESRP.FRM.  To help clarify the above
  concepts, first open the CITIES database, then open CITIESRP.FRM as an
  alternate form, without closing the database.  Now view the records via
  this report form to get a feel for what a report form should look like.
  Then re-open the original CITIES form, and print the CITIES report.
#850#

  Print - Fields will print a report of all the field definitions for the
  current database.  Only simple ASCII characters are sent to the printer.

  The report can serve as documentation of your database structure.  It can
  also be a reference for when you are modifying the form, creating an
  alternate form, or rebuilding the database.
#860#

  Print - Preload is only available when you have the optional EZX HP
  LaserJet Fonts and Graphics Support Pack (HPLJFGSP) loaded, and you are
  using a LaserJet compatible printer with printer driver type E or K, and
  your printer has enough memory.

  Normally, when printing 1 or more forms, the soft fonts and graphic images
  are sent to the printer, followed by the form and the filled-in fields.
  Whenever you print a relatively small number of forms at a time, you must
  wait for all of this to be sent to your printer, each time you print.

  Print - Preload will send the soft fonts, graphic images and form to your
  LaserJet printer, and set it all up as an Automatic Overly Macro.  This
  means that whenever you print a form, none of this has to be re-sent.
  Only the information in the filled-in fields has to be sent to the printer.
  This can tremendously speed up the printing of even complex forms.
#861#

  NOTES:

  1) When the form length is greater than the page length, i.e., the form
     is comprised of multiple pages, then the form is not sent during
     preload, but sent during every print.  This is because a LaserJet
     Automatic Background Macro is limited to 1 page in size.

  2) When running Preload on a form and then starting printing with an
     alternate form, EZFDB will ask if the printer should be unloaded.
     Usually the answer to this question is yes, but if the alternate form is
     identical, you could say no.  This prevents the original form from being
     printed on top of your alternate one, if its different.  Also, run
     Print - Preload again after loading a new database or form.
#870#

  Print - Unload is only available when you have the optional EZX HP
  LaserJet Fonts and Graphics Support Pack (HPLJFGSP) loaded, and you are
  using a LaserJet compatible printer with printer driver type E or K, and
  your printer has enough memory.

  This command simply sends a reset to the printer, which unloads anything
  that was previously loaded with Print - Preload.  See Print - Preload for
  complete details.
#900#

  Macros allow you to record a keystroke sequence for later playback.
  EZ-Forms DataBase maintains a general buffer to record your keystrokes.
  Once you have recorded a keystroke sequence, you can write it to a disk
  file for later playback.  Over 100 macro keys are supported.  The shifted
  function keys 1 thru 10 are  supported directly  (just press one of them).
  The other macros are available by  pressing Control O then the second key.
  Be sure to take advantage of the descriptive text label for your macro
  when you write it to disk.

  Use Ctrl Q to flush the keyboard buffer if your macro gets out of control.

  Macros can contain virtually any keystroke that you can enter from the
  keyboard.  Here are some suggestions to make using macros easier.

  1.  If you start a macro from the main menu, use the numeric keypad Home
      key to reset the menu to a known starting position.

  2.  Be aware of the keystroke limit.  As you enter each keystroke you will
      see a small box in the center of your screen that shows which keystroke
      you are entering and the maximum allowable keystrokes.
#901#

  3.  You can execute a keyboard macro at any point.  However, the macro
      attached to  Shift+F10 will automatically execute  when you start
      running EZ-Forms DataBase, or when you load a new macro file.


  Once you have recorded a macro, write it to disk.  This allows you to
  select the macro's key and give it a description.  This will be written to
  your current macro file.  You can choose any macro file name.  This allows
  you to have multiple sets of macros defined.  At startup, EZ-Forms DataBase
  will automatically load the macro file EZFDB.MAC if it exists on the
  default drive and directory.  You will probably want your most useful set
  of macros as the default.  To specify a name other than EZFDB.MAC for the
  macros at program startup, use the command line 'EZFDB /m=macrofile'.

  Hint:  Macros emulate you at the keyboard.  As you record a macro, try to
         start at a known position and enter the keystrokes just as you
         would like the macro to be played back.  Don't try to design a macro
         in one area of the program and play it back in another area. It may
         work but the macro will be harder to visualize and enter.
#910#

  EZ-Forms DataBase allows the default macro file name to be changed from
  within the program.  Normally the name EZFDB.MAC is used.  To tell EZFDB
  to default to another macro file at program load time, use the command
  line:  EZFDB /m=MyMacros.MAC

  You are being asked for the name of the macro file to load.  You may have
  several macro files saved under different names.

  Make sure that the macro file is really an EZ-Forms DataBase macro file!

  Remember you can always press ESC if you got into this area by accident.
#920#

  Sorting large macro files may take a while.  We have gone to great lengths
  to minimize the requirement for additional disk space during the sorting
  process.  The macro file can be over 200K in size.  Creating and managing
  backup files would require a lot of extra program code and disk space.  We
  have opted for a disk based sort that sorts the macro file without
  creating a backup.  If you would like an unsorted backup, copy the macro
  file to another name prior to sorting it.

  The sorting may take a while for a large macro file.  Please be patient.
#930#

  Each of the over 100 macros can have a descriptive text label.  This
  description serves as a reminder of its function.  As you create macros,
  use a long description of the macro's function.  You will find the
  description extremely important both to yourself and to other people who
  also use the macros you create.

  The macro file is built as you define the macros.  This ensures the macro
  file is as small as possible, but the macros may be out of order.  Use the
  Change Macro Order option to sort the macros back into key order.  The
  maximum file size with all macros defined is over 200K (102 macros with
  each having 1000 keystrokes of two bytes each - 102*1000*2 plus overhead).

  We have defined S+F10 to be the "Autostart" keyboard macro since it will
  be automatically executed when you run EZ-Forms DataBase.
#960#

  EZ-Forms DataBase allows you to write the defined macros to disk for later
  use.  If you would like for your macros to automatically load, then use
  the default name EZFDB.MAC, or use the '/m' command line switch.

  EZ-Forms DataBase is asking you for two pieces of information before it
  saves your macros to disk.  The first is which key you want to use to
  call up the macro at a future time.   The second piece of information is
  the textual label or comment that will be shown when you ask to see all
  the recorded macros.  This piece of information is optional, but its use is
  strongly recommended, since at a future time you may need to figure out
  what the macro is supposed to do.

  You may have multiple sets of macro commands defined.  Save each set under
  a different file name and use the Load Macro command to read it from disk
  or specify a  different macro file when you call up EZ-Forms DataBase.

  Example:  EZFDB /m=MyMacros.MAC
#970#

  A file error occured while trying to save your macro to a disk file.  The
  macro file grows as you add new macros to it.  If you redefine an existing
  macro, the space within the macro file is reused.

  When a file error occurs, it is typically due to one of the following:

  1.  You are out of hard disk space.
  2.  You specified an invalid filename or path for the macro file.
  3.  There is a bad area on your hard disk that can't be written to.

  If possible, remedy the problem and retry the operation.
#1000#

 EZ-Forms DataBase ran out of memory while trying to perform the requested
 operation.  Generally this will only happen if you have limited free system
 memory (RAM).  It can also happen when the form memory is very large, or
 there are too many fields in your form and/or database.

 For certain commands, EZFDB will ask your computer for memory to perform the
 requested operation only when you use the command.  That way, the drain on
 your system resources is kept to a minimum.  However, if you have limited
 free memory, you may see this message.

 Possible corrective measures:

 1.  Limit the number of memory resident programs you load.
 2.  Upgrade your system RAM if you have less than 640K.
 3.  Minimize form memory with the Config - Memory command.
 4.  Try to eliminate some fields, or make some fields shorter.
 5.  Exit the program, restart and then try the same operation again.
#1001#

  EZ-Forms DataBase could not run the external program.

  If swapping was selected, make sure that the SWAP.COM program is in your
  current directory or accessible via the DOS PATH variable.  There must be
  at least 5K DOS memory available just to run SWAP.  Also make sure that
  your swap drive has sufficient available space (up to 620K), unless there
  is sufficient available EMS memory and you choose to use it.  If swapping
  was not selected, make sure that sufficient memory remains to run your
  program.  To use the DOS Shell command (Ctrl X), the COMMAND.COM file must
  be accessible via the DOS PATH variable, which defaults to the root
  directory of the boot drive.

  If you're trying to edit a memo field, make sure that MEMO.COM or MEMO.EXE
  is in your current directory or accessible via the DOS PATH variable.
  If you want to use a batch file for your own memo editor, the file must
  be called MEMO.BAT and must reside in the current directory.

  If you still get this error after following the above advice, exit EZFDB
  and verify that you can run the command or batch file directly from DOS.
#1002#

  This warning should only occur in the multi-user (network) version of
  EZ-Forms DataBase.

  Another user on the network is using one or more of the same files that
  you are using.  Normally this is not a problem since EZFDB automatically
  arbitrates simultaneous file accesses via your LAN software.  However,
  there are some rare instances where temporary hang-ups can occur.
#1100#

  Config - Retain will save all configuration options to a file, and
  activate them.  The configuration options consist of all the options that
  can be changed via any item under the Config pulldown menu.  The file
  written here can be subsequently loaded by the Config - Install command.
  The configuration file can have any name or extension.

  NOTE: None of the configuration option changes will be in effect until
        the options are retained (saved to a file).

  Example: C:\EZX\EZX.CNF
           ƾ;; ;
                    Extension (optional, but recommended)
                File name
             Directory name
            Drive name

  A file or directory name consists of up to 8 characters, and the extension
  can be up to 3 characters.  The following characters CANNOT be used in
  file or directory names: ."/\[]:|<>+=;,
#1110#
   
  This menu allows you to change all the colors used in EZFDB.  To change
  a default color - first use the up or down arrow key to select the color,
  then type in the new color.  When you have changed all the colors, press
  Ctrl D to display these colors in a sample window.  As with all
  configuration options, these changes will not be used until you choose the
  Retain option on the main menu.  This allows you to experiment with the
  configuration options without losing your original defaults.

  Please keep in mind the foreground text colors can be 0-15, the
  background 0-7.  If you choose a text color the same as a background color,
  then the text will disappear.  You may notice some of your installed color
  combinations result in invisible lines  on  the  Ctrl D  popup window.
  Please be careful not to choose this color for one of your text colors!!

  Note: For many of the EZFDB configurable options and user inputs, you will
  see a prompt containing the characters .  If you count the number
  of 's you will know the maximum number of characters that can be
  entered.  Also, Escape is used throughout EZFDB to signal "I want out".
  Press Enter, up arrow, down arrow, or whatever is asked for, to enter the
  desired value.  Escape will throw away any immediate changes and leave
  the current menu.
#1111#

  Please note that the background color (0-7) is one digit long and the
  foreground color (0-15) is two digits long.   That is why you will see the
  input prompt (the 's) change it's width as you go between the colors.

#1115#

  This screen shows the possible combinations of colors in EZFDB.  The
  top set (Main EZ-Forms DataBase colors) shows you what the various menus
  will look like.  The Form colors are those used to display a form.
  These colors will show you what underline, block, protected, etc.
  will look like.

  If you are using a non-IBM display adapter, you may have to "play" with the
  colors to get a pleasing combination.  EZFDB defaults to colors that
  work well with the IBM CGA, EGA, VGA, Monochrome boards, and boards that
  are fully compatible with these.

  On some monochrome display adapter  clones  you may need to alter a
  foreground text color to get the background to change intensity.

  The default combination of colors will work on any 100% IBM PC compatible
  display adapter!
#1120#

  Config - Printer
#1130#

  Config - Files allows you to configure some file-related options.

  1) Database pathname - this is what directory comes up as the default in
     any filename dialog box.
  2) dBASE IV Memo fields (Y/N) - this specifies whether you want the Memo
     files to be compatible with the new dBASE IV format or not.  If you
     enter N, the Memo file format will be compatible with dBASE III and
     III+ instead.  The dBASE IV format is preferred.
  3) Include descriptions when listing files (Yes/No/Ask) - database and
     form files can have descriptions (comments) associated with them.
     Whenever form or database file listings are given, any associated
     descriptions can also be shown.  Unfortunately, it takes time to read
     these descriptions from the files.  When a directory contains many
     files, depending on the speed of the system, the descriptions may take
     too long to read.  When this option is set to Yes, descriptions are
     always read and displayed.  When set to Ask, EZFDB will ask if you want
     the descriptions, just before each file listing.  This allows you to
     decide on a case by case basis.
#1140#

  Config - Memory is necessary because of the infamous DOS "640K barrier".
  Thoughtful setup with this menu will allow you to strike a balance between
  memory usage and execution time.  These options must be saved before they
  will take effect.

  1) Max Form Height
  2) Max Form Width

     These select the amount of memory allocated for the maximum allowable
     size form.  Adjusting the maximum height and width in this manner
     allows you some control over EZFDB's memory usage, while maintaining
     quick form access.  The minimum is 64x80.  Maximum height is 999,
     and maximum width is 254, but height times width must be <= 65535.

     Due to memory fragmentation, it sometimes may not be possible to
     increase the maximum form size without reloading EZFDB.

  SWAPPING
     There are two features of EZFDB that don't require it to be in memory
     at the time: memo field edit and shell to DOS.  For these cases, EZFDB
     can be taken out of main memory and placed into either expanded memory
#1141#

     (EMS) or disk.  Approximately up to 600K of space may be needed.  This
     frees up most of the memory originally taken up by EZFDB, which allows
     you to run other programs even if they require a large amount of memory.
     When the function is complete, EZFDB is then restored back into main
     memory.  To use extended memory, set it up as a RAM disk.  The remaining
     options control various aspects of EZFDB's swapping.

  3) Swap EZFDB out of memory before running memo editor (Y/N) - this
     controls the memory made available to the memo editor program.  If yes,
     all of EZFDB will be swapped out before the memo editor program is run.

  4) Swap EZFDB out of memory before running DOS shell (Y/N) - this controls
     the memory made available to the DOS shell.  If yes, all of EZFDB will
     be swapped out before the DOS shell is run.

  CAUTION
     DO NOT run any TSR (Terminate and Stay Resident) programs from the DOS
     shell even if swap is not used.  ALWAYS load TSR's before running EZFDB,
     then watch for potential conflicts.
#1142#

  5) Use Expanded Memory (EMS) for swapping (Y/N) - this controls whether
     or not to use EMS memory for swapping out EZFDB.  If yes, EZFDB will try
     to use EMS first.  If EMS isn't available, or doesn't have enough
     memory, EZFDB will be swapped to disk instead.  If no, disk is always
     used.  EMS V3.2 or newer is required.

  6) Swap drive - this controls which drive is used to contain the swapped
     EZFDB.  EZFDB is swapped to a temporary file called "SWAP.TMP", created
     in the current directory of this drive.  For best performance, use the
     fastest drive that contains sufficient memory (approximately 600K max).
     RAM disks can be used.
#1150#

  Config - Other allows you to change some miscellaneous EZ-Forms DataBase
  options.  These options must be retained (saved to a file) before they
  will take effect.

  1) Use deleted records (Y/N) - this controls whether delete-tagged
     records are used by the program or not.  This affects display and
     multi-record operations such as Revise - Substitute.

  2) Beep on error (Y/N) - this controls the beep given whenever an
     error occurs.

  3) Beep on record save (Y/N) - this controls the beep given whenever a
     record is saved with the F10 function key, or a multi-record operation
     (index creation, purge, substitute, etc.) finishes.

  4) Auto Recalc (Y/N) - this controls automatic calculation done on
     all Field Calculations, at time of record save with the F10 function
     key. When this is NO, the user must execute a specific command to
     calculate/recalculate.
#1151#

  5) Help level (1=least help, to 4=most help) - As you learn the program,
     you can change this to a smaller number, which will eliminate some
     helpful messages that may no longer be necessary.

  6) Screen blank time (in minutes, 0=never) - when your monitor displays
     text that doesn't change for long periods of time, some portions of the
     screen may be damaged by "burn-in".  To guard against this, EZFDB will
     blank the screen whenever the keyboard and mouse are not used for a
     specified period of time - the screen blank time.  A setting of 0 will
     disable the screen protection.

  7) User Date Format - this specifies the display and entry format for all
     Date fields, and the CTOD function.  Date fields are always stored in
     the same format, so changing the User Data Format will not affect how
     dates are stored.  The User Date Format can be any combination of non-
     alphanumeric symbols and the letters C, Y, M and D.  Any occurrence of
     one of these significant letters will be replaced by its corresponding
     date part.  During data entry, dates must match this format exactly and
     must be valid before acceptance.
#1152#

  For October 1, 1942, the date parts are:

     Letter  Description  Number                          Examples
                         
       C     Century       19                       MM/DD/YY -> 10/01/42
       Y     Year          42                       DD-MM-YY -> 01-10-42
       M     Month         10 (Oct)                 YY*MM&DD -> 42*10&01
       D     Day           01                       CCYYMMDD -> 19421001
                                                    MMM,CCYY -> Oct,1942


  8) Network: Display records even when locked (Y/N) - this controls
     record locking during display only.  Database records are locked
     before a modification is made, and unlocked after the modification is
     complete.  During the locked time, and with this option set to No, other
     users are prevented from even looking at the record.  Users that are
     locked out receive a message indicating the condition.  The only option
     is to either wait for the record to be unlocked, or to abort the current
     operation.  When this option is set to Yes, locked records can be
     displayed, but they still cannot be modified until unlocked.
#1160#

  Config - Install will load a configuration file and activate its contents.
  All parameters setup by the Colors, Printer, Files, Memory and Other
  commands in the Config pulldown menu can be saved into any file by using
  the Config - Retain command.  The configuration file can have any name or
  extension.

  Enter the file name, including the extension (.cnf recommended).  If you
  don't remember exactly what it's called, a list of files will be presented
  whenever you enter just the directory name and leave the filename blank,
  or whenever you enter a wildcard for the file name.  Directory listings
  consist of files in the current directory, then subdirectories in the
  current directory, and then valid drives.  Selecting a file will load it.
  Selecting a subdirectory will show a listing for that subdirectory.
  Selecting a drive will show a listing for the current directory on that
  drive.

  A file or directory name consists of up to 8 characters, plus 3 for an
  extension.  The following characters CANNOT be used in file or directory
  names: ."/\[]:|<>+=;,
#1161#

  Directory names are optional and if left blank, the current directory
  is assumed.  The directory name can contain a drive name, a path name or
  both.  A path name is a list of directories separated by backslash
  characters ('\'), that leads through the directory tree up to the
  directory of interest.

  The default file loaded at program startup is EZFDB.CNF.  To override this
  default, you can enter a different configuration file name as the second
  parameter on the command line.  Here is the effective default command line:

  EZFDB /M=EZFDB.MAC /C=EZFDB.CNF

  The '/M' switch selects the keyboard macro file, and the '/C' switch
  selects the configuration file.  The switches can be specified in any
  order, but multiple switches must be separated by at least one space.
  The file extensions must be specified.
#1170#

  Config - Lock will lock or unlock the form/database revise and create
  functions.  Once locked with a password, the user will not be able to
  run any form or database create/edit/revise functions.  Specifically
  these are:

  Database - New           Form - New           Revise - Fields
  Database - Build         Form - Setup
  Database - Xport         Form - Edit
  Database - Rename        Form - Describe
  Database - Erase
  Database - Describe

  Once locked, the above functions and this help screen are unavailable.

  Be careful!  DON'T forget your password.
#1171#

  Config - Lock.

  This function is only available to your System Administrator.

  Please contact him/her for any further information.
#1200#
  EZFDB supports virtually the entire IBM Extended ASCII Character Set.
  Your choice of what character to chose for borders, lines, boxes, etc.
  just became more complex.  There are four basic graphic line sets or
  palettes to choose from:

  1 Ŀ      2 ͸      3 ķ     4 ͻ
                                                           
    Ĵ        ͵        Ķ       ͹
                                                           
            ;        Ľ       ͼ
                                     reserved
                                                     
                      ;  ;
                                               
                              Printer commands.

  The above boxes show you what the boxes and lines drawn with each palette
  look like.  Below the boxes are some stand-alone characters which can be
  entered from the keyboard.  The shaded block characters in palette 1 are
  useful in designing logos or just to emphasize a section of a form.  The
  Greek characters in palettes 2 and 3 can be used to send commands to your
  printer during printing.
#1210#

  Press G to start the graphics drawing. The default is N to prevent errors.
  You are now in a full screen graphics walk-around mode.   Depending on the
  mode selected (see the characters in the lower right hand and upper  right
  corner of the screen) different things will happen.  Options are:

     G   Graphics - A full screen walk-around mode where you use the  cursor
                    keys to draw figures.  Whatever character is needed will
                    be substituted to make the lines solid.
     N   Neutral  - You can walk around without affecting any characters.
     E   Erase    - Erase the character under where you move the cursor.
     D   Drag     - This mode  will  drag/repeat  the  character  under  the
                    cursor as you move it around.   Use N  to  position  the
                    cursor over the character to be repeated before using D.
     1-4 Palette  - Shorthand method to select the default graphics palette.
     P   Pick     - Pick a character from a table of supported characters.

  Press either G, N, E, D, 1-4, or P to select the function. The active mode
  is shown in the lower right corner of the screen.
  
  Note:  P is valid only in modes D or N.   In the other modes the  inserted
  character is erased or overwritten and will not remain in your form.
#1211#

  Set the graphics palette with Alt L.  You can choose single line graphics,
  double line graphics,  or a combination.    As a short hand  method, press
  1-4.   A  sample character based on the palette selected  will  appear  in
  upper right corner of your screen.  Esc will return you to the editor.
#1220#

  EZ-Forms DataBase will move the text in the marked block to the left side,
  to the right side, or center it within the block.  If you would like an
  entire section of text centered, mark the block first then call up the
  justify text command.  When a multi-line block is marked, you will be
  asked whether you would like to justify all the lines in the block.
#1230#

  Several of the EZ-Forms DataBase commands support Extended ASCII symbols
  not found on your keyboard.  This screen lists all supported characters
  and should make it easier for you to select them.

  Directions for use:

  Use the numeric keypad cursor keys to position the box over the desired
  character and press Enter.

  You can also move the box to a desired character by pressing the
  corresponding keyboard key, if any.
#1240#

  The block attribute erase  command  erases/subtracts  the  attributes  you
  specify  at the prompt  from each of the characters in the  marked  block.
  This is a selective erase, not a clearing of all character attributes.  So
  if something is bold (B) and underline (U),  and you specify  underline at
  the prompt, then the character will become just bold.

  Character meanings:
  
  U  Underline
  B  Bold (HP LaserJet printer type E and K - background shading)
  1  User defined function 1.   \
  2  User defined function 2.    \  Use the Alt I command to see
  3  User defined function 3.    /  the configured names for these.
  4  User defined function 4.   /
  F  Font select for HP LaserJet using printer type E or K, and HPLJFGSP.
  P  Pick a character from all possible characters.
  ~  Remove any field markers in the marked block.

  The bottom line of the editor screen  shows the  character  attributes  as
  you move the cursor over a character.
#1250#

  The block attribute add command  adds the  attributes you specify  at  the
  prompt to each of the characters  in the marked block.   This  is  an  add
  function, NOT a replace function. If something is already bold (B) and you
  specify underline (U), then it will become bold and underline.

  Character meanings:
  
  U  Underline
  B  Bold (HP LaserJet printer type E and K - background shading)
  1  User defined function 1.   \
  2  User defined function 2.    \  Use the Alt I command to see
  3  User defined function 3.    /  the configured names for these.
  4  User defined function 4.   /
  F  Font select for HP LaserJet using printer type E or K, and HPLJFGSP.
  P  Pick a character from all possible characters.
  ~  Add field markers to blank locations in the marked block.

  The bottom line of the editor screen  shows the  character  attributes  as
  you move the cursor over a character.  Please note that the operations are
  performed in the order you enter them.  If you specify ~ then p, then your
  picked character will never show up in the form because ~s will  be  added
  first and there won't be any blank areas to insert your picked character.
#1260#

  You can draw a box around the inside border of the marked block using this
  command.  The default line drawing character palette (use Alt L to select)
  will be used.  The inside characters all the around the marked block  will
  be replaced by the graphic lines.

  Boxes may be drawn in almost any size and with a variety of border styles.
#1270#

  Want to read a text file into an EZ-Forms form?  This command allows you
  to load text created under almost any other software program.  The only
  requirement is that the file must contain only ASCII characters.

  If you have a block marked, you will be given the option to load the file
  into only the marked section of your form.
#1280#

  This screen provides basic information on the status of the EZ-Forms
  Editor, your printer defaults, etc.

  Under the "Current printer related defaults" you will find the user
  function names.  If you take a close look at the bottom of the editor
  screen, you will notice a character attribute area.  When you see a 1, 2,
  3, or 4 pop up, this is what it is referring to.  The user functions are
  defined to contain specific information for each printer and can be
  customized by the user.  See the printer configuration area for more
  details.

  HP LaserJet specific information is listed on the next page.
#1281#
  Fonts  are  specified  for the HP LaserJet  using  printer type  'E'  thru
  combinations of user defined functions attached to  each character.  Other
  sections of the documentation give details on font naming conventions.

   Font    Attributes         How the font is selected
       
  Font 0    pub....    The default, no user defined functions.
  Font 1    pub1...    Selected with Alt1.
  Font 2    pub.2..    Selected with Alt2.
  Font 3    pub..3.    Selected with Alt3.
  Font 4    pub...4    Selected with Alt4.
  Font 5    pub1..4    Selected with Alt1+4.
  Font 6    pub.2.4    Selected with Alt2+4.
  Font 7    pub..34    Selected with Alt3+4.
  Font 8    pub1.34    Selected with Alt1+3+4.
  Font 9    pub.234    Selected with Alt2+3+4.

  Support for mutiple fonts requires:

  1. An HP LaserJet Plus, HP LaserJet Series II, III, 4 or compatible
  2. The EZX LaserJet Fonts and Graphics Support Pack ver 2.0 or greater
  3. Configuration of EZ-Forms DataBase for the HP LaserJet - driver E or K
#1290#

  Many of the editing commands have optional prompt messages to provide
  information and serve as a safety catch in case of mistakes.  The extent
  of the user help/interference offered by EZFDB is tied to the message
  level.  The more potentially harmful a command, the lower the message
  level has to be set, for the command's warning/prompt to disappear.

  Examples:

  Command                  Tied to Help/Message level
                    
  Patch form               4 (no message 3 and below)
  Block delete             1 (no message at level 0)
  Various other commands   1-4 (level varies)


  Most of the block operations and some of the other editing commands
  provide this feature.

  The default (unless configured otherwise) is to provide the maximum level
  of user help messages.
#1300#

  EZ-Forms DataBase allows you to set up one auto number field within a form
  that will automatically increment each time the form is used to add a 
  record to a database.  Use this to generate invoice/purchase order numbers
  and control numbers.  Each added record will have a unique number.

  If you need a starting number other than 1, simply type it into the form at
  the auto number position you have selected.  EZ-Forms will use that
  number as the starting point.  When the form is saved, EZ-Forms will
  read the auto number location and update all its pointers to contain your
  new number.

  The auto number will "roll over" from all 9s to 1 when you exceed the
  maximum number for the field.

  Any invalid character (non-numeric) will generate an error and cause the
  auto number to reset to 1.  Example: auto number width is 5, the number
  00A01, contains an invalid character (A) - auto number is reset to 00001.
#1330#


  The clear form option allows you to start again with a clean slate.

  All characters, graphics and attributes are erased.
#1350#

  The large character lookup  allows you to easily create headings in  large
  (8 by 8)  characters.   Simply  type  in the text  and  then  select  what
  character to use for the drawing.   For other size characters, you can use
  the Notepad to move characters from the form 359-HIGH.FRM.

  Play  with this command in a new form to get a feel for how  it  operates.
  This command places a lot of power (and potential for destruction) in your
  hands.

  The  length  of  the allowable input text (shown as s)  depends  on  your
  cursor position within the form and the width of the form.   As  you  move
  the cursor to the left,  there is more space to insert text so the  prompt
  will  get  longer.   Each  of the large characters take  up  eight  normal
  character spaces in both directions.  That means an eighty column form can
  have at most ten large characters on a single line.

  The characters are entered into your form starting at the cursor position.
  They will be inserted with the cursor being the upper left  point  of  the
  8 by 8 character box.
#1360#

  The marked block defines the area for the grid.   All  characters  in  the
  marked block will be erased.   You will be  asked  for  the  vertical  and
  horizontal spacing for the grid.   If  the desired spacing  provides  even
  spacing the grid will come out completely even.   Otherwise  you  will  be
  left with an off size block at the ends.  See the examples below.

  ¿ Ŀ ¿ Ŀ Ŀ ¿
  Ŵ Ĵ Ŵ Ĵ Ĵ 
  Ŵ Ĵ Ŵ Ĵ Ĵ Ŵ
       
  vert 1      vert 1      vert 1      vert 1      vert 1      vert 2
  horz 1      horz 2      horz 3      horz 4      horz 5      horz 1
#1370#

  EZ-Forms DataBase will download to your HP LaserJet+ or compatible the
  fonts that you attach to the characters in your form.  Fonts are specified
  on a character by character basis.  That means you could have ten
  characters in a row on any line, each character with a different font.

  The font sizes listed are the defaults provided with the EZX Publishing
  HP LaserJet Fonts and Graphics Support Pack.  Actual sizes may vary since
  all of the fonts can be modified by the user.  This is accomplished by
  copying a different font to the font name EZ-Forms DataBase uses for that
  font (the downloading to your printer is done at print time).

  Combinations of the user defined functions (Alt1-4) are used to specify
  which font is attached to which character.  We have tried to make the use
  of these combinations as easy as possible.  Please note that even though
  you have to specify the font (0 thru 9) with  up to four different user
  defined functions, the sum of the specific user defined functions is
  always the font number.

  The HP LaserJet supports up to 10 fonts at one time; we have provided full
  support for that maximum.  The HP LaserJet supports up to 32 print macros;
  we have supported 15 print macros thru the Greek characters.
#1371#

  Refer to the On-line Manual from the main menu for additional information
  on HP LaserJet support.  The information is located under the Printing
  section of the On-line Manual.  Font naming conventions, printing
  sequence, plus several other topics are covered.

  The Print - Preload command can speed up printing time by downloading
  the soft fonts, graphics and form only once.  Subsequent printing only
  needs to send the information filled in to the fields.
#1380#

  Erasing the font references from a block involves clearing all the user
  defined functions from the marked block.

  Answer yes if you would like the font references erased/cleared. This will
  default the text back to font 0.
#1390#
  EZ-Forms DataBase allows you to use your computer's system clock to
  obtain the current date and time for use in your form.  If you choose
  either date or time feed then the computer's clock will be checked for
  the current time or date and then inserted at the current cursor position.

  As much of the date or time as will fit will be inserted into the
  available space.  Be careful if you are close to the right margin.

  Date formats: 0 mm/dd/yy   06/15/89  Time formats:   24 hour formats
  (Example      1 mm-dd-yy   06-15-89  (Example      0 hh:mm:ss  13:30:15
   using        2 yy-mm-dd   89-06-15   using        1 hh:mm     13:30
   15 Jun 1989) 3 mmddyy     061589     1:30:15 PM)    12 hour AM/PM formats
                4 yymmdd     890615                  2 hh:mm:ss  01:30:15 PM
                5 dd mmm yy  15 Jun 89               3 hh:mm     01:30 PM
  (Military)    6 Julian     9166 (last digit of year & 001-365 day of year)
                7 dd/mm/yy   15/06/89
                8 dd:mm:yy   15:06:89
                9 ddmmyy     150689
                A yy/mm/dd   89/06/15
                B yy:mm:dd   89:06:15
                C mm:dd:yy   06:15:89
#1400#


  Field markers are used in two ways:
  

  In forms, you insert field markers (the ~ character) to mark areas you
  want protected in the data entry screen.  By filling the unused areas of a
  form with the field markers, you limit the area of the form that can be
  be filled-in later.

  Note: Field markers can be entered and deleted using the keyboard keys.
#1410#

  After  you input the text press Enter to insert it into your form.   Press
  Escape if you want to exit without altering your form.

  The text will be inserted vertically into your form.   The first character
  will be at the current cursor location.  The next character will be on the
  same column but one line down.  Etc.

  If  you  input text longer than the number of lines to the bottom of  your
  form,  inserting will stop at the last line of the  form.

  The length of the prompt using 's will vary depending on the number of
  lines from your current cursor location to the bottom of your form.
#1420#
  EZ-Forms DataBase allows you to easily generate form templates to be used
  with your pre-printed forms.  To do this:

  1.  Answer yes to generate the overlay grid.  Is this form the right size?
  2.  Insert your pre-printed form into your printer.
  3.  Call up the print menu (Alt P) and use the A (alignment dot) to print
      a dot in the corner of your form. Move your form around in the printer
      until the alignment dot prints EXACTLY on a known reference point.
      You may have to turn off the printer and move the printer head to see
      the alignment dot.  Turn the printer back on before trying to print.
  4.  Print the CFO grid.  It will overlay a numbered grid over your form.
  5.  Take note of the areas to be filled in on your pre-printed form and
      the line and column numbers from the CFO grid that overlay them.  At
      this point you have two options:

      a.  Try to design a form that looks like your pre-printed form with
          the blank areas in the correct spots.
      b.  Forget about appearance and use the generated grid with erased
          areas in the correct areas for data entry.

  The next screen briefly describes CFO and gives tips on how to better
  adjust the line and column spacing for CFO.
#1421#

  Using preprinted forms with EZ-Forms DataBase is easy.  To use this
  feature, first create a form to act as the template.  Make sure that all
  the "fields" match or align with those on your preprinted form.  Create a
  new database with this form and enter a test record.  When you print the
  test record, select C for clear forms overlay.  This will ensure only
  the unprotected area (the text you just typed in) will be printed.  The
  form outline is protected, so it doesn't print! Use the Add CFO Grid
  command (Alt Y) for a template.

  Tips for CFO:

  1.  Use the 6 lpi/8 lpi option along with the normal/small text options to
      adjust the vertical and horizontal spacing to match your field areas.
  2.  Make sure your form is sized large enough to generate a grid to cover
      your entire preprinted form.  Use F2 to resize your form prior to
      generating the CFO grid.
#1430#

  Usage for all printer drivers except for the HP LaserJet types E, J & K.

  Greek characters are user defined commands to direct the printer to do
  something.  They are defaulted to spaces to maintain correct form spacing.
  Add any printer commands you want for these special characters.  The first
  time EZ-Forms encounters the symbol in a form it will send the on
  sequence.  The second time it will send the off sequence (they toggle
  states each time used).

#1431#

  Usage for HP LaserJet with printer type E, J or K selected.

  The Greek characters are used to select print macros.  These are predefined
  sequences of commands for your printer that can be triggered by sending a
  simple escape sequence (see your HP LaserJet technical reference manual
  for more info).  These are used for printing things like logos for
  letterhead and for printing someone's signature.  Unlike soft fonts, print
  macros have to be completely designed and defined with a macro ID (01-15)
  prior to you being able to reference them within a form.

  Print macros are selected within a form thru the use of the Greek
  characters.  The first Greek character triggers print macro 01, the second
  Greek character print macro 02, etc.  Use the Alt Z command to access them.
#1440#

  The notepad is basically an enhanced block copy.  You can copy any section
  of text from your form into the notepad.  The text can be pasted into the
  same form at a different location or to another form.

  The cursor location defines where the text will be copied to.

  Use of this command with large blocks of text requires a lot of memory (up
  to 64K). Your computer may not have enough memory to allow this operation.
  If that occurs, you will be given an out of memory message.  This in no
  way alters the functionality of any other portion of EZ-Forms DataBase.
  However, the amount of free memory shown on the bottom of the context
  sensitive help screens and the on-line manual may show 0K free. This means
  EZ-Forms DataBase at one point tried to use all of your RAM. If this
  occurs, try removing some of your memory resident software.  Yes, memory
  resident programs really do decrease your computer's available RAM.
#1450#


  This option gives you an easy way to draw a border around the outer edge
  of your form.  The line will be solid, adding the correct characters at
  the corners of the form.  Whatever was in the first character space around
  the outer edge of the form WILL be overwritten.  The default line drawing
  palette will be used.  Use Alt L to alter the default palette.
#1460#


  This option allows you to remove the entire border from your form with a
  single keystroke.   The first character position around the entire outer
  edge of the form will be erased.
#1470#

  The delete block command deletes all text in the marked block.  Please be
  careful with this command.

  Use the Ctrl V command if you want to alter the default help/message level
  and get rid of these prompts.

  See the copy block (Alt C) and move block (Alt M) commands for other
  options.
#1480#

  The block move command moves the text from the marked block to your current
  cursor location.  Your cursor location will be the upper left corner of
  where the text will be moved.  This is a move (displace -- from one point
  to another) so all the text in the marked block will move.

  See the copy block (Alt C) and delete block (Alt D) commands for other
  options.
#1490#

  The copy block command copies the text from the marked block to your
  current cursor location.  Your cursor will be in the upper left of where
  the text will be copied.  This is a copy (duplicate), so none of the text
  in the marked "source" block will be modified unless the blocks overlap.

  See the move block (Alt M) and delete block (Alt D) commands for other
  options.
#1500#

  The patch function will try to connect any adjoining character graphics
  symbols.  The symbols will be joined with one of the other character
  graphics symbols that best completes the form.  ONLY the immediate four
  characters are scanned (characters left, above, right, and below).  Based
  on these, a character out of            is picked. You MUST have
  already placed a character graphics symbol of some type in the scanned
  character space for it to be considered for patching.  Example:

                                                
                will be patched to   
                                                

  Please note the first example had a character graphics symbol in the area
  and needed to be patched.  If it had not been there, EZ-Forms would
  have left the space blank instead of substituting the intersection symbol.

  EZ-Forms DataBase has to make a lot of assumptions when it is patching a
  form.  Sometimes it won't choose the character you think it should.  This
  command gives you a good start on the patching.  You will sometimes have
  to add the final touches.
#1510#

  EZ-Forms DataBase is not a word processor.  It is a forms manager.  Forms
  are fixed-length, unlike word-processor files.  If you want to insert a
  line, something has to disappear, unless you use F2 to resize and lengthen
  the form first.  EZFDB inserts lines by moving the line the cursor is on
  and every line below, down by one.

  Where does the line go?

  It disappears.
#1520#

  Your form size will not decrease when you delete a line.  The text is just
  moved up one line, overwriting any text on the cursor line.

  If you get tired of seeing these messages, set the default help/message
  level to zero (command is Ctrl V).
#1600#

  The Form Pick List function allows you to specify multiple choice tables
  for specific areas of a form.  While editing a record, Alt F2 brings up
  a list of items.  Select an item, then press Enter to place the item into
  the current field.

  Form Pick List design: First mark a block in the form using the block
  operation commands, Alt S/Alt E.  Press Alt F2 to display the Form Pick
  List menu.  Now you can use the Insert key (Ins) to add more items to this
  Pick List.  The order doesn't matter.  The Pick List is sorted by starting
  line number and starting column number.  When the user displays the Pick
  List, he will only see the items that were defined for the current block.

  Form Pick List items are saved as part of the master form.  There is
  basically no limit to the number of Pick List items you can have.  The
  maximum number is 65,536, assuming sufficient memory exists.

  Initially all Pick List items MUST be entered by marking a block in the
  form.  We chose this method to provide you with a visually-oriented
  Pick List design process.
#1610#

  You are editing one of the Pick List items.  You will see two edit lines.
  The top line allows you to specify the block within the form.  The
  bottom edit line contains the text for the Pick List item.  The two sets
  of numbers for the block are:

  xx,xx - This defines the upper left corner of the rectangle in a line
          column format.

  xx,xx - This is the lower right corner of the rectangle you defined as a
          block. This like the other number pairs are in line,column format.

  After you  edit the string and press enter, EZFDB will try to convert
  your input into four numbers.   These two line,column pairs are all that
  is of importance in your input; the rest of the text will be ignored.

  Notes: You must enter Pick List items through the use of the block
         operation commands.  That way you clearly see where the Pick List
         block is located.   Once you have entered the Pick List item, the
         entry can be edited by pressing Enter and modifying it.

         All text after a ~ is treated as a comment.
#1611#

  Please double check to ensure the block falls within the boundaries of
  your form.  Since you can easily resize a form smaller, we have no way to
  strictly enforce the numbers.

  Any lines or columns which are outside of the form boundaries will be
  ignored when you are filling out the form.  No damage will be done.
  However, the Pick List may not work exactly as you had planned.

  Notes:  We have intentionally set up the Pick List so as to make the
          design process as visual as possible.  Once you become comfortable
          with the Pick List design process, you can take shortcuts.  For
          example, mark a block  and  go to the edit screen.  Press Ins
          several times.  You have just entered Pick List items that can
          easily be edited to provide a Pick List for the area you desire
          without going through the "mark a block" routine.

          All text after a ~ is treated as a comment.
#1620#

  You can enter up to 70 characters to be available while filling out a
  form.  All blocks that overlap the cursor position when the user presses
  Alt F2 in data entry, will be shown in a list box.  The user will be
  able to select the desired Pick List item and press Enter to have it
  inserted into the form at the current cursor location.

  If you would like to have part of the entry be a comment, add a tilde (~)
  at any point in the entry.  Only the portion to the left of the ~ will be
  inserted into the form.  You can also use this to create a comment-only
  Pick List item.

  If you have a fixed length field and would like to have the inserted
  choice clear the entire field, pad the end of your input with spaces.
  This will make all Pick List items the same length.
#1630#

  Highlight one of the displayed items and press Enter.  The highlighted
  item will be inserted into the form at the current cursor location.  You
  can also press the first character to select an item.  Using this
  technique, EZFDB will first search for a case sensitive match then try for
  a case insensitive match.  For example, if you press b for Bob - EZFDB will
  first look for a b then try for a match on either b or B.

  Use the Alt F2 command to see the Pick List items defined for the
  current field.  Note that the list can only be modified when editing the
  master form with Form - Edit.

  All character attributes are left unchanged.  For example, if you had an
  area of the form that was underlined and then inserted an entry from a
  Pick List, the inserted item will also be underlined.

  In a Pick List item, all text after a ~ is considered a comment, and is
  not placed into the form.
#1700#
  The Form Help function allows you to specify up to ten lines of help for
  specific areas of a form.  During data entry, the Alt F1 key brings up a
  help screen, which was designed during form creation/edit.

  Form Help design: First mark a block in the master form using the
  block operation commands, Alt S/Alt E.  Press Alt F1 to bring up the
  help design menu.  Now you can use the Insert key (Ins) to add the
  help entry.  The order doesn't matter.  The Form Help list is sorted by
  starting line number and starting column number.  When you bring up the
  Form Help function, you will see only the first Form Help entry for the
  block that this current cursor location falls within.

  Form Help entries are saved as part of the master form.  There is
  basically no limit to the number of Form Help entries you can have.  The
  maximum number is 65,536 or when your computer runs out of memory.

  Form Help can be up to 10 lines long.  However, during design, only the
  first line is  displayed on the screen design list to show more entries.
  Initially all Form Help entries MUST be entered by marking a block in the
  form.  We chose this method to provide you with a visually-oriented
  Form Help design process.
#1701#

  Please double-check to ensure the block falls within the boundaries of
  your form.  Since you can easily resize a form smaller, we have no way to
  strictly enforce the numbers.

  Any lines or columns  which are outside of the form boundaries will be
  ignored when you are filling out the form.  No damage will be done.
  However, the Form Help may not work exactly as you had planned.

  Notes:  We have intentionally set up the Form Help so as to make the
          design process as visual as possible.  Once you become comfortable
          with the Form Help  design  process you can take shortcuts.
          For example, mark a block and go to the edit screen.  Press Ins
          several times.  You have just entered Form Help entries that can
          easily be edited to provide a Form Help for the area you desire
          without going through the "mark a block" routine.
#1710#

  You are editing one of the Form Help entries.  You will see two sets
  of edit lines.  The top line allows you to specify the block within the
  form.  The bottom edit lines contain the text for the Form Help.  The two
  sets of numbers for the block are:

  xx,xx - This defines the upper left corner of the rectangle in a line
          column format.

  xx,xx - This is the lower right corner of the rectangle you defined as a
          block. This like the other number pairs are in line,column format.

  After you edit the string and press enter, EZFDB will try to convert
  your input into four numbers.  These two line,column pairs are all that
  is of importance in your input; the rest of the text will be ignored.

  Notes: You must enter Form Help entries through the use of the block
         operation commands.  That way you clearly see where the field
         help block is located.  Once you have entered the Form Help entry,
         the entry can be edited by pressing enter and modifying it.  Press
         F10 when done editing.  If you exit by pressing escape without
         pressing enter on the line you are editing, changes will be lost.
#20050#

  EZ-Forms DataBase provides relational database capabilities using forms
  for data entry, printing and report formats.  It can create and edit its
  own forms, as well as use forms created by other EZ-Forms programs.  A
  form field is any horizontally contiguous, non-protected area of a form.
  A database field is one item of data that is part of a larger whole -
  the record.

  An analogy to a database is a file cabinet.  The file cabinet represents
  the database, a file folder represents a database record, and items in the
  file folder represent database fields.  The form represents how these
  items are placed and presented in the file folder.

  Form and database fields are named to provide documentation and placement
  capabilities.  Every field in the form can be named separately from every
  field in the database.  This is the key to flexible forms usage.  The
  first field in the database can be displayed in the fourth field on the
  form by simply naming them the same.  Database fields can be excluded by
  simply not having a form field name that matches that database field.
  Fields are limited to 1000 in count and 256 in width, and total record
  width cannot exceed 32000, depending on available memory.
#20051#

  The first step to filling out forms and working with databases is to
  create a new form or select an existing one.  The Form - Create command
  will guide you through making a new form.  This leads into the form editor,
  which is very similar to the EZ-Forms editor.  The form editor is
  similar to a word processing editor, but with important differences which
  make forms creation a breeze.

  The next step is to create a database from the form you select.  The
  Database - New command will guide you through creation of a new database.
  You can choose an existing form, or even have it create one for you.

  Once created, you can enter records into the database by using the 'Add'
  command in the 'Revise' pull-down menu.

  Refer to other sections of the On-Line Manual for additional information.
  F1 is available to call up help while you are using EZ-Forms DataBase.
#20052#

ͻ
   Manual   Database Form     Revise   View     Index    Print    Config   
ͼ

  The Main Menu options with descriptions are below.

  M   On-Line Manual: This is a manual for EZ-Forms DataBase that you can
      view right on your screen, without leaving the program.

  D   Database:  This option allows you to select from various databases for
      use with EZ-Forms DataBase.  You can choose field characteristics,
      create databases and rebuild databases to a new format.

  F   Form:  This option allows you to select from various form files for
      use with EZ-Forms DataBase.  You can create, edit, set up, view,
      print and describe forms to use with databases.

  R   Revise:  The Revise option allows you to alter the contents of the
      currently selected database.  You can add or edit records directly,
      or add records from another database.
#20053#

  V   View:  With this option, you can look at database records in
      various ways, look at field definitions and status information, find
      records and change what records will display.

  I   Index:  Here you can alter the display order of the records.
      Create and manage multiple indexes for accessing your data in various
      ways.

  P   Print:  This option lets you print a single form or multiple forms.
      When printing multiple forms, you can specify a subset of records to
      print.

  C   Config:  Configuration of the EZ-Forms DataBase program.  Select
      printer, colors and other parameters.  Also allows you to save
      alternate configuration files for later restore.
#20100#

  EZ-Forms DataBase provides relational database capabilities using forms
  for data entry, printing and report formats.  It can create and edit its
  own forms, as well as use forms created by other EZ-Forms programs.

  EZ-Forms DataBase allows you to create and maintain a database, order its
  records, display the records in various ways, and do a multitude of other
  things while providing on-line help every step of the way.  Here are some
  of its possible uses at home or at the office:

        Address Book            Sales Leads             Asset Management
        Invoices                Expenses                Disk Cataloging
        Inventory               Time Logging            Customer List
        Mailing List            Bibliography            Billing

  Example forms and databases for some of the above applications are
  provided on the system diskette.  Feel free to use them as is, learn
  from them, or alter them to better suit your needs.
#20101#

  If you already have a dBASE compatible database, you can use it as-is
  with EZ-Forms DataBase.  You can even have it generate a form for you that
  will match the database.  You can then alter this form to make it more
  suitable.  If your data exists in another format, EZFDB supports 6 file
  types for importing data to an existing database.  These same 6 file types
  are available for export too.

  For data entry by several different departments, you can define alternate
  forms that present the same database fields in different formats better
  suited to the needs of each department.

  For reporting, you can use the same form used for data entry, or you can
  use an alternate form.  EZFDB allows you to print any subset of records
  easily, one record per form.  Forms can be combined on a page or printed
  separately, one per page.  There is even an Alternate Form command that
  will print the current record using a different form without changing the
  installed form.  The label printing command works similarly, but can also
  suppress horizontal and vertical blank spaces for professional looking
  labels.  You can even print labels that use any of the supported print
  attributes like bold, underline, superscript, etc.
#20102#

  EZ-Forms DataBase requires an IBM PC (tm) or compatible with at least
  640K of RAM.  Direct screen memory access is used to provide high speed
  screen updates.  This may make EZ-Forms DataBase unusable on some "not too
  close" IBM PC compatibles.  IBM monochrome, CGA, EGA and VGA graphics
  adapters are known to work with  EZ-Forms DataBase.  If you are using an
  IBM color graphics card with a "green screen", then you must use the DOS
  MODE command on your DOS diskette to default to black and white (type MODE
  BW80 and then run EZ-Forms DataBase).  If you are using a serial printer,
  use the DOS MODE command to route the serial printer to LPT1 (see your DOS
  manual for details).

  To be able to use all of the 12 maximum indexes, the DOS config.sys file
  must specify that at least 20 files can be open at a time.  The config.sys
  command line for 20 files would be:  'FILES = 20'

  It is assumed that you understand DOS and how it deals with files, file
  names and directories.  If you are confused, consult your computer manual
  or your local PC "guru" first, as we can only help you with EZFDB.
#20200#
                        Ŀ
                          Features and Commands  
                             Cross-Reference     
                        

  This is a list of major features, each followed by one or more commands,
  indicating what commands control which features.  Many features are also
  apparent in data entry (Revise - Add, Revise - Edit) but for brevity
  are not listed as such.

  - Unlimited relational lookups/updates (auto fill-in from/to other
    databases) (Revise - Fields)
  - dBASE III, III+ and IV .dbf, .ndx and .dbt file compatibility
  - For network version, network administration features including
    user/password entry, db file/record contention showing user name,
    create/revise function lockout control, network license management
    (ADMIN.EXE)
  - Automatic form creation from existing .dbf files (Database - Open)
  - Quickly create a database from an existing form (Database - New)
  - Full-featured Form Editor, complete with block and character functions,
    and graphics (Form - New, Form - Edit)
#20201#

  - Easily match a database to any existing form (Form - Setup)
  - Fill in pre-printed forms
  - On-line manual and context sensitive help (Manual and F1)
  - Up to 12 indexes per database, continuously updated (Index)
  - Index on any field portion and/or combination (Index - Create)
  - Field Calculations (Revise - Fields)
  - Browse mode for viewing multiple records per screen (View - Browse)
  - Easily modify database format to add/delete fields and change field
    sizes and characteristics (Database - Build)
  - Print stylish reports with headers, footers, page numbers, etc.
    (Print - Report)
  - User defineable Form Help (Form - New, Form - Edit)
  - Form Pick List, provides simple multiple choice during data entry
    (Form - New, Form - Edit)
  - Field Sequence control, for data entry that doesn't follow normal left
    to right, top to bottom order (Form - Setup)
  - Relational Pick List, provides multiple choice selections from another
    database (Revise - Fields)
  - Word Wrap on any set of fields (Form - Setup)
#20202#

  - Quick report feature for on-the-fly record counting, summing and
    averaging (View - Report)
  - Choose which fields show up on a form, and where (Form - Setup)
  - Duplicate record search (Index - Find Dup)
  - Create/revise function lockout for end-user applications
    (Config - Lock for single-user, ADMIN.EXE for network)
  - Unlimited databases per form (Form - Open)
  - Unlimited forms per database (Form - Open)
  - Append records from other .dbf database files (Revise - Merge)
  - Import records from other database file formats (Revise - Import)
  - Export records to other database file formats (Database - Xport)
  - Keyboard (100+) macros, each up to 1000 keystrokes long (Alt =)
  - Memo fields that allow meaningful comments of up to 5K characters
    (Database - New)
  - Field validations: Character, Numeric, Date and Logical
    (Database - New, Revise - Fields)
  - Repeat keys for repetitive data copy, date, time, etc.
    (Revise - Add, Revise - Edit)
  - Window fields for extra-long fields that fit anywhere
    (Form - New, Form - Edit)
#20203#

  - Printing in "single-up" or "multi-up" label mode, with blank line and
    extra horizontal space suppression (Print - Labels)
  - Configurable screen colors (Config - Colors)
  - Supports over 500 dot matrix, ink jet, daisy wheel and laser printers
    (Config - Printer)
#20300#

                                 DATABASES
                                 

  Data is entered into fields on a form, and the fields are stored as a
  record into a database file.  EZ-Forms DataBase (EZFDB) works with dBASE
  compatible (III, III+ and IV) database and Memo files.

  The database file has an extension of '.dbf' and is where the records are
  stored.  Each record can have one or more Memo fields and when it does,
  there is an associated Memo file that has an extension of '.dbt'.  All Memo
  fields for the database are stored in this file.  Whenever a database
  is selected for use with EZFDB, a form (.frm) file, a form/database (.fdb)
  file and a database definitions (.dbr) file is read in by default.  The
  database file has field information in its header so if a form doesn't
  exist, EZFDB can create one for you.  If no database exists, a form is
  required to create a database.  For database selection, all these types of
  files must have the same name, with different extensions.  For example,
  'data' would have:
#20301#

  - database file  (data.dbf)   Stores the actual data
  - memo file      (data.dbt)   Where memo fields are stored
  - database defs  (data.dbr)   Contains Index List, Field Calculations
                                and Relational Pick Lists        
  - form file      (data.frm)   Form for data entry,reports,labels
  - form/db file   (data.fdb)   Contains form field names and options
  - index files    (data.ndx)   Record ordering data (optional)

  Each field of a record has all of the following characteristics:

  Characteristic              Description
    
  Name . . . . . .  Can be up to 10 alphabetic, numeric or '_' characters.
  Type . . . . . .  Character, Numeric, Date, Logical or Memo.
  Width  . . . . .  1 through 256, depending on type.
  Decimals . . . .  For Numeric fields only.  Number of digits after decimal
                    pt., 0 - 15.  Must be at least 2 less than field width.
  Calculation  . .  Any expression that evaluates to the field's type.
#20302#

  The field name is defined by the database creator for documentation and
  data placement purposes.  The name is relatively short, but it should
  always reflect the meaning of the field.  The database field name is
  matched up to a form field name to decide where to place its data on the
  form.

  During data entry, the field name and type is displayed on the bottom
  line.  A help screen is available to explain the permissable entries for
  each field type.

  Examples
  

  FIRST_NAME
  LAST_NAME
  TOTAL
  YR_TO_DATE
  SERIAL_1
#20303#

  The field type indicates what kind of data the field contains.

  Type        Can Contain                                   Width
      
  Character   any ASCII character                           1 - 256
              (letters, numbers, symbols and spaces)

  Numeric     '0' - '9', '.', '-'                           0 - 19
                                                            Decimals 0 - 15

  Date        '0' - '9', '/' in MM/DD/YY format             8

  Logical     'T','t','Y' or 'y' for logical true (.T.),    1
              'F','f','N' or 'n' for logical false (.F.)

  Memo        any ASCII character                           10
              (letters, numbers, symbols and spaces)       (5000 in Memo file)
#20304#

  Memo Fields
  

  A Memo field is very similar to a Character field, except that its data
  is stored in a separate Memo (.dbt) file and each Memo field's length
  can be variable and relatively long.  The advantage is when an occasional
  elaboration is required for a certain record, there are no limits as to how
  long or short the elaboration can be.  Only 10 bytes are used for each Memo
  field in a record to point to the corresponding data in the Memo file.
  When there is data in a Memo field, it is written to the Memo file in 512
  byte blocks.  When there is no data, nothing is written to the Memo file.

  Record and Field Sizes
  

  The field width defines how many characters can be in the field.  The
  field decimals is for Numeric-type fields only, and specifies how many
  digits can appear after the decimal point.
#20305#

  The sum of the widths of all fields (10 for Memo fields) is the record
  length.  The maximum width for a field is 256 characters.  The maximum
  record length is 32000 characters.  The total number of fields in the form
  or database cannot exceed 1000.  Maximums are subject to available
  memory restrictions.

  Field Calculations
  

  Field Calculations are simply expressions which can be defined for any
  field.  The expression is calculated at data entry time if the Auto
  Recalc option is turned on in the Config - Other menu.  Field
  Calculations can include math, alphabetic case conversions, relations,
  conditional relations, and character manipulation.

  Field Calculations are directly associated to a database field, so even
  when multiple forms are used with a single database, all Field Calculations
  will apply even if some database fields are not present on the form.  This
  allows you to use non-displayed fields in your Field Calculations.
#20400#

                                 FORMS
                                 

  A form (.frm) file defines the data entry screen and/or the report format.
  You can read a form with or without prior selection of a database.
  Before a form can work with a database, a form/database (.fdb) file is
  required.  This file defines the form field names and tells EZFDB where to
  place data on the form for printing or screen display.  Reading a different
  form after a database is selected provides an alternate view to that
  database, assuming the form fields are named appropriately.  Various
  commands can create this file.

  EZ-Forms DataBase can create and edit its own forms, as well as use
  forms created by other EZ-Forms programs.  However, math formulas from
  other EZ-Forms are not supported.  Math formulas are instead handled
  by database Field Calculations.

  EZ-Forms DataBase also supports the use of the HP LaserJet Font and
  Graphics Support Pack (HPLJFGSP) for printing.
#20401#

  Form Field Names
  

  The Form - Setup command allows you to enter field names directly
  into the form, so that you can see the form while you're deciding on names.
  If necessary, the Database - New command will automatically create form
  field names from the database field names.

  Field names consist of up to 10 characters with only alphabetic, numeric
  and '_' characters allowed.  Alphabetic case is insignificant.  When
  entering field names in the form, field windowing is used if the field
  is smaller than 10 characters.

  Until the database is created or attached, these field names only apply
  to the form.  When a new database is created from a form that already
  has field names, the database field names are made identical to the form
  field names.  When opening an existing database or loading an alternate
  form while a database is already open (active), the form field names are
  matched up to the database field names, in order to find out where to place
  data on the form.  Any fields without a match always displays blanks, and
  any data entered into these fields will be lost, once the record is saved.
#20402#

  Window Fields and Memo Fields
  

  EZFDB will only place data into a form field when that field's name
  matches a database field name.  Even so, the form field can be longer
  or shorter than the corresponding database field.  When the form field
  is longer, all the data appears but data entry will be limited to the
  length of the database field.  When the form field is shorter, the field
  is automatically windowed.

  A window field is a form field whose data is longer than its field length.
  All data is accessible, it's just not all shown in the form at the same
  time.  During data entry, when the cursor approaches the end of the field,
  the remaining data will automatically scroll leftward into view, and the
  cursor will remain in the field until it reaches the end of the data.
  Similarly, when the cursor approaches the beginning of the field, the
  remaining data will automatically scroll rightward into view, and the
  cursor will remain in the field until it reaches the end of the data.
#20403#

  All Memo fields are automatically Windowed fields since the permissable
  Memo field length (5000) is much longer than the longest possible form
  field.  However, there is one exception: Memo fields cannot be changed
  within the form but the first part is displayed in the form.  An external
  memo editor (MEMO.COM) must be invoked (with Alt E) during data entry to
  edit Memo fields.  This allows for use of the full screen for editing.
  When you exit the editor, the Memo field will be updated.  An intermediate
  file is used for the editing: MMxxxxxx, where xxxxxx is a random number.

  Alternate Forms
  

  The main form is the form that was used to create the database, and/or
  has the same filename as the database.  An alternate form has a different
  filename, and provides an alternate view to a database. It can contain any
  subset of database fields, in any order.  You can create an unlimited
  number of alternate forms, to use with even more than one database.
  Alternate forms can be used for reports, labels, or even for an alternative
  data entry screen.
#20404#

  Alternate Forms as Reports
  

  A report differs from a form because more than one instance (record) of
  information can be presented on a single page.  For example, with a
  database of customers, the data entry form shows only one customer.  To
  print a report that lists customers by name, with many customers per
  page, you will need to create an alternate form that will lay out the
  data for one customer on that page.  When printing a report, each page is
  filled with as many forms as will fit, one per customer.  The report form
  might be 2 lines by 80 columns, and contain the customer's name and phone
  number on the first line, and nothing on the second line.  The blank
  second line provides a blank line between customers on the printout, to
  improve readability.
#20405#


  Alternate Forms as Labels
  

  Labels are very similar to reports.  The only differences pertain to
  creating professional looking labels.  The label printing commands are
  able to respace information on a label, thereby removing extraneous blanks
  and creating a natural appearance.  In addition, the Print - Labels
  command can print labels 1, 2, or 3, etc. accross, for use with Cheshire
  or other similar labelling systems.
#20500#

                               INDEXES
                               

  An index defines the record access order.  Indexes can be defined with
  any combination or parts of fields.  Up to 12 indexes can be retained
  in the database's Index List, assuming the DOS config.sys file contains a
  'FILES=20' command.  The Index List defines all indexes to be used with a
  database.  Only 1 index can be active at any time, but all indexes in
  the Index List are updated whenever records are added or modified.  The
  Index List is stored in the .dbr (database definitions) file.  The index
  that automatically becomes active whenever the database is selected, is
  called the Default Index, and is delineated by an 'D' in the selection box.

  Index Creation
  

  The Index - Create command will create a new index file from a given
  expression.  When complete, the index's file name will be added to the
  Index List.
#20501#

  The expression must be the kind that evaluates to a Character or Numeric
  type.  Logical expressions are only used for selection criteria.  Memo
  fields cannot be used in an index expression.  The result of the expression
  on a given record is the index key for that record.  The result must be of
  proper type and cannot be longer than 100 characters.

  A filename for the index file is required.  If the filename already exists
  in the Index List or in the specified directory, a warning is given before
  the file is overwritten.

  Index files can be setup to allow only unique keys.  In this case, any
  duplicate keys encountered during index creation will halt the creation
  process, with an error, indicating what record contains the duplicate key.
  In addition, duplicate key values will cause an error after adding or
  revising a record.  Records with key values already in the index file
  cannot be entered.

  For example, to create an index that will display records in the order
  indicated by the contents of a field named LAST_NAME, the expression
  would simply be:    LAST_NAME
#20502#

  Index Maintenance
  

  Index - Select allows you to select a new current index from the index
  list.  The current index is the index that controls the order in which
  records are displayed.

  Index files can be added to the Index List by using the Index - Create
  or the Index - Include command.  Index files can be deleted from the list
  by using the Index - Erase command.  The Index - Default command will
  mark a new default index.  If there is an error when initially accessing
  the default index file, no index is automatically active.

  Index - Off turns off all indexed record access.  This allows the records
  to be displayed in chronological order.  When a database is first created,
  no indexes exist for it and the Index List is empty.  All displays show the
  records in chronological order, i.e., the order in which the records were
  entered.  Once the first index is created, it becomes the default index.
  Whenever the database is selected via the Database - Open command, the
  default index is active.  The only way to go back to a chronological index
  is either by using the Index - Erase command to erase the index or by using
#20503#

  the Index - Off command to turn off all indexes.

  Turning off indexed record access is a way to speed up the Find command, 
  since it normally searches using the active index.

  Index Integrity
  

  If all indexes were created with EZFDB, files were never moved or deleted,
  and no disk errors occured during file updates, all would be fine.
  Dream on.  Errors and mistakes will occur.  EZFDB cannot always determine
  when an index file is invalid.  Occasional checks are made where possible.
  Here are some examples of when the index file is partially checked for
  validity:

    1) When a database is initially selected, the database file and all its
       Index List indexes are opened.  When an index file is opened, the
       expression that was used to create the index file is checked against
       the database for valid field names and field types.
#20504#

    2) When an index is active, the index helps determine which record to
       display.  A particular entry in the index file corresponds to a
       record in its database.  If the corresponding record no longer exists
       or it has a different key value, an error will occur.
    3) When a record is accessed by number, the index file is not needed.
       After the record is retreived however, the key is determined and
       found in the index file to setup the next indexed access.  An error
       will occur when the key is not found in the index file, or when the
       key points to a different database record.

  The Index - Rebuild command will rebuild one or all of the index files that
  are in the Index List.  Rebuilding the index files is usually only
  necessary when one of the files has been damaged or the database has been
  modified without the corresponding modification made to the index files.
#20700#

                               PRINTING
                               

  EZ-Forms DataBase supports various laser, dot matrix, and daisy wheel
  printers such as the HP LaserJet, Epson, IBM, and compatibles.  This
  support includes graphics and print attributes such as bold and underline.
  Most other printers can be used with the Generic printer driver, which
  uses plain ASCII instead of graphics characters.  If EZFDB doesn't support
  your printer well-enough, you can edit the codes in one of the built-in
  drivers, and create a customized driver.

  You can print a form from the main menu by using one of the Print options,
  or by pressing Alt P while in a form display mode.

  EZ-Forms DataBase does not require you to define your printer type before
  you can print.  The Generic printer driver is the automatic default.

  Here are some notes to help keep your association with EZ-Forms DataBase
  forms printing on a friendly basis.
#20701#

  1.  Most printers can print 66 lines per page.  To print a full-page form,
      we recommend using 64 lines x 80 columns, which allows a couple of
      extra lines at the end to compensate for paper alignment.  Adjust your
      printer so the first line prints at the VERY top of the page. If you
      don't, some of the forms may spill over onto the next page.

  2.  Some printers have micro-justification (usually controlled by a switch
      inside  the  printer).   Make sure this switch is off before using
      EZ-Forms DataBase (usually this means turning off the switch AND
      turning the printer off and back on).  If your printer uses micro-
      justification, then the right border of the printed form will NOT line
      up vertically.

  3.  If you do not have an Epson, IBM, or LaserJet or compatible, then you
      can't use the compressed print mode. See the printer configuration
      area (Config-Printer) for a current list of printers.

  4.  The Config-Printer command will allow you to set up the codes needed
      for almost any printer.

  5.  Some laser printers may require you to first print the form to a file
#20702#

      via the 'T' option in the Print Setup menu.  Then after proper printer
      initialization, you can print the ASCII file from DOS with the command:
      COPY "filename" PRN: (or LPT1:, COM1:, ETC.).

  6.  EZ-Forms DataBase directly supports the HP LaserJet and compatible
      printers.  Solid vertical and horizontal lines are printed.  Multiple
      fonts and graphic images on form are available with the optional HP
      LaserJet Fonts and Graphics Support Pack (HPLJFGSP), explained on the
      next few screens.  This pack also allows use of the Print - Preload
      command, which speeds up the printing process by loading the fonts,
      graphics and form to the printer only once.

  7.  Using preprinted forms:  EZ-Forms DataBase has a Clear Forms Overlay
      (CFO) selection on the Print Setup menu, which allows you to easily
      use preprinted forms.  To use this feature, first create a form to act
      as the template.  Make sure that all of the fields match or align with
      those on your preprinted form.  Create a new database with this form
      and enter a test record.  When printing the test record, select C for
      Clear Forms Overlay.  This will ensure only the unprotected area (text
      you just typed in) will be printed.  The form outline is protected, so
      it doesn't print!
#20703#

                HP LaserJet Fonts and Graphics Support Pack
                

  EZX Publishing now offers fully integrated Soft Fonts for use with the HP
  LaserJet+, II, III and 4 series of laser printers.  With this optional
  support package, EZ-Forms DataBase supports 16 groups of downloadable soft
  fonts.  Though not necessary, the Print - Preload command will download all
  used soft fonts, graphics, and the form, in order to speed up subsequent
  printing.  Each of the 16 groups is based on normal/small text, 6/8 lines
  per inch, normal/very dark text, and portrait/landscape orientation.
  Within each group you can have 10 fonts, 00 being the default font and
  01-09 being additional fonts you can access within any given form.  The
  naming convention is:

  Fnt00N6N.SFP
                                                             
     Ե  Soft font portrait (SFP) or soft font landscape (SFL)
       Normal (N) or very dark (V) text/graphics
       6 or 8 lines per inch
       Normal (N) 10 cpi or small (S) 17 cpi text/graphics
       Font number (00 is default), range 00-09
#20704#

  This provides 16 possible font groups:

  Fnt00n6n.SFP  10 cpi, 6 lpi, normal darkness, portrait
  Fnt00s6n.SFP  17 cpi, 6 lpi, normal darkness, portrait
  Fnt00n6v.SFP  10 cpi, 6 lpi, very dark text/graphics, portrait
  Fnt00s6v.SFP  17 cpi, 6 lpi, very dark text/graphics, portrait
  Fnt00n8n.SFP  10 cpi, 8 lpi, normal darkness, portrait
  Fnt00s8n.SFP  17 cpi, 8 lpi, normal darkness, portrait
  Fnt00n8v.SFP  10 cpi, 8 lpi, very dark text/graphics, portrait
  Fnt00s8v.SFP  17 cpi, 8 lpi, very dark text/graphics, portrait
  Fnt00n6n.SFL  10 cpi, 6 lpi, normal darkness, landscape
  Fnt00s6n.SFL  17 cpi, 6 lpi, normal darkness, landscape
  Fnt00n6v.SFL  10 cpi, 6 lpi, very dark text/graphics, landscape
  Fnt00s6v.SFL  17 cpi, 6 lpi, very dark text/graphics, landscape
  Fnt00n8n.SFL  10 cpi, 8 lpi, normal darkness, landscape
  Fnt00s8n.SFL  17 cpi, 8 lpi, normal darkness, landscape
  Fnt00n8v.SFL  10 cpi, 8 lpi, very dark text/graphics, landscape
  Fnt00s8v.SFL  17 cpi, 8 lpi, very dark text/graphics, landscape

  Note:  Each font group can have up to 10 fonts, 00-09.

#20705#

  Each font may optionally have its horizontal and vertical motion index
  adjusted.  EZ-Forms DataBase uses a file with the same name as the font
  except ending with HMP (portrait)/HML (landscape) to designate an ASCII
  file that contains an ASCII number for modifying the character spacing
  for a font.  If no file exists then EZ-Forms DataBase assumes no motion
  modification is required.  Refer to your HP LaserJet technical reference
  manual for details on horizontal (HMI) and vertical (VMI) motion indexes.

  Font 00, the default font, is used for the form outline and for all text
  that doesn't have another font specified thru the EZ-Forms character
  attribute functions.  It also determines the inter-line spacing for any
  other (01-09) loaded font.  With driver E, this font is loaded from
  disk.  Driver K uses the internal LaserJet default fault with PC-8
  symbol set for font 00 only.  This symbol set is available in most
  LaserJets and compatibles, except for some of the older ones.  Both E
  and K drivers load all other fonts from disk.

  Any font may be renamed to fit into the EZ-Forms DataBase naming
  conventions.  However, most fonts don't provide the character graphics
  symbols that allow the lines in the form to be drawn.  All of the EZX Soft
  Fonts in the font support package provide this capability.
#20706#

  Print macros are also supported.  Print macros are predefined sequences of
  commands for your printer that can be triggered by sending a simple escape
  sequence (see your HP LaserJet technical reference manual for more info).
  These are used for printing things like logos for letterhead and printing
  someone's signature. Unlike soft fonts, print macros have to be completely
  designed and defined with a macro ID (01-15) prior to you being able to
  reference them within a form.

  Print macros must be named MACROxxy.HPM  where xx is the macro ID and y is
  either P (portrait) or L (landscape).

  Print macros are selected within a form thru the use of the Greek
  characters.  The first Greek character triggers print macro 01, the second
  Greek character print macro 02, etc.  The Alt-Z command during data entry
  allows selection of Greek characters.

  Print macros can't have a shaded background. This is intentional because a
  print macro is a graphic image of an item.  The graphic image will already
  contain any shading desired when it is designed.
#20707#
           BASIC OVERVIEW OF HOW TO USE THE SOFT FONTS FOR PRINTING
           

  The following is an overview of printing when using the optional EZX Soft
  Fonts with driver E or K selected (HP LaserJet+, II, III, 4 or compatible).

  1.  EZFDB searches your form for "Greek characters"-  - and
      then downloads to your printer the print macro referenced by the Greek
      character. The first Greek character references the first print macro,
      the second Greek character references the second print macro, etc.
  2.  EZFDB searches your form for any fonts referenced.  It then downloads
      to your printer Font 00 plus any additional fonts the form references.
  3.  EZFDB is now ready to start printing. It prints the outline using Font
      00.  Any other font is used on additional passes.  EZFDB selects the
      Font 00 and goes to the line and column of the next text using a
      different font (other than 00).  It will then print all the contiguous
      characters/text using that font.  At the next font switch EZFDB again
      switches to Font 00, goes to the proper line/column within your form,
      and starts printing using the new font.  This allows you to easily
      line up text vertically using a multitude of different fonts.  Unless
      you are aware of this process, you could be a little confused over how
      multiple font printing is accomplished.
#20708#

  4.  The background shading is now done.  EZFDB uses the lightest character
      graphic symbol to add a shaded background  (characters with a Alt B)
      attached.  On printer drivers  other than E, the Alt B allowed you to
      bold a character.  This capability is still retained but you have to
      use a different font for bold text when using this printer driver.
  5.  Print macros are now printed.  EZFDB goes thru your form line by line,
      directing your printer to print any print macros it finds.  Please note
      that if you direct EZFDB to use a print macro and it wasn't available
      for downloading earlier in this process, nothing will print.

  Warning:

  EZFDB makes multiple passes to produce a composite, which is the printed
  form that comes out of your printer.  Your printer can handle only a
  maximum number of characters per line and a maximum number of lines per
  page based on the fonts and orientation you select.  If you try to print a
  form bigger than will fit on a single page, you may get multiple pages -
  each with a portion of one of the passes.

  To print correctly, your form MUST fit on a single page based on the fonts
  and orientation selected.  Trial and error may sometimes be necessary.
#20800#


  Unable to run the file EZXINFO.EXE.  Exit to DOS, and run EZXINFO.EXE
  directly.  If EZXINFO.EXE is not in your current directory, it can be
  copied from the original Full System Disk.  Run EZXINFO.EXE from DOS for
  more product details and ordering information.

  If this product is older than 6 months, please call us for the latest
  information.


  EZX Publishing
  P.O. Box 58177
  Webster, TX 77598 USA

  Voice: 1-713-280-9900
  FAX:   1-713-280-0099
  Info/OrderBBS: 1-713-280-8180 (2400-14.4K N81)  EZ-HOST BBS

  TestDrive versions of all our programs are available from our EZ-HOST BBS.
#20900#


  Unable to run the file SUPPORT.EXE.  Exit to DOS, and run SUPPORT.EXE
  directly.  If SUPPORT.EXE is not in your current directory, it can be
  copied from the original Full System Disk.  The following screen contains
  information about technical support.  Run SUPPORT.EXE from DOS for further
  details.


  EZX Publishing
  P.O. Box 58177
  Webster, TX 77598  USA

  Voice: 1-713-280-9900
  FAX:   1-713-280-0099
  Info/OrderBBS: 1-713-280-8180 (2400-14.4K N81)  EZ-HOST BBS

  TestDrive versions of all our programs are available from our EZ-HOST BBS.
#20901#

                             BASIC SUPPORT POLICY
                             

  We provide technical support to all registered users of our products. We 
  provide the support to the INDIVIDUAL who filled out, signed, and sent in
  the original registration card.  This applies even to copies of the program
  purchased by companies. Please read all of the information on the
  registration card (we provide 2 copies, 1 to send in, and 1 to keep) as to
  terms, length of support period, etc. Basically, registrations are not
  transferrable as we can only "train" one individual per program purchased.
  IF you have arranged for Extended or Priority Support, refer to the
  documents you received.


  EZX Publishing
  P.O. Box 58177
  Webster, TX 77598  USA

  Voice: 1-713-280-9900
  FAX:   1-713-280-0099
  Info/OrderBBS: 1-713-280-8180 (2400-14.4K N81)  EZ-HOST BBS
#21100#

  Command menu:

  All the Form Editor commands can be entered directly within the editor.
  Many of the commands can also be entered thru this pulldown command menu.
  The pulldown command menu may be called up thru either Escape or F10.
  If you use the F10 key to call up the command menu, then the previous
  command or state of the menu is used.  You will probably want a command in
  the general area of your last choice so this is saved between uses.

  You will notice the command menu has a help window at the bottom of the
  screen that expands on what will happen if you choose that option.  Many
  of the commands can be entered without calling up the command menu.
  If there is a command sequence shown at the end of the help window, you
  could have entered it instead of calling up the command menu.  Example:
  Help for BlockOps - Start block shows a (Alt S).  That means you can press
  Alt S directly in the editor to mark the beginning of a block INSTEAD
  of going thru this menu.
#21300#

  The block operations in the EZ-Forms DataBase Form Editor are laid out in
  four logical groups. These are:

  (1) Those dealing with moving text around in your form  --  Alt M (move),
      Alt C (copy), and Alt D (delete)
  (2) Those dealing with attributes/fields  --  Ctrl A (attribute add) and
      Ctrl E (attribute erase)
  (3) ASCII file read and write  --  Ctrl R (read) and Ctrl W (write).
  (4) Block enable/disable -- make visible (Alt V) or hide a block (Alt H).

  These four groups allow you to work on the marked portion of the form.
  This marked portion (block) is laid out as a rectangle.  You must mark
  the diagonal corners of the rectangle with the Alt S being the upper left
  corner (start) and the Alt E being the lower right corner (end).  You will
  then be able to work with just this small section of the form for - Alt C,
  Alt M, Alt D, Ctrl A, etc.
#21400#

  To write a form to an ASCII file, type Ctrl W (for write).

  With this command, you take the form you see in front of you and write it
  to a disk file, in a standard format that word processors and other
  packages can read.  All special control codes that EZ-Forms uses are
  removed as the file is written.

  Many word processors can't handle character graphics like       and .
  Because of this, EZFDB provides a translation capability that translates
  these characters into normal characters, which somewhat look like the
  character graphics symbols.  Example:  becomes a + after translation.

#21401#

  To read an ASCII file, press Ctrl R (for read).

  This command reads a standard text file from disk into your form.  Any
  strange characters like , , etc., will be automatically translated to
  spaces before they are inserted into your form.  Many word processors put
  these strange characters into the file to keep track of paragraphs, new
  lines, etc.

  You have the option of loading the file at the current cursor location,
  or into the marked area.  An area is marked with the block operations
  (Alt S and Alt E).

  The starting point is either the current cursor location, or the start of
  the marked area.  For example, if the starting point is at line 2, column
  2, then the file will be read into your form starting at this location.
  The second line will be read into line 3, column 2, etc.  When reading
  into the marked area, nothing will be loaded outside of it.
#21600#

  Fields allow you to "jump" between data entry areas in a form, and to
  protect areas of a form that don't contain any text.  A special character,
  the tilde ~, is used to allow this.

  In the form, use the ~ key (yes, it really is on your keyboard) to fill
  all the areas where you DON'T want to enter data.  You can fill areas
  by hand with the ~ key, or use the quick and easy block operations.  To
  use the block operations, first mark a block with Alt S and Alt E.  Then
  use Ctrl A to add field markers, or Ctrl E to erase field markers in the
  marked area.  You can use F3 and F4 to insert and delete field markers
  for the entire form.

  Once you have field markers set up in the form, save it, and use the
  Database - New command to create a new database with it.  Then use the
  Revise - Add command to enter a new record.  Note how the Enter, Tab,
  Shift Tab (backtab) and cursor keys move between data entry fields.

  Note: The ~s won't appear when printing, so use them freely.
#END#
