
<<Dictionary Editor General Information>>

The creation of a data dictionary is the first step in creating
an application.  Clarion Database Developer applications can
access a variety of different data file formats with its
replaceable file driver technology.  Some of the file formats
which may be supported by file drivers are Btrieve, Clarion,
xBase (all the various dialects of dBase), and DOS, ASCII, and
Basic (Comma Delimited ASCII), with more being added (call
Customer Service at 800-354-5444 or (305) 785-4555 for current
information).

To create and maintain these files, a file specification
(description) must be created in the database dictionary.  The
database dictionary contains information on the layout of data
files:  Data files, fields, keys, entry validation rules, entry
options, and file relationship information.  This information is
shared among the areas of the Clarion environment that need
information on file layouts.


<<File Menu>>

The File menu contains selections for the normal file operations
of the Dictionary Editor.

<New...>
New...                                    ( F2 or ALT-F N )
     Creates a new file.  You specify the type of file you are
     creating (Application, Dictionary, Database, Report, Text,
     or Help) and its name.  The new file is created and you are
     automatically placed in that file type's functional area.

<Open...>
Open...                                   ( F3 or ALT-F O )
     Opens an existing file.  You specify the type of file you
     are opening (Application, Dictionary, Database, Report,
     Text, or Help) and the name of the file.  You are
     automatically placed in that file type's major functional
     area.

<Close>
Close                                     ( ALT-F C )
     Closes the open Database Dictionary file, exits the
     Dictionary Editor, and returns you to the Clarion opening
     screen.

<Change Directory...>
Change Directory...                       ( ALT-F D )
     Allows you to change the DOS current directory. It is
     always a good idea to create applications in their own
     separate sub- directories.  Doing this makes it easy to
     identify the files that are part of an application and to
     delete those that are no longer needed when the application
     is complete (.OBJ files are one good example).

<Save>
Save                                      ( ALT-F S )
     Saves the open Database Dictionary file without closing the
     file or exiting the Dictionary Editor.

<Save As Source...>
Save As Source...                         ( ALT-F V )
     Writes Clarion Language FILE declarations from the open
     Database Dictionary to the filename you specify. If you
     want to append these to an existing file, place a leading
     plus sign (+) on the filename you enter here.

<Convert File...>
Convert File...                          ( ALT-F F )
     When you have an existing data file and want to make
     changes to the file definition, you must convert the
     existing data file to the new format.  This is true every
     time you make any change that affects the file's source code
     declaration (add a field or key, change a field's data type,
     etc.).  You may also want to convert an existing data file
     from one file system to another.  Both cases are handled
     identically.

     The Dictionary Editor automatically generates the Clarion
     source code necessary to effect the data file conversion for
     you.  Once the source code is generated you may compile it
     and execute it.  You may also modify the generated code to
     handle some specific conversion issues that the Dictionary
     Editor cannot.  In either case, once you have compiled the
     conversion program you may run it on your own files and/or
     distribute it to your customers (in-house or around the
     world).

     The one requirement for data file conversion is:

     YOU MUST STILL HAVE THE DATA FILE'S DEFINITION BEFORE THE
     CHANGES WERE MADE TO IT AVAILABLE IN THE SAME DATABASE
     DICTIONARY AS THE CHANGED DEFINITION.

     This is very important because in some file systems the data
     file itself does not contain the information necessary to
     determine the data file definition. In those file systems,
     if you did not save the previous file definition you would
     have to re-construct it (is your memory photographic?)
     before the Dictionary Editor can create the data file
     conversion code. If you cannot re-create the previous file
     definition exactly, you could lose some data (possibly
     all).

     You may save the old data file definition prior to changing
     it by copying it to a new name within the same Dictionary,
     or you can Import the old definition from the .BCT
     automatic backup file (see the Import menu selection in the
     Edit menu) after you have saved your changes.

     The step-by-step approach to converting an existing data
     file is simple:

     1.  Make the changes to your existing file definition.

     2.  Use the Import menu selection in the Edit menu to get
         the old definition from the Database Dictionary's
         (.BCT) automatic backup file.

         Alternatively, if you saved the file prior to making
         changes you need to select the file you created.

     3.  Use the Convert File menu selection in the File menu to
         generate file conversion source code.

     4.  Edit (if necessary) the generated source code, then
         Make and Run the resulting program. This converts the
         data file to the new format.

     5.  Delete the imported old file definition from the
         Database Dictionary.

<Printer Setup...>
Printer Setup...                          ( ALT-F T )
     Sets up your printer for all printing tasks done through
     the Clarion environment.  It allows you to specify:  the
     port to which your printer is connected, the maximum number
     of print lines per page, form feed information, pre-print
     and post- print printer control strings.

<Dictionary Properties...>
Dictionary Properties...                  ( CTRL-O or ALT-F R )
     Displays the Dictionary Properties screen, allowing you to
     update the comments entered there.  The Dictionary
     Properties screen also automatically tracks the creation
     and last modification dates.

<Exit>
Exit                                      ( CTRL-X or ALT-F X )
     Closes the open Database Dictionary file, exits the
     Dictionary Editor, and returns you to the Clarion opening
     screen.


<<Edit Menu>>

The Edit menu contains selections which allow you to maintain
the individual data items contained in the Database Dictionary.
The action taken by each depends upon which Worksheet of the
Dictionary Editor you are currently working in.

<Insert>
Insert                                    ( INS or ALT-E I )
     Allows you to add a File, Field, Key, Memo, or Relation to
     the Database Dictionary.

<Change>
Change                                    ( ENTER or ALT-E H )
     Allows you to modify an existing File, Field, Key, Memo, or
     Relation in the Database Dictionary.

<Delete>
Delete                                    ( DEL or ALT-E D )
     Allows you to remove a File, Field, Key, Memo, or Relation
     from the Database Dictionary.

<Copy>
Copy                                      ( CTRL-C or ALT-E C )
     Allows you to copy an existing File, Field, Key, or Memo
     within the Database Dictionary.

<Move>
Move                                      ( CTRL-M or ALT-E M )
     Allows you to change the relative position of a Field, Key,
     or Memo, within the Database Dictionary.

<Import>
Import                                    ( CTRL-I or ALT-E P )
     Displays a sub-menu which allows you to import a File
     declaration from a Clarion data file, or another Database
     Dictionary (including a .BCT Dictionary backup file).

<Dictionary...>
Dictionary...                         ( CTRL-I D or ALT-E P D )
     Allows you to import a File declaration from another
     database Dictionary (including a .BCT Dictionary backup
     file).

<Clarion File...>
Clarion File...                       ( CTRL-I C or ALT-E P C )
     Allows you to import a File declaration from a Clarion data
     file.

<Clarion 2.1 APP...>
Clarion 2.1 APP...                    ( CTRL-I S or ALT-E P S )
     Allows you to import a File declaration from a Clarion 2.1
     .APP file.


<<Tools Menu>>

The Tools menu contains a number of utilities which are useful
throughout the environment.

<DOS Shell>
DOS Shell                                 ( F10 or ALT-T D )
     Calls Clarion's built-in disk maintenance program (CSHELL).
     CSHELL is covered in its own section later.

<DOS Prompt>
DOS Prompt                                ( ALT-T R )
     Temporarily exits to DOS to execute some DOS command(s).  It
     saves the current state of the Clarion environment to a
     temporary file, frees most of the memory used by the
     Clarion environment, and loads a second copy of COMMAND.COM.
     To return to Clarion from this DOS prompt, type "Exit" and
     press ENTER.

<Calculator...>
Calculator...                             ( ALT-T C )
     Calls Clarion's built-in programmer's calculator.  The
     Calculator... selection is covered in its own section later.

<ASCII Chart...>
ASCII Chart...                            ( ALT-T A )
     Brings up a list of all the ASCII codes. The chart
     contains each ASCII display character, and the Decimal,
     Hexadecimal, and Octal numbers which represent that
     character.

<Color Chart...>
Color Chart...                            ( ALT-T L )
     Displays a list of all the Color Style Codes. Each
     possible color combination is in the list along with the
     decimal number which represents it.

<Keycode Chart...>
Keycode Chart...                          ( ALT-T K )
     Displays a list of all the Clarion Keycodes.  Each possible
     key combination is in the list along with the decimal number
     which represents it.


<<Clarion Menu>>

The top section of items in the Clarion menu bring up "task
lists" of the last four projects you worked with in each of the
major functional areas.  This allows you to return directly to
a task you've already worked on, without the necessity of going
through the Open... screen from the File menu.  Selecting a
previous task from one of these lists does not automatically
change to the directory which contains the file.

In addition to re-selecting a previous task, you may also access
the New... and Open... screens through the task list screen by
selecting the New... or Open... Pushbutton.  This allows you to
check for a previous task, then immediately create or open the
file you want without returning to the File menu if the desired
task is not in the list.

<Load Application...>
Load Application...                       ( F4 or ALT-C A )
     Allows you to select one of the last four Application files
     in which you worked, or to create or open an Application
     not on the task list.  This selection takes you directly
     into the Application Generator with the selected file
     loaded.  SHIFT- F4 immediately loads the last Application
     on which you worked.

<Load Dictionary...>
Load Dictionary...                        ( F5 or ALT-C D )
     Allows you to select one of the last four Dictionary files
     in which you worked, or to create or open a Dictionary not
     on the task list.  This selection takes you directly into
     the Dictionary Editor with the selected file loaded.
     SHIFT-F5 immediately loads the last Dictionary on which you
     worked.

<Load Database...>
Load Database...                          ( F6 or ALT-C B )
     Allows you to select one of the last four Database files in
     which you worked, or to create or open a Database not on
     the task list.  This selection takes you directly into the
     Database Manager with the selected file loaded.  SHIFT-F6
     immediately loads the last Database on which you worked.

<Load Report...>
Load Report...                           ( F7 or ALT-C R )
     Allows you to select one of the last four Report files in
     which you worked, or to create or open a Report not on the
     task list.  This selection takes you directly into the
     Report Writer with the selected file loaded.  SHIFT-F7
     immediately loads the last Report on which you worked.

<Load Text...>
Load Text...                             ( F8 or ALT-C T )
     Allows you to select one of the last four Text files in
     which you worked, or to create or open a Text file not on
     the task list.  This selection takes you directly into the
     Text Editor with the selected file loaded.  SHIFT-F8
     immediately loads the last Text file on which you worked.

<Load Help...>
Load Help...                             ( F9 or ALT-C H )
     Allows you to select one of the last four Help files in
     which you worked, or to create or open an Help file not on
     the task list.  This selection takes you directly into the
     Help Editor with the selected file loaded.  SHIFT-F9
     immediately loads the last Help file on which you worked.

<43/50 Line Mode >
43/50 Line Mode                          ( ALT-C 4 )
     Places the video in 43 or 50 line mode (depending upon
     whether your hardware is EGA or VGA). This menu selection
     is a toggle switch with a check mark () displayed when
     toggled ON.  The setting is saved in the Clarion
     configuration file.

<System Setup >
System Setup                             ( ALT-C S )
     Displays a sub-menu containing menu items which allow you
     to set system-wide options.  These are options that affect
     the entire Clarion Environment.

<Options...>
Options...                               ( ALT-C S O )
     Allows you to specify the use of your own text editor and
     DOS shell program.  These are programs other than the Text
     Editor and DOS Shell (CSHELL) which are part of the Clarion
     environment.  If you specify another editor in the Options...
     screen, the Clarion environment will run your editor and
     allow you to edit the file when you open or create a Text
     file.  When you exit your editor, you return to the Clarion
     environment.  A note of caution: text editors and word
     processing programs are not the same--this option must name
     a text editor.

     The main advantage of specifying your own text editor is
     your own familiarity with it, which eliminates the
     "learning curve" required before becoming proficient with
     the Clarion Text Editor.  The main disadvantage of
     specifying your own text editor is the loss of the use of
     the SCREEN, REPORT, and PULLDOWN menu formatting tools,
     which are all integral parts of the Clarion Text Editor.
     This means the only way to format a SCREEN, REPORT, or
     PULLDOWN menu would be to use the formatting tools in the
     Application Generator (or to directly edit the data
     structure code--not recommended).

<Database Drivers...>
Database Drivers...                       ( ALT-C S D )
     Registers new database file drivers.  There are many more
     database file system drivers available than were provided
     in the shipping disks.  These extra file drivers are
     available directly from Clarion Software (call Customer
     Service at 800- 354-5444 for more information).  Once you
     receive a new file system driver, you must register its
     presence before the Clarion environment will be able to use
     it.

<Search Paths... >
Search Paths...                           ( ALT-C S S )
     Maintains Redirection files.  Redirection files are used by
     the Project system.  They provide individual search paths
     for specific files the compiler and linker need to find to
     accomplish their tasks (see the Project and Redirection Files
     essay in the Programmer's Guide).

<Edit Styles...>
Edit Styles...                            ( ALT-C S E )
     Maintains any Color Style Code file.  Color Style Code
     files are ASCII files containing a list of color codes used
     in your application's SCREEN structures and the actual
     colors to be used for those codes (see the Screen Color
     Schemes essay in the Programmer's Guide).

<Printer Controls...>
Printer Controls...                       ( ALT-C S P )
     Allows you to maintain Printer Control files for the
     Clarion environment and your applications (logical printer
     support through the PRINTER report attribute).  It allows
     you to specify the port to which each printer is connected
     and printer control code strings for the print effects of
     which each printer is capable.


<<Help Menu>>

Context-sensitive Help screens are available throughout the
Clarion Database Developer environment through the F1 key.  The
Help menu contains selections which provide separate access to
the Help system.

<Using Help >
Using Help                                ( ALT-H U )
     Provides information on how to use the Help system.

<Help Index >
Help Index                                ( ALT-H H )
     Displays an Index of all Help screens available in the
     major functional area, allowing you to view a Help screen
     for a particular context when not actively in that context.

<About...>
About...                                  ( ALT-H A )
     Displays a screen with the program and copyright
     information for this specific release of Clarion Database
     Developer.


<<Driver Registration Window>>

The Driver Registration window displays two lists:  Unregistered
and Registered file drivers of which the Clarion environment is
aware.  Each file system your Clarion application will access
must have its own file driver, which must be registered in the
Clarion environment before it is available for application
design.  This window allows you to Register new file drivers and
display the FILE structure statements which are valid for the
file system.  This sets the FILEDRIVER environment variable
(contained in CLARION3.INI) to the drivers you specify.  Changes
are not permanent until the "Ok" button is selected.

<Unregistered>
Unregistered
     A list of all the available file drivers that are currently
     installed but not Registered (the Clarion environment is
     "unaware" of these drivers).

<Registered>
Registered
     A list of all the currently Registered file drivers (the
     Clarion environment is "aware" of these drivers).

<Register Button>
Register Button
     Registers the currently highlighted Unregistered file
     driver and places it immediately after the currently
     highlighted Registered file driver.  This makes the Clarion
     environment "aware" of this driver.

<Unregister Button>
Unregister Button
     Moves the currently highlighted Registered file driver to
     the Unregistered file driver list.  This makes the Clarion
     environment "unaware" of this driver, but does not delete
     the driver's .DLL file.

<Properties Buttons>
Properties Buttons
     Calls the Driver Properties window to display the valid
     FILE structure, KEY, INDEX, and MEMO attributes for the
     above highlighted Unregistered or Registered file driver.

<Move Up / Move Down Buttons>
Move Up / Move Down Buttons
     Changes the order of the Registered file drivers by moving
     the currently highlighted Registered driver Up or Down.
     Dictionary file driver selection lists are displayed in the
     same order as the Registered file drivers list.  Therefore,
     the driver you use most often should be placed first in the
     Registered drivers list.  Grey Minus/Plus may also be used
     to move file drivers up/down respectively in the Registered
     driver list.


<<Driver Properties Window>>

The Driver Properties window displays the valid FILE structure,
KEY, INDEX, and MEMO attributes.  Those attributes which are
valid in the file system are checked.  Any attribute not checked
is not valid in the file system.

<Features Button>
Features Button
     Calls the Driver Features window to display the valid data
     types and file access commands for the file system.


<<Driver Features Window>>

The Driver Features window displays the data types and file
access commands which are appropriate for the file system.  The
data types allowed in the file system are displayed in the list
on the left.  File and record access commands allowed for the
file system (every valid form of each command) are displayed in
the list on the right.


<<Dictionary Properties Window>>

The Dictionary Properties window allows you to specify a short
description of the database dictionary.  It also automatically
displays the date and time the dictionary was created, and the
date and time the dictionary was last modified.

<Password:>
Password:
     Enter the password which will be required to modify the
     database dictionary.  Once the dictionary has been created
     with a password, the password is required, in all subsequent
     design sessions in the Dictionary Editor, before you are
     allowed to modify the dictionary.

<Version:>
Version:
     This field displays the internal version number of the .DCT
     file format.  This is useful information for Clarion's
     Technical Support personnel if you experience any problems
     with the Dictionary Editor.


<<Enter Password for Dictionary Window>>

The Enter Password for Dictionary window allows you to enter the
Password assigned to the Database Dictionary.  If you do not
enter the correct password, you will not be allowed to edit the
Dictionary.

<Password:>
Password:
     Enter the password required to modify the Database
     Dictionary.  As you enter the password, each character you
     type is displayed as an asterisk (*).


<<Dictionary Worksheet>>

The Dictionary Worksheet contains five lists.  The first
displays the files defined in the database.  The other four
display the fields, memos, keys, and relations for the file
currently selected in the Files List.

<Files List>
Files List

In the Files List, you may create new FILE definitions, copy
existing definitions from the same dictionary file, or import
them from another.  Clarion Database Developer directly supports
many different data file types through its file driver
technology.  Whenever you access a data file, the Clarion
language file access statements are implemented by the file
driver you select on the File Properties window.  You may "mix
and match" file drivers within one Database Dictionary, or all
the files may use the same driver.

<Fields List>
Fields List

Individual data fields which make up the file's record structure
are declared in the Fields List.  You may create new field
definitions or copy them from an existing field in the same
file.  All data types possible in the Clarion Language are not
available in all file systems.  Therefore, those data types
which are inappropriate for the selected file driver are not
listed for selection (see the documentation for the specific
file driver being used).

<Memos List>
Memos List

The Memos List displays the MEMO fields for a FILE.  These are
separate from the other fields in a file because most file
systems keep MEMO fields in files separate from the data.  MEMO
fields are stored as variable length string fields used for
large amounts of information, like comments or notes.  Some file
systems support multiple MEMO fields while others allow only one
(and some--none).

<Keys List>
Keys List

The Keys List displays the KEY and INDEX declarations within a
FILE.  Both KEY and INDEX declare alternate sort orders other
than the physical order of the records within the data file.  In
some file systems these are kept in separate files, in others
they are contained within the same file as the data.  Clarion's
file driver technology handles these differences transparently.

<Relations List>
Relations List

The Relations List displays the relationships between the
currently selected file and the other files in the Database
Dictionary.  Defining file relationships is generally the last
step in the creation of a Database Dictionary because the fields
and keys must already be defined in order to create file
relationships.  All three relationship types are defined in
terms of the Parent-Child (One-to-Many) relationship:

One-to-Many
     The most common file relationship.  A record with a unique
     key field value in the Parent file is related to multiple
     records containing the same key field value in the Child
     file.

One-to-One
     A Parent-Child relationship where the Child file is allowed
     only one related record--the linking key fields are unique in
     both files.

Many-to-Many
     This relationship is expressed indirectly as two One-to-Many
     relationships between the two related files and a third
     "Join" file which is defined as the CHILD of both (see the
     Database Design essay in the Programmer's Guide).

The currently highlighted file in the Files List is at the top
of the list and all the files which are linked to it are listed
below it.  Child files of the currently highlighted file on the
File Worksheet are listed with a leading double right solid
arrow (  ).  Parent files of the currently highlighted file on
the File Worksheet are listed with a leading single right solid
arrow (  ).


<<File Properties Window>>

The File Properties window allows you to specify the attributes
of the data file declaration which are directly placed on the
FILE statement when the file's Clarion source code data
declaration is generated.

<File Label:>
File Label:
     Enter the label of the file.  The file label is used to
     identify the file for those Clarion source code statements
     which act on the file (OPEN, ADD, NEXT, etc.).

     Labels may contain alphabetic characters, numbers, the
     underscore character ( _ ), and the colon ( : ).  Clarion
     labels may not begin with a number or colon, and are not
     case sensitive.

<Prefix:>
Prefix:
     Enter the file's prefix.  A Prefix is used preface the
     names (labels) of all of the data fields, keys, and indexes
     when they are referenced in Clarion source code.  This
     uniquely identifies them, making it possible to use the
     same field names in multiple files without confusion.  When
     used in Clarion source code, the Prefix is attached to the
     label with a colon (:).  For example, Cus:Name and Ord:Name
     identify a field with the label "Name" in two separate
     files -- one with a "Cus" prefix and the other with an
     "Ord" prefix.

     All prefixes within a single Database Dictionary must be
     unique -- you cannot use the same prefix for two files
     defined in the same Database Dictionary.  By default, the
     first three letters of the file label are offered as a
     prefix when you first create the file definition, but you
     may change this to any three character combination which
     begins with a letter (letters, numbers, and the underscore
     are valid).

<Description:>
Description:
     Enter an optional description of the file to clarify the
     contents or purpose of a data file.  If the File Label
     specified is somewhat cryptic, it is a good idea to enter a
     meaningful description.

<File Driver:>
File Driver
     Specify the file driver the file will use (ie. for which
     data file format the file being created).  A "pick list"
     of all the registered file drivers automatically pops up
     for your choice.  Selection of the file driver automatically
     limits the data types and attributes you may place in the
     file definition to those which are appropriate to the file
     system being used.

     Clarion Database Developer directly supports many different
     data file types through its file driver technology.  This
     field is where you declare which type of file this is.  The
     information is placed in the file's DRIVER attribute.  By
     selecting a file type from the list of registered file
     drivers, the appropriate file driver is automatically
     incorporated into your application.  Whenever you access
     this data file, the Clarion language file access statements
     are implemented by the file driver you select here.

     You may "mix and match" file drivers within one Database
     Dictionary, or all the files may use the same driver.
     Clarion's file driver technology makes it possible to write
     applications for separate file systems without the need to
     make file-system-specific program changes.

     The Database Drivers... pulldown menu selection registers
     new database file drivers.  There are many more database
     file system drivers available than were provided in the
     shipping disks.  These extra file drivers are available
     directly from Clarion Software (call Customer Service at
     800-354-5444 or (305) 785-4555 for more information). Once
     you receive a new file system driver, you must register its
     presence before you may use it.

<Driver String:>
Driver String:
     Enter any file-system-specific information the file driver
     may need at the time the file is opened for use in your
     application (see DRIVER.DOC for documentation about each
     file driver and for the driver strings which are
     appropriate for the file system). You may enter either a
     string constant (in single quotes) or variable name.

<Owner Name:>
Owner Name:
     Enter an optional "encryption key" for data security (see
     the OWNER attribute in the Language Reference).  In some
     file systems this will also encrypt the data file's header.
     This is the "password" which is required to gain access to
     the data file after it has been encrypted.  You may enter
     either a string constant (in single quotes) or variable
     name.

<Encrypt Data File>
[] Encrypt Data File
     Activates data file encryption using the password specified
     in the Owner Name field (see the ENCRYPT attribute in the
     Language Reference).  For those file systems in which the
     OWNER attribute encrypts the file header, this encrypts the
     data records.

<Attributes>
Attributes
     The attribute selections which are not valid for the
     selected file driver are dimmed.  These are additional
     attributes which are placed on the FILE declaration
     statement.

[] Create
     Allows the file to be created at run time with the CREATE
     executable statement (see the CREATE attribute in the
     Language Reference).  Some file systems may not allow a file
     to be created without this attribute being set ON.

[] Reclaim
     Allows space occupied by previously deleted records to be
     reused when new records are added to the data file (see the
     RECLAIM attribute in the Language Reference).  Some file
     systems do not physically remove deleted records from the
     data file, but only flag them as deleted until the data
     file is "packed."  Reclaim allows this deleted record space
     to be re-used, eliminating the need for "packing" the file.

[] External Field Names
     Allows you to specify external field names which are
     generated in each data field's NAME attribute in the source
     code file definition (see the NAME attribute in the Language
     Reference).  These external names are used for file system
     compatibility -- some file systems require these external
     names (see DRIVER.DOC for clarification of the need for
     external field names in a specific file system).

<File Specification>
File Specification
     Enter the drive, path, and filename of the data file.  If
     omitted, applications created with this Database Dictionary
     assume that the data file resides in the DOS current
     directory (with the default filename applicable to the file
     system) when the program loads.  You may enter either a
     string constant (in single quotes) or variable name.


<<Select File Driver Window>>

The Select File Driver window allows you to choose the value to
place in the file's DRIVER attribute.  Only the file drivers
which are Registered in the environment are listed.

Choosing a file driver indicates the file system used for the
data file.  It also implies that the file must exist within the
constraints of that file system.  Each file driver (and the file
system's constraints) is documented on disk in a DRIVER.DOC text
file.

<Select Button>
Select Button
     Press this button to choose the currently highlighted file
     driver.


<<Enter Filename To Dump Source Window>>

The Enter Filename To Dump Source window allows you to enter the
name of the file to receive the file declaration source code
when you Save As Source.



<<Convert File Window>>

The Convert File window allows you to specify the information
the Dictionary Editor needs to generate Clarion source code to
automatically convert a data file from one format to another.
Once the code is generated for you, you are automatically placed
in the Text Editor to modify the generated source code (if you
choose), then compile and link to an .EXE file which will
perform the file conversion.

The step-by-step approach to converting an existing data file is
simple:

     1.  Make the changes to your existing file definition.

     2.  Use the Import menu selection in the Edit menu to get
         the old definition from the Database Dictionary's
         (.BCT) automatic backup file.

         Alternatively, you make a copy of the datafile
         definition prior to making changes.

     3.  Use the Convert File menu selection in the File menu
         to generate file conversion source code.

     4.  Edit (if necessary) the generated source code, then
         Make and Run the resulting program. This converts the
         data file to the new format.

     5.  Delete the imported old file definition from the
         Database Dictionary.

<Input Format:>
Input Format:
     Enter the name of the file definition in the Current
     Dictionary which contains the OLD format of the file -- the
     format from which it will be converted.

<Input File Name:>
Input File Name:
     Enter the DOS filename (including extension) of the data
     file to be converted.

<Output Format:>
Output Format:
     Enter the name of the file definition in the Current
     Dictionary which contains the new format of the data file.

<Output File Name:>
Output File Name:
     Enter the DOS filename (including extension) of the
     converted data file.  This must not be the same as the Input
     File Name.

<Source File Name:>
Source File Name:
     Enter the filename of the file to receive the generated
     file conversion source code (without extension -- .CLA is
     appended for you).

<Overwrite Source>
[] Overwrite Source
     Check this box if you want the generated source code to
     overwrite any existing file of the same name as specified
     in the Source File Name field.  If this box is not checked,
     any existing file of the same name is detected and you are
     not allowed to overwrite the file.

<Generate Source Button>
Generate Source Button
     Generates the file conversion source code then calls the
     Text Editor's Task List to allow you to immediately go into
     the Text Editor to edit and/or compile the generated
     source.


<<Select File To Import Window>>

The Select File to Import window allows you to pick the data
file to import from another Database Dictionary.


<<New File Structure Window>>

The New File Structure window allows you to create a data file
definition in one of four ways:

   1.  Copy an existing file definition from the current
       Dictionary.
   2.  Import a file definition from another Dictionary.
   3.  Import a file definition from a Clarion 2.1 APP file.
   4.  Import directly from a Clarion version 2.1 format data
       (.DAT) file.

Copying a file definition, or Importing from another Dictionary
or a Clarion 2.1 APP file, gets all the information about that
file which is contained in the Database Dictionary (excluding
Relationships).  This includes information (such as display
picture) which is only used by the Application Generator.

Import from a Clarion file reads the .DAT file's header and
imports all the field and key declaration information.  However,
this does not get any other information contained in the
Database Dictionary (such as display picture) which is only used
by the Application Generator -- it is not stored in the .DAT
file. Once you have imported the file definition, you may modify
the fields to add the defaults for the Application Generator.

<From Label:>
From Label:
     Displays the label of the file being copied.  If Importing
     from a Clarion .DAT file, enter the label of the existing
     data (.DAT) file.

<From Prefix:>
From Prefix:
     Displays the Prefix of the file being copied.  If Importing
     from a Clarion .DAT file, enter the prefix for the existing
     data file.

<To Label:>
To Label:
     Enter the new label of the data file definition as you want
     it to appear in the Database Dictionary (this may be the
     same as the From Label if it does not cause duplication
     within the Database Dictionary).

<To Prefix:>
To Prefix:
     Enter the new prefix for the data file definition as you
     want it to appear in the Database Dictionary (this may be
     the same as the From Prefix if it does not cause duplication
     within the Database Dictionary).


<<New Label Window>>

The New Label window allows you to copy a Field, Memo, or Key
definition within the same file.

<From Label:>
From Label:
     Displays the label of the Field, Memo, or Key being copied.

<To Label:>
To Label:
     Enter the new label of the Field, Memo, or Key as you want
     it to appear in the Database Dictionary (this may not be
     the same as the From Label, because it would cause
     duplication within the Database Dictionary).


<<Field Properties Window>>

The Field Properties window allows you to declare the label,
data type, and attributes of a field within a file.  This
information is used to create the data declaration statement in
the file's record structure when source code is generated for
you.

This window also allows you to declare default values for screen
display prompts, data entry validation, and report design.  This
information is provided to the Application Generator when you
design your application's screens and reports (you may override
these default values then).

<Field Label:>
Field Label:
     Enter the label (name) of the field.  This is the name
     which is appended to the file prefix to provide a unique
     identifier for the field.  As with all Clarion labels, the
     field label may contain letters, numbers, the underscore
     character ( _ ), and the colon ( : ).  Labels may not begin
     with a number or colon, and are not case sensitive.

<Type:>
Type:
     Select the data type for the field.  Not all data types are
     available in all file systems.  For information on the data
     types supported in a specific file system, see its file
     driver's documentation.

STRING
     A fixed-length string (see STRING in the Language Reference).
         Range:  1 to 65,535 bytes.

PICTURE
     PICTURE is not a data type.  When selected, PICTURE declares
     a STRING data type with a picture token defining the number
     of characters in the string.  The picture token used for the
     field declaration is entered in the Record Picture field.

     This is useful for data fields whose storage picture and
     display picture must be different (such as COBOL's "implied
     decimal" numeric string storage).  For example, a Record
     Picture of @N6v2 creates a field declaration which looks
     like:

           FieldName    STRING(@N6v2)

     The Display Picture for this field would probably be @N7.2,
     so the field is displayed with a decimal but stored without.

BYTE
     A one-byte unsigned integer (see BYTE in the Language
     Reference).
         Range:  0 to 255

SHORT
     A two-byte signed integer (see SHORT in the Language
     Reference).
         Range: -32,768 to 32,767

LONG
     A four-byte signed integer (see LONG in the Language
     Reference).
         Range: -2,147,483,648 to 2,147,483,647

REAL
     An eight-byte signed floating point (see REAL in the
     Language Reference).
         Range:   0,  2.225073858507201e-308 ..
                      1.79769313496231e+308
          15 significant digits

DECIMAL
     A signed packed decimal, up to eight bytes (see DECIMAL in
     the Language Reference).
         Range:   -999,999,999,999,999 to 999,999,999,999,999

DATE
     A four-byte date (see DATE in the Language Reference).
         Range:      year:  1 to 9999
                     month: 1 to 12
                     day:   1 to 31

TIME
     A four-byte time (see TIME in the Language Reference).
         Range:      hours:      0 to 23
                     minutes:    0 to 59
                     seconds:    0 to 59
                     seconds/100:0 to 99

GROUP
     A compound data structure which allows multiple variable
     declarations to be referenced by a single label.  Other
     fields are declared within the GROUP (see GROUP in the
     Language Reference).

CSTRING
     A fixed-length, null terminated string (see CSTRING in the
     Language Reference).
         Range:  1 to 65,535 bytes.

PSTRING
     An embedded length-byte string (see PSTRING in the Language
     Reference).
         Range:  1 to 255 bytes.

PDECIMAL
     A signed packed decimal, up to eight bytes (see PDECIMAL in
     the Language Reference).
         Range:   -999,999,999,999,999 to 999,999,999,999,999

USHORT
     A two-byte unsigned integer (see USHORT in the Language
     Reference).
         Range:  0 to 65,535

ULONG
     A four-byte unsigned integer (see ULONG in the Language
     Reference).
         Range:  0 to 4,294,967,295

SREAL
     A four-byte signed floating point (see SREAL in the Language
     Reference).
         Range:  0,  1.17549435e-38 ..  3.40282347e+38
         6 significant digits

BFLOAT
     An eight-byte signed floating point in Microsoft BASIC
     format (see BFLOAT in the Language Reference).
         Range:   0,  5.877471754e-39 ..
                      1.7014118346e+38
          15 significant digits

<Character Count:>
Character Count:
     Specifies the total number of bytes for this field.
     Depending upon the data type chosen it may be automatically
     displayed for you.

     When declaring a DECIMAL or PDECIMAL the character count
     specifies total digits on both sides of the decimal point.
     For example, if you want a field that can store values up
     to 999.99, enter a "Character Count" of 5 and "Decimal
     Places" as 2.

     Note: When defining CSTRING and PSTRING data types allow
           one additional character for internal storage.


<Decimal Places:>
Decimal Places:
     Enter the number of places to the right of the decimal
     point. Only valid with the DECIMAL and PDECIMAL data types.

<Record Picture:>
Record Picture:
     Specify the picture token used to declare the STRING field,
     which defines the storage format for the data.  This option
     is only valid on a field declared as a PICTURE Type (see
     the PICTURE discussion above and Picture Tokens in the
     Language Reference).

<Display Picture:>
Display Picture:
     Enter the default data formatting mask for the field (see
     Picture Tokens in the Language Reference) to be used in
     SCREEN and REPORT structures.  This picture may be
     overridden at SCREEN or REPORT design time.

<Description:>
Description:
     Enter an optional description to explain the type of
     information stored in this field.  If the Field Label is
     cryptic, it is a good idea to enter a meaningful
     description. Information entered in the Description field
     is placed as a comment on the field declaration in the
     generated source code.

<Help ID:>
Help ID:
     Specify the help to be displayed when the user presses F1
     during data entry for this field.  This value is placed in
     the field's HLP attribute when the field is placed in a
     SCREEN structure.  You may enter either a string constant
     (in single quotes) or variable name.

<Dimensions:>
Dimensions:
     If the field is an array, enter the number of array elements
     in each of up to four dimensions (see the DIM attribute in
     the Language Reference).

     The maximum size of an array is 64K, therefore the field
     size (in bytes) times the total number of elements (1st
     dimension times 2nd dimension times 3rd dimension times 4th
     dimension) must not exceed 65,535.

<Initial Value:>
Initial Value:
     Specify a "Pre-loaded" value for the field. Entering a
     value here allows the Clarion source code generated by a
     procedure Template to automatically initialize the field at
     run time. The value you enter is not edited.  This allows
     you to enter either a constant value, or an expression.
     This feature must be supported by the individual procedure
     Template to be effective.

<External Name:>
External Name:
     Specify the name of the field to be placed in the field's
     NAME attribute.  This may be different from the name used
     to refer to that field within the program (the Field Label).
     An external name is used for file system compatibility.
     See each file driver's documentation for clarification of
     the need for external field names in a specific file system.
     You may enter either a string constant (in single quotes)
     or variable name.

<Column Heading:>
Column Heading:
     Enter the default column heading for this field when it is
     placed on a REPORT or displayed in the Database Manager.

<Default Prompt:>
Default Prompt:
     Enter the default PROMPT field value for this field when it
     is placed in a SCREEN structure for data entry.

<Overlay Field:>
Overlay Field:
     If this field is to share a memory location with a
     previously defined field, enter the field which this field
     is being defined OVER (see the OVER attribute in the
     Language Reference).  The OVER attribute re-defines the
     memory occupied by one field as another field name, allowing
     you to reference the same memory location in two different
     ways. The size of the field being defined must not be
     greater than the size of the Overlay Field.

<Hidden>
[] Hidden
     When ON, this specifies the field cannot be displayed or
     accessed by the Database Manager.

<Validity Check:>
Validity Check:
     Displays the field's current setting specified on the
     Validity Checks window.

<Entry Options:>
Entry Options:
     Displays the field's current settings specified on the
     Entry Options window.

<Validity Checks... Button>
Validity Checks... Button
     Calls the Validity Checks window.

<Entry Options... Button>
Entry Options... Button
     Calls the Entry Options window.


<<Validity Checks Window>>

The Validity Checks window establishes rules for the entry of
valid data into a field.  These allow you to declare the valid
values this field may contain.  The implementation method of
these data entry constraints differs depending upon which one
you specify for the field.

<Validity Checks Off>
() Validity Checks Off
     Indicates that data entry validation constraints are not
     automatically performed for this field.  This does not
     preclude writing your own data validation code.

<Cannot Be Zero Or Blank>
() Cannot Be Zero or Blank
     Indicates that some type of information must be entered for
     this field (it is a "required" field).  This option places
     the REQ attribute on the screen field when this field is
     placed in a SCREEN structure in the Application Generator.

<Must Be In Numeric Range>
() Must Be In Numeric Range
     Indicates that the user must enter a numeric value which
     must be within the Lowest and Highest values specified.
     The procedure Template generates an INRANGE function in the
     field's post-edit procedure source code to verify that the
     data entered is within the upper and lower limits
     (inclusive).  This feature must be supported by the
     individual procedure Template to be effective.

<Must Be True Or False>
() Must Be True Or False
     Indicates that the field is allowed to contain only a zero
     (0) or one (1).  The Application Generator places this field
     on screen as a CHECK box.

<Must Be In File>
() Must Be In File
     Indicates that the value in the field must be duplicated in
     the file you specify.  The two files (the file you are
     currently defining and the file you name here) must already
     have a relationship defined in the Database Dictionary (the
     pop-up list of choices is limited to related files).  The
     duplicate value must be contained in a key component field
     of that related file.  The procedure Template generates a
     GET statement in the field's post-edit procedure source
     code to verify that the data entered is valid.

<Must Be In List>
() Must Be In List
     Enter a specific list of valid values the field may contain.
     The Application Generator displays the list of choices as
     RADIO buttons within an OPTION structure when you place this
     field in a SCREEN structure.  The user may then only select
     from these valid choices to enter data in the field.  Each
     item in the list must be separated by a blank space.  Blank
     spaces are not allowed within a choice -- to emulate a space,
     use the underscore character (_).


<<Entry Options Window>>

The Entry Options window allows you to declare the default
screen attributes used when this field is placed as an ENTRY
field in a SCREEN structure.

<Attributes>
Attributes
     These attributes specify actions taken "behind the scenes"
     when data is entered into the field by the user.

[] Immediate
     Places the IMM attribute on the screen field. This
     specifies that the field is completed automatically once the
     number of characters defined for the size of the field has
     been entered (eliminating the need for the user to press TAB
     or ENTER). This is most often used with fields that always
     have a fixed number of characters (zip code, phone area
     code, etc.).

[] Left Justify
     Places the LFT attribute on the screen field, which
     specifies that the characters entered in the field are left
     justified. If the user enters leading spaces, they are
     discarded when the field is completed.  STRING fields are
     usually left justified.

[] Hide Password
     Places the HIDE attribute on the screen field, which
     specifies that the information entered into this field is
     "hidden."  As each character is entered into this field, an
     asterisk (*) is displayed on the screen instead of the
     character.  This does not affect the data placed in the
     field, only the screen display, and is usually used with
     fields containing sensitive data (passwords).

<Typing Mode>
Typing Mode
     These attributes affect the insert/overwrite typing
     characteristics for the field.

() Insert
     Places the INS attribute on the screen field, which
     specifies insert mode for data entry.

     For character fields:
     Insert causes data being entered into a field already
     containing data to "push" the original data to the right
     until the size limit of the field has been reached.

     For numeric fields:
     Insert causes the field to be filled from right to left,
     calculator style.  This is the recommended mode for numeric
     fields containing information that varies greatly in length,
     such as fields containing currency data.

() Overwrite
     Places the OVR attribute on the screen field, which specifies
     overwrite mode for data entry.

     For character and numeric fields:
     Overwrite causes data being entered into a field already
     containing data to destroy the original data.

     For numeric fields:
     this also specifies that numbers are entered from left to
     right.

() AsIs
     Leaves both the INS and OVR attributes off the screen
     field.

     This specifies the typing mode is the same as the
     field previously completed.  The typing mode used is the
     typing mode "left over" from the immediately previous
     field.

<Character Mode>
Character Mode
     These attributes affect the data formatting of string
     fields.

() Normal
     Leaves both the UPR and CAP attributes off the screen
     field.  This specifies that the case of characters entered
     by the user is not modified.

() Upper Case
     Places the UPR attribute on the screen field. This
     specifies that the case of characters entered by the user
     is automatically changed to all uppercase, no matter what
     case the user types in.

() Capitalize
     Places the CAP attribute on the screen field. This
     specifies that the first letter of each word entered by the
     user is automatically changed to uppercase.  This affects
     the first letter in the field and each letter following any
     blank space. All other characters entered are automatically
     changed to lowercase.

     This can be overridden by using the SHIFT key (eg. McDonald
     - pressing the SHIFT w/ the "d" will override the
     attribute).

<<Memo Properties Window>>

The Memo Properties window defines the maximum size of the MEMO
field (Max Length) and the size of the TEXT Field (Display Rows
and Column Width) the Application Generator places on screen.

<Memo Label:>
Memo Label:
     Enter the label (name) of the field.  This is the name by
     which it will be referenced within the application.  As
     with all Clarion labels, the MEMO label may contain
     alphabetic characters, numbers, the underscore character ( _
     ), and the colon ( : ).  Labels may not begin with a number
     or a colon and are not case sensitive.

<Description:>
Description:
     Enter an optional description to explain the type of
     information stored in the MEMO field.  If the Memo Label is
     cryptic, it is a good idea to enter a meaningful description.
     Information entered in the Description field is placed as a
     comment in the generated source code.

<Display Rows:>
Display Rows:
     Enter the default number of rows used to display this MEMO
     field when it is placed in a TEXT field in SCREEN structure.

<Column Width:>
Column Width:
     Enter the default number of columns used to display this
     MEMO field when it is placed in a TEXT field in SCREEN
     structure. The number specified for Column Width should
     divide evenly into the Max Length specified.

<Max Length:>
Max Length:
     Enter the maximum number of characters that may be entered
     into this MEMO field.  The maximum length that may be
     specified for a MEMO field is 64K.  The maximum allowable
     size of a MEMO field varies depending upon the file system
     used.  Consult DRIVER.DOC to determine the maximum size
     allowed in a specific file system.

<Binary Contents>
[] Binary Contents
     Indicates that the MEMO field will not contain text, most
     likely data from a .PCX or .GIF image file.  This places
     the BINARY attribute on the MEMO field in the file
     declaration. See DRIVER.DOC to determine if Binary Memos
     are supported in a specific file system.

<Help ID:>
Help ID:
     Specify the help to be displayed when the user presses F1
     during data entry for this field.  This value is placed in
     the field's HLP attribute when the field is placed in a
     SCREEN structure.  You may enter either a string constant
     (in single quotes) or variable name.

<External Name:>
External Name:
     Specify the name of the MEMO to be placed in its NAME
     attribute.  This may be different from the name used to
     refer to that MEMO within the program (the Memo Label).  An
     external name is used for file system compatibility.  See
     DRIVER.DOC for clarification of the need for external MEMO
     names in a specific file system. You may enter either a
     string constant (in single quotes) or variable name.

<Column Heading:>
Column Heading:
     Enter the default column heading for this MEMO when it is
     placed on a REPORT or displayed in the Database Manager.

<Default Prompt:>
Default Prompt:
     Enter the default PROMPT field value  for this MEMO when it
     is placed in a SCREEN structure for data entry.

<Attributes>
Attributes
     These attributes specify actions taken "behind the scenes"
     when data is entered into the MEMO by the user.

[] Required
     Places the REQ attribute on the screen field.  This indicates
     the user must type something in the field during data entry.

[] Word Wrap
     Places the LFT attribute on the screen field to enable
     Word-wrap editing.   Word-wrap ensures that words do not
     span multiple lines in the display.

<Typing Mode>
Typing Mode
     These attributes affect the insert/overwrite typing
     characteristics for the field.

() Insert
     Places the INS attribute on the screen field, which
     specifies insert mode for data entry.  Insert causes data
     being entered into a MEMO already containing data to "push"
     the original data to the right until the size limit of the
     field has been reached.

() Overwrite
     Places the OVR attribute on the screen field, which specifies
     overwrite mode for data entry.  Overwrite causes data being
     entered into a MEMO already containing data to destroy the
     original data.

() AsIs
     Leaves both the INS and OVR attributes off the screen field.
     This specifies the typing mode is the same as the field
     previously completed.  The typing mode used is the typing
     mode "left over" from the immediately previous field.

<Character Mode>
Character Mode
     These attributes affect the data formatting of the MEMO.

() Normal
     Leaves both the UPR and CAP attributes off the screen field.
     This specifies that the case of characters entered by the
     user is not modified.

() Upper Case
     Places the UPR attribute on the screen field.  This specifies
     that the case of characters entered by the user is
     automatically changed to all uppercase, no matter what case
     the user types in.

() Capitalize
     Places the CAP attribute on the screen field.  This specifies
     that the first letter of each word entered by the user is
     automatically changed to uppercase.  This affects the first
     letter in the field and each letter following any blank
     space.  All other characters entered are automatically
     changed to lowercase.  This can be overridden by using the
     SHIFT key.

<Hidden>
[] Hidden
     When ON, this specifies the memo cannot be displayed or
     accessed by the Database Manager.


<<Key Properties Window>>

The Key Properties window allows you to declare a KEY or INDEX
for a data file.  KEY and INDEX declarations specify alternate
sort sequences for the data file.  The sort sequence is
determined by the component fields which make up the KEY or
INDEX.  Once the Key Properties window has been completed, the
Key Component window automatically appears to allow you to add
the component fields.

KEY and INDEX are functionally equivalent.  The difference
between KEY and INDEX lies in the fact that a KEY is always
maintained and an INDEX is not.  Every time a record is added,
changed, or deleted from the file, its KEYs are updated to
reflect the changes.  This means a KEY's sort sequence is always
correct and available for use.  An INDEX, however, is not
maintained and must be explicitly built immediately before it is
used.  This makes a KEY appropriate for a frequently used sort
sequence, and an INDEX appropriate for an infrequently used sort
sequence.

<Name:>
Name:
     Enter the name of the Key.  This is the label (appended to
     the file's prefix) by which it is referenced within the
     application's source code.  As with all Clarion labels, the
     key name may contain alphabetic characters, numbers, the
     underscore character ( _ ), and the colon ( : ). Labels
     may not begin with a number or a colon and are not case
     sensitive.

<Description:>
Description:
     Enter an optional description of the Key.  If the Name is
     cryptic, it is a good idea to enter a meaningful
     description. Information entered in the Description field is
     placed as a comment in the generated source code.

<External Name:>
External Name:
     Specify the name to be placed in the Key declaration's NAME
     attribute.  This may be different from the Name entered
     above.  An external name is used for file system
     compatibility.  See each file driver's documentation for
     clarification of the need for external key names in a
     specific file system.

<Key>
() Key
     Declares a KEY.  A KEY is maintained dynamically.  As the
     data file is modified, the KEY's sort sequence is
     automatically updated.

<Index>
() Index
     Declares an INDEX.  An INDEX is not maintained.  Before use,
     an INDEX must be built using the BUILD statement.

<Dynamic Index>
() Dynamic Index
     Declares an INDEX without any component fields.  This is a
     special form of INDEX where the component fields, and thus
     the sort sequence, are specified at run-time in the BUILD
     statement (see INDEX and BUILD in the Language Reference).
     A data file may have only one Dynamic Index.


<Unique>
[] Unique
     Specifies whether the Key allows duplicate key field
     values. When the Unique Check box is OFF, the DUP attribute
     is placed on the KEY declaration, which allows duplicate KEY
     entries -- records with duplicate values in the KEY's
     component fields. When the Unique Check box is ON, the DUP
     attribute is left off, requiring each record to contain
     unique values in the KEY component fields.  Unique is
     unnecessary for an INDEX definition.  An INDEX always allows
     duplicate records.

<Auto-Number>
[] Auto-Number
     Indicates the source code generated by a procedure Template
     should automatically increment the last component field in
     the KEY when a new record is added to the file. This
     feature must be supported by the individual procedure
     Template to be effective.  Auto-Number is meaningless for an
     INDEX since an INDEX is not dynamically maintained.

<Case Sensitive>
[] Case Sensitive
     Specifies whether the Key has a case sensitive sort order.
     When the Case Sensitive Check box is OFF, this option puts
     the NOCASE attribute on a KEY or INDEX, making the sort
     order independent of the case of the characters.  When the
     Case Sensitive Check box is ON, the NOCASE attribute is left
     off, making the sort order dependent upon the case of the
     characters.

<Exclude Nulls>
[] Exclude Nulls
     Specifies whether the Key includes entries for records
     whose key component fields are all blank or zero.  When the
     Exclude Nulls Check box is ON, this option puts the OPT
     attribute on the KEY or INDEX, which eliminates Key entries
     for records whose Key component fields all contain blank or
     zero values. When the Exclude Nulls Check box is OFF, the
     OPT attribute is left off and the Key includes entries for
     all records in the file.

<Primary Key>
[] Primary Key
     This option tells the Application Generator that this KEY
     fits the definition of a Relational Primary Key as
     described in the Database Design essay in the Programmer's
     Guide -- a Unique KEY whose component fields are all
     required (have the REQ attribute) for data entry.  An INDEX
     cannot be a Primary Key.


<<Key Component Window>>

The Key Component window allows you to maintain the component
fields which comprise the KEY or INDEX.  The component fields
determine the sort order specified by the KEY or INDEX.  Once
the Key Properties screen has been completed, the Key Component
window automatically appears to allow you to add the component
fields.

<Field Name:>
Field Name:
     Enter the name (label) of the component field or press TAB
     to select one from the Field List.

<Field List>
Field List
     Displays a list of all fields in the file.  When you select
     a field from this list, the Field Name receives the name of
     the field you selected.

<Ascending>
() Ascending
     Indicates that the component field is sorted within the key
     from lowest value to highest value.

<Descending>
() Descending
     Indicates that the component field is sorted within the key
     from highest value to lowest value.


<<Relationship Properties Window>>

The Relationship Properties window allows you to describe the
relationship between two files in the Database Dictionary.  File
relationships describe how files are linked based upon common
key fields, and how referential integrity should be maintained
(see the essay on Database Design in the Programmer's Guide).

<Relationship For (filename)>
     Relationships may be viewed and/or created from either the
     Parent or the Child side of the relationship.  This is the
     purpose of the Radio buttons in the Relationship For area.

() 1 to Many
     Indicates that the file for which the relationship is being
     defined is the One side of a One-to-Many file relationship.

() Many to 1
     Indicates that the file for which the relationship is being
     defined is the Many side of a One-to-Many file relationship.


<Primary/Foreign Key:>
Primary/Foreign Key:
     Specify the Key which contains the common (linking)
     field(s) between the file for which the relationship is
     being defined and the Related File.  If data in this file
     must be directly accessed from the Related File, you must
     name a Key here.  If no direct access is required, no Key
     need be named.

     The prompt for this field reads "Primary Key" when the 1
     to Many Radio button is active, and "Foreign Key" when the
     many to 1 Radio button is active.  These relate to the
     definitions of Primary and Foreign Keys as described in the
     Database Design essay in the Programmer's Guide.

<Related File:>
Related File:
     Enter the label of the Child or Parent file of the file for
     which the relationship is being defined.  If you specify
     Parent, then the Related File is the Child file, and vice-
     versa.

<Foreign/Primary Key:>
Foreign/Primary Key:
     Specify the Related file's Key which contains the common
     (linking) field(s) between the Related File and the file
     for which the relationship is being defined.  If data in
     the Related File must be directly accessed from the file
     for which the relationship is being defined, you must name
     a Key here.  If no direct access is required, no Key need
     be named.

     The prompt for this field reads "Foreign Key" when the 1 to
     Many Radio button is active, and "Primary Key" when the
     Many to 1 Radio button is active.  These relate to the
     definitions of Primary and Foreign Keys as described in the
     Database Design essay in the Programmer's Guide.

<Link Fields>
Link Fields
     This displays a list of the component fields of the Primary
     and Foreign Keys.  Each component field must be matched with
     its linking field in the corresponding file or specified as
     a "(NO LINK)". Components yet to be linked will be marked
     as (ToDo).

     NOTE:  LINKS LEFT AS (ToDo) WILL GENERATE CODE THAT WILL
            NOT COMPILE!

     A "NO LINK" specifies that the components from that point
     forward nolonger effect the Relationship between the files.

     Highlight the field for which you wish to define the
     linking field and press ENTER to call the Child/Parent Field
     to Parent/Child Field Link window.

     EXAMPLE:
     To create a Many:1 Relation between an Items file and an
     Invoice file with the following key structures:

     Ite:InvoiceKey                 Inv:InvoiceKey
          Ite:InvoiceNo               Inv:InvoiceNo
          Ite:Line                    Inv:Date

              You would select Many to 1.
              Foreign Key  :  Ite:InvoiceKey
              Related File :  Invoice
              Primary Key  :  Inv:InvoiceKey

                         Link Fields:
                     KEY(Ite:InvoiceKey)
              Inv:InvoiceNo > Ite:InvoiceNo
                  (NO LINK) > Ite:Line

                     KEY(Ite:InvoiceKey)
              Ite:InvoiceNo < Inv:InvoiceNo
              Ite:Line      < (NO LINK)

     To setup a relationsship that will be used only to validate
     data you will not specify a Foreign Key.  A good example is
     the use of a States file that validates the users placed a
     proper State code in to the Customers State field.


<Constraints... Button>
Constraints... Button
     Calls the Referential Integrity window.  This allows you to
     define the Update and Delete constraints placed on the
     relationship.


<<Child/Parent Field to Parent/Child Field Link Window>>

The Child/Parent Field to Parent/Child Field Link window allows
you to specify a linking field between files.  It presents a
list of all fields in the Parent/Child file to allow you to
select the linking field.

<Child/Parent Field:>
Child/Parent Field:
     Type in the name of the linking field or press TAB to select
     from the Fields list.

<Parent/Child Key Component:>
Parent/Child Key Component:
     Displays the field to which you are creating a link.

<Fields Of Child/Parent>
Fields Of Child/Parent
     A list of all fields in the Child/Parent file from which you
     may select the linking field.

<No Link Button>
No Link Button
     Complete the No Link Pushbutton when the field is part of a
     multiple component field Key and is not one of the components
     which establish the relationship between the two files.
     Therefore, there is no linking field for this Key component.
     Once you have defined a component field as No Link, any
     components following that field in the Key should also be
     set to No Link fields.


<<Referential Integrity Window>>

The Referential Integrity window specifies the action that
should be taken when the user attempts to change a linking field
value in the Parent or delete a Parent record with related Child
records.

For these options to have effect, the executable code which
performs the action(s) must be in the generated source code for
the application.  Therefore, these options are all dependent
upon implementation in each procedure Template's Template
language code.  If you write a custom procedure Template which
does not support these constraints, Referential Integrity may be
forfeit.

<Update Constraints>
Update Constraints
     These options specify the action which should be taken when
     the user attempts to change the values contained in the
     fields of the Parent file which link the two files.

() No Action
     Allow the Parent record's link field(s) to be changed,
     ignoring the Child records.

() Restrict
     Prevent the user from making changes to the link field(s)
     in the Parent record if Child records exist.

() Cascade
     Automatically update any existing Child records when the
     link field of the Parent record is changed.

() Clear
     Allow the Parent record link field(s) to be changed and
     clear (set to blank or zero) the link field(s) in the Child
     record(s).

<Delete Constraints>
Delete Constraints
     These options specify the action which should be taken when
     the user attempts to delete a Parent record which has
     related (existing) Child records.

() No Action
     Allow the Parent record to be deleted, ignoring any Child
     records.

() Restrict
     Prevent the user from deleting the Parent record if Child
     records exist.

() Cascade
     Automatically delete any existing Child records when the
     Parent record is deleted.

() Clear
     Allow the Parent record to be deleted and clear (set to
     blank or zero) the link field(s) in the Child record(s).


<<Select Window>>

The Select window displays a list of valid choices from which
you may select.  The list of choices displayed (and the Title of
the window) is dependent upon where it has been called from.

<Select Button>
Select Button
     Press this button to choose the currently highlighted
     selection.


