Category : Databases and related files
Archive   : SIMPLE-2.ZIP
Filename : DOCUMENT

 
Output of file : DOCUMENT contained in archive : SIMPLE-2.ZIP

Making Backup Copies

A backup copy is a duplicate copy of the original diskette
that you can use if your diskette becomes damaged. The original
and backup diskettes should be maintained in different
locations. On-site and Off-site storage is recommended; for
example, keep one copy in the office and another in a safety
deposit box.

Before using your DesignerWare product, make TWO backup
copies of the original diskette. Then, store the original and
first backup diskette in a safe place. Use the second backup
copy as the working copy. If your working copy becomes destroyed
you can use your first backup disk. If that also becomes
destroyed you could use the original (ie. to make more copies).

To make a backup of your DesignerWare product use the
DISKCOPY command (refer to your DOS manual).

BACKUP using two diskette drives.

1. Insert the original DesignerWare diskette in drive A.

2. Type A>DISKCOPY A: B:
If DOS is installed on the fixed disk: C>DISKCOPY A: B:

3. Insert the original diskette to be copied in drive A.

4. Insert the target (backup) diskette in drive B.


BACKUP using one diskette drive:

1. Insert the original DesignerWare diskette.

*2. Type A>DISKCOPY A: A:
If DOS is installed on the fixed disk: C>DISKCOPY A: A:

3. Follow the prompts, which tell you when to insert the
original and target (backup) diskettes.

* Note: The drives may be different depending on the version
of DOS and the configuration of your computer. Check your
DOS manual for the procedures in copying diskettes.










Shareware DesignerDemos

DesignerWare allows the distribution of their Shareware
DesignerDemos without any infringements of its copyrights. We
encourage the user to introduce other users to our applications
and the tailored fit concept. Shareware DesignerDemos can be
distributed as long as no fee, other than a small charge for
distribution cost, is charged.

Shareware DesignerDemos have been limited to provide you,
the user, the opportunity to evaluate the applications ability
before you buy it. These packages will also introduce you to the
standard DesignerWare features.

Each DesignerWare application has the same 'look and feel'.
All DesignerWare applications use the same user interface. This
cuts training costs. If you learned one application, you are
already on your way to learning new applications.

DesignerWare applications provide all the powerful database
management features you need plus some you didn't know you
needed.

Just some of what you get:
Up to 1 billion records (if diskspace allows) per
database.
Data import/export capability.
Allows you to pass data to and from other
applications (ie. mail merge)
User created reports.
Dbase compatible reports and label formats
DesignerWare reports
capable of creating forms and letters using
database fields
Multi-field Dynamic sorting and indexing.
Both ascending and descending
Soundex indexing.
Locating records by sound.


Not only do you get these features and many more, you get
the application you want. DesignerWare believes you should not
settle for an off the shelf software package that is not tailored
for your needs. If our DesignerWare application does not fit
your needs, off the shelf, we will modify it to your
specifications. If a DesignerWare application does not currently
exist, we will create it for you.

For a complete list of DesignerWare applications write:

5000 E. Bonanza Box 8531
Las Vegas, NV 89110

or call (702) 438-5535
Shareware DesignerDemos are restricted in the number of records
you may maintain. This allows you to test the program and ensure
it meets your requirements.

Powerful features include:

Here is a list of just a couple of features you will enjoy
when it comes time to print products from your database.

Build routine:

The Build routine allows you to build column reports with
all or only certain fields (FRM files). You can enter your own
remarks or use Valid operators.

You can also build labels (LBL files) which can contain user
remarks or Valid operators. Create personal labels, return
address labels and more.

One of the most powerful functions of the Build routine is
DesignerWare Report Writer (DRW). With the DRW manager you can
build custom reports for your database and more. These files can
be a report containing only fields from the database or user
entered data. Entering text allows you to build your own form
letters, custom receipts, and more.


Reports routine:

This routine allows you to print FRM/LBL/DRW files to the

screen, printer, or any device in a variety of user defined
conditions.


Export routine:

This routine allows you to export data from the database to
another file. The export file can be in a variety of user
defined sequences and formats. One of the formats most commonly
used is the Mail Merge format. Mail Merge format is fully
supported.



Compatible files



Remember index (NDX) files, database (DBF) files, Label
(LBL) files, Form (FRM) files are 100 % compatible with Dbase III
and any other program that uses these file formats. This allows
you to use other programs to fully exploit your database.


Why purchase the program?

When you purchase the program you receive an expanded
version which includes the Build, Reports, and Export routines
with no restrictions on the number of records.

You will also receive the last version of the program,
current documentation, and be notified of changes through our
news letter. You will also have access to our on-line support
service.












































README.1ST file

The file called README.1ST is on your disk. This file
contains the information about features, purpose, and overall
information. Print this file first.


README file

There maybe a file entitled "README" on your diskette. The
README file will provide additional operating instruction and
any applicable update information for your DesignerWare
application. This documentation was not available at printing
time and is therefor recommended that you print this file and
retain it with your documentation.

To view the README file, enter A>TYPE README




LIST file

There is also a file called "LIST" on you distribution
diskette. It contains all the file names included in this
package.



FORM file

Included on your diskette is a file called "FORM". This
file contains the forms used for making modifications and
ordering NEW applications. This file also contains the cost for
modifications, maximum fields, price, maintenance fees, and how
to obtain DesignerDemos.


HARDWARE REQUIREMENTS:


MSDOS Ver 2.0 or greater
512K of Ram
IBM PC,XT or AT (or compatible 100%)
ANSI terminal support.









THE DesignerWare CONCEPT:

DesignerWare applications provide powerful yet flexible
database management. An applications features are important but
are useless if the database itself does not meet the users needs.

For this reason, DesignerWare offers CUSTOM FIT databases
for our users. If an applications database structure does not
fully meet your needs, then why use it. If our application fits
perfect off the rack, fine. If it doesn't, we will tailor it.
If we don't offer an application you need, we'll design it.
This custom fit concept is what DesignerWare is all about. Don't
settle for less.

As a registered user, you have the right to our limited warranty
and 30 day money back guarantee.



WARRANTY

DesignerWare warrants the program to preform, as to all
substantial operation features documented and authorized
advertising. DesignerWare further declares, the user
documentation accompanying the program contains the necessary
information to utilize the program; that, the media on which the
program is furnished shall be free from defects in material and
workmanship for a period of ninety (90) days form the date of
purchase.

30 Day money back guarantee

If our software does not do what we advertise. To receive a
refund: you must report the problem within 30 days of the invoice
date, if we fail to correct the problem within 60 days, you will
be given a return authorization number. Upon our receiving the
material with the return authorization number your purchase price
will be refunded. Returns without a return authorization number
will not be accepted.















COMMAND SWITCHES

The program can be invoked from DOS by using command
switches. Command switches alter the settings/functions within
the program. Example:

PROGRAM C
PROGRAM U
PROGRAM UCS2

Note: PROGRAM is the name of the program you are trying to
invoke from the DOS prompt.

Command switches can be entered in any sequence and in lower
or upper case letters. You can enter all or only certain command
switches.




U Command switch

The U command switch is used to force the Set Unique
function ON.

Also see: Set Unique function




S Command switch

The S command switch is used to force the Set soft seek
function ON.

Also see: Set soft seek function




C Command switch

The C command switch is used to force the automatic
selection of colors, if a color monitor is detected, OFF.

Also see: Color function








1-6 Command switch



The 1 through 6 command switches are used to override the
default color. If you prefer color 6 from the Utilities/Options
Menu, you can always start the program with that color.

Note, you can enter a combination of numbers on the command
line but, the last number entered will be you color selection.
If you select a different color it will only be used if the color
graphics card on your computer returns color to the program.

Also see: C Command Switch, Color function, Change Color
function







































Running program requirements:
GETTING STARTED


The program can be run on a single floppy disk drive system
or a hard disk. Either operation is fine for the program but, a
hard disk system allows you to maintain more records in the
database.

Single Drive computer system:

If you are running the program in a single drive computer
you should first create a data disk. Format a brand new floppy
disk and label it DATA DISK. Once this is done, take your
program disk and insert it into the drive and start the program.
Once the program starts you will be displayed the DesignerWare
logo welcoming screen. At this time you will remove the program
disk and insert the DATA DISK.

The first time you use the DATA DISK you will receive an
error message indicating there are no database files on the disk.
When this happens select number 4, from the utilities/option
menu, to create the files.

The only restriction to using a floppy disk for the database
is the maximum number of records is limited to the size of the
floppy disk.

Dual Drive computer system:

If you are using a dual floppy drive computer you can use
the same procedures as outlined in the single drive computer
system. You may also choose to use both drives. If you do than
format a brand new floppy disk and label it DATA DISK. Insert
the program disk in drive A and the DATA DISK in drive B. Then
do the following.

THE FIRST TIME start the program from drive A. Select
the Utility routine from the Function menu (in Main
Menu). Select 4, to create a new database on drive B.
When asked to change disk drives enter Y. Enter B:
when asked for the drive and directory. The program
will create the database. Select Y when asked to use
the newly created database.

THE NEXT TIME you run the program you just select 3, in
the Utility/Option menu, to change the drive to B:.







Hard disk set-up:

This is probably the must usefully way to install the
program. With a hard disk drive your total records are limited
to the size of your disk. The best way to install the program on
a hard disk is to first great a sub-directory and then copy all
the files from the Program disk to sub-directory.















































MAIN MENU OPERATION

The Main Menu is set-up to allow the user a pull-down menu
selection operation. When the program is first started you are
placed in the Data pull-down menu. Using the Up Arrow and the
Down Arrow you can highlight your choice. Once your choice is
highlighted, pressing the Return/Enter Key will execute that
routine. By using the Left and Right Arrow you can leave each
pull-down menu and enter another.

Hot Keys:

Within a pull-down menu you can press the first letter of
each routine, you wish to perform, and it will automatically be
executed. You can also select the first letter of the pull-down
menu you wish to move to and you will be automatically put in
that pull-down menu. Example: If you are in the Data pull-down
menu and you wish to move to the Function pull-down menu then
press the F Key.

Information being displayed:

The upper left corner of the Main Menu shows the present
setting of the Set Unique function and the Set soft seek
function.

Above the pull-down menu (on the left) is the current name
of the database and index file being used by the program. If the
files are in a directory other than the default directory, the
directory will also be displayed.

Exiting the Main Menu:

The Main Menu can be exited by pressing the ESC Key and by
entering Y.

Help Routines:

The Help routine is used for a quick reference to the
routines and the purpose of each routine.

In addition to the Help routine, in the Main Menu, the
program also has exploding pop-up windows. These windows
contain useful help for the routine or function.










The Main Menu is set-up into four pull down menus which are
as follows:

1. Data
2. Listings
3. Functions
4. Help

1. Data Menu is for the following routines:

Viewing routine to view up to 11 records at a time.
Editing records in the full screen mode. Adding
records to the database manually or import them from
another file. Pack the file and remove deleted records
and maintain a DBF with deleted records.

2. Listings Menu is for the following routines:

Building label files, form files, and DesignerWare
reports (FRM/LBL/DRW). Use the word processor/text
editor to create custom reports or letters, forms, etc.
Print reports to the screen, printer, or any device
based on a condition. Export data from the database
to another file. Variety of formats are available,
even Mail Merge. Display the structure of the
database, present setting of m(O)de function and
(2)Carry function.

3. Functions Menu is for the following routines:

This is for information about the system and database
being used. Utilities for changing the way the program
works and changing to another database and creating a
new database. Sort and/or Index the database on one or
several fields. Change Confirm to ON and make data
from the keyboard be confirmed with a Enter/Routine
key.

4. Help Menu is for the following routines:

This menu series is for identifying a short description
of the other menus and there purpose.













SECTION I




This section describes the routines and functions available
within the Data Menu.














































VIEW ROUTINE


The View routine allows you to view up to eleven records at
one time. While in the View routine you can edit data and add
records to the database.

The View routine displays the records, of the database, in
the sequence of the Key Field. View is also affected by the Set
Filter To function.

The records are displayed in what is called the viewing
box. The top right will display the current record number
followed by the total records in the database. For example
"1/500", would mean record number one of 500. Also, just before
the record number indicator, you will be displayed Row or Col.
Col indicates View is moving in column sequence after edits. Row
indicates View is moving in row sequence after edits. Note: The
records are presented in the logical order of the Key Field and
NOT record number sequence.

At the top of the screen will be four help boxes. Box one
shows the keys used for moving from field to field. Box two
shows the keys for moving from record to record. Box three
shows deleting functions. Box four is for inserting and exiting.
These help boxes are a short reminder of the keys. To further
understand the keys see View Commands.




The following keys effect the operation of the View routine:


VIEW COMMANDS:


ESC - Is used to escape the View routine and return to the Main
Menu or to exit the edit mode.


Enter/Return Key - Press the Enter/Return key to enter the edit
mode on a particular field.


Left Arrow Key - Moves one field to the left unless you are in
the edit mode. In the edit mode the Left Arrow key moves you one
character to the left.


Right Arrow Key - Moves one field to the right unless you are in
the edit mode. In the edit mode the Right Arrow key moves you one
character to the right.

Home Key - Moves to the left most field on the screen or to the
first character in the edit mode.


End Key - Moves to the right most field on the screen or to the
last character in the edit mode.


Ctrl+Left Arrow Key - Use this key combination to pan move to the

left.


Ctrl+Right Arrow Key - Use this key combination to pan move to
the right.


Up Arrow Key - Moves up one record in the database.


Down Arrow Key - Moves down one record in the database.


PgUp Key - Moves up one page in the database.


PgDn Key - Moves down one page in the database.


Delete Key - Deletes or Undeletes a record for deletion. If you
are in the edit mode, the Delete key will delete the characters
in the field.


Insert Key - Is used while in the edit mode to insert characters.


Working with View:


The edit mode can be entered two ways. You can highlight
the field and press the Enter/Return Key to start editing. You
can also just start typing data. This will delete the contents
of the field and starts entering data. If you make a mistake or
accidentally edited or altered the wrong field then press the ESC
key. This will abort any changes you may have made to the field.

When the View routine is entered it starts at the top-of-
file which is controlled by the Key Field Index. The exception
to this is when View is called as a function in the Add routine
or the Edit routine (See View function).

The View routine keeps the first (sometimes first two)
fields of the database in a first field window which is located
outside of the viewing box. The first field window indicates the
current position of the cursor. It is very useful when these
fields have been panned off the screen.

If the user is standing on the PgUp or PgDn key the View
routine will temporarily suspended writing the records to the
screen. This makes the fastest page up and downs possible.
Also, when the top-of-file or the bottom-of-file is reached the
first field window may not be correct until an arrow key is
pressed.

The direction in which the View routine moves after editing
a field can be changed from column to rows. This allows you to
change data by record or by column. To do this use the Col/Row
function.

Also see: Toggle View Col/Row function






































ADD ROUTINE


The Add routine allows you to add records to the database.
You can manually add records or you can use the Import function
to import data from another file. When the Add routine is
entered, the database and index are closed. Any filter that may
be in effect is turned off and is saved. After the Add routine
is complete the filter is turned back on. The Add routine
starts in the full screen mode and places you at the command
line.

The Add routine works in a temporary database without any
index file. This allows the user to effectively see the records
they have added and only those records. Because there isn't any
index file active you will also see the records in the same
sequence in which they were added. In addition, no index allows
the user to use the Replace function on any field.

In the upper corner of the screen, the record number and the
total records will be displayed. For example, "1/500" means this
is record number one of 500. If the total records is equal to
ZERO then there are no records in the add database.

Exiting Add routine:

To exit the Add routine press the ESC key at the command
line. Once you press the ESC key you will be asked to confirm
quitting. At this time you have the opportunity to abort the Add
routine by entering an A or Y to add records.

Aborting the Add routine will not add the records to the
database. Instead everything is aborted and no records will be
added.

If the Add routine is not aborted, the records will be added
to the database. You will be asked to add only the records NOT
marked for deletion or both.

Considerations for Add routine:

The Add routine works in a temporary database file. Because
of this, you must ensure there is enough room on the disk for the
temporary file. When you exit the Add routine (if not aborted)
the records are added to the database and the temporary database
is deleted. If an error occurs during this process (ie. disk is
full). It is possible to recover the newly added records if the
temporary file has not been deleted. This can be done by exiting
the program, check the disk for the presence of the temporary
DBF, copy the file to another disk drive, delete the temporary
DBF, re-enter the program and use the Import function to import
the file as a DBF file.

Also see: Add/Edit functions, Import function
Import function

The Import function is used to import records from another
file to the temporary add database. These records can then be
edited and added to the current database. The import file can be
a standard DBF file or ASCII (Cr/Lf file) file.

The Import function can also be used to import records from
the backup file created with the Pack routine or the purge file
created with the Purge routine. The files created with Pack and
Purge are DBF files and will have to be imported as such.

SDF formatted import file:

SDF identifies a System Data Format ASCII file. This is a
file with each record separated with a carriage return and line
feed. Each record is a fixed length and the end-of-file mark
is a Ctrl+Z (1A hex).

DELIMITED formatted import file:

Delimited identifies an ASCII file, where fields are
separated by commas and characters fields are bounded by double
quote marks. Fields and records are variable length and with a
carriage return and line feed. The end-of-file mark is a Ctrl+Z
(1A hex).

Note: The delimiters are not required and the program correctly
adds character fields not bounded by them.

DELIMITED BLANK formatted import file:

Delimited blank identifies an ASCII file where fields are
separated by one space and character fields are not bounded by
delimiters.

DBF formatted import file:

DBF identifies a Database format file. The import database
fields with the same name and types are added to the temporary
add database. The source and target fields must be the same data
type. If they are not, a miscellaneous runtime error is
generated with a "type mismatch" informational message.


Note: SDF, DELIMITED, DELIMITED BLANK files must have the data
for each field in the same sequence as the fields. Use the
Structure routine to see the sequence. DBF formatted files will
only import the fields matching the database. Fields not in the
database will be ignored. DBF import files do not have to have
the fields in the same sequence as the database.

Also see: Add routine

EDIT ROUTINE




The Edit routine allows for the editing of one record at a
time in the full screen mode. The Edit routine starts the full
screen edit mode at the top-of-file and places you at the command
line.

While in the Edit routine the records of the database will
be displayed in Key Field sequence (see Index routine). If a
filter is set, the database will be presented based on the
filter condition.

In the upper corner of the screen, the record number and the
total records will be displayed. For example, "1/500" means this
is record number one of 500. Remember the records are being
presented in the logical order of the key field and not record
number sequence.

Hint: To make the logical order of the database match the
record numbers; use the Sort routine to sort the database on the
Key Field.


Also see: Edit/Add functions, Set Filter To function



























EDIT/ADD FUNCTIONS




m(O)de function

The m(o)de function allows the user to selected the fields
they wish to be edited and the sequence in which fields are
edited. When the program is first started all fields are
available for editing in the default sequence. You can use the
m(O)de function to change the sequence in which fields are edited
or to select only certain fields to be edited.

This is a very powerful function allowing the user to custom
adapt the full screen mode to their needs.

Once the m(O)de function has been selected it stays in
affect until the program is exited or the m(O)de function is
changed. To check which fields are set for editing and the
sequence, use the Structure routine in the Main Menu.

Also see: Structure routine




Top function

The Top function is used to move to the first logical record
in the database. If in the Edit routine, this will be controlled
by the Key Field. If in the Add routine, this will be the first
record in the database.

Also see: botto(M) function





Back function

The Back function is used to go back one record in the
database. The Up Arrow Key also call this function.

Also see: Skip function








Locate function

The Locate function is used to Locate a record based on a
logical condition. This function will search for the first
record (from the present record) that matches the condition. The
Locate function works with the Continue function. Any time
later, you can resume the locate from the current record using
the Continue function.

Note: The Locate searches the field(s) from left to right and
will not locate data within a field. To do this us the searc(H)
function.

Uses of Locate function:

You can locate on one or several fields for example:

AUTHOR = "DesignerWare"
AUTHOR = "DesignerWare" .AND. COST > 30.00

Hint: The Locate function is upper and lower case letter
sensitive.

You can also use valid operators in the Locate function, for
example:
LEFT(Author,5) = "DESIG"
or UPPER(Author) = "DESIGNERWARE"

Also see: Continue function, searc(H) function, Find
function, Valid operators




Find function

The Find function is used to search the Key Field for the
first record matching the specified character string (argument)
and positions of the database on that record.

The Find function searches the controlling Key Field,
starting with the first key, and proceeds until a match is found
or there is a key value greater than the find argument. The
Find function performs a rapid search on the database.

Working with the Find function and the sounde(X) function:

If you have turned on the sounde(X) function and no matching
Key Field is found, the Find function will then search the
controlling Key Field, starting with the first key, for a key
with a phonetic sound matching the find argument.



Working with the Find function and soft seek ON:

If Set soft seek is ON and the Find function does not find a
record, the record with the first key value greater than the
find argument will be found. If there is no Key Field greater
than the search argument then NO record will be found. If you
have turned ON the sounde(X) function, phonetic sounding keys
will only be checked when there are no Key Fields with a greater
value (ie. soft seek has first precedence).


Working Find function with Soundex Index:

If you used the soundex sequence when using the Index
routine then the Key field will be checked for a key that sounds
like the find argument. If there is no Key Fields sounding like
the find argument and Set soft seek is ON. The first record with
a key value greater than the find argument will be returned.

Hint: The Find function reads from left to right and will not
find an item within a Key Field. Use the searc(H) function for
this. Find is lower and upper letter case sensitive. If you
have indexed on more than one field you will have to remember the
left to right read and to use trailing blanks where appropriate.
Example:

Indexed on two fields which are as follows:

(Field Name) (Type) (Length)
AUTHOR Character 15
COMPUTER Character 5

Find this item: Found Y/N
DesignerWare IBM Yes
DesignerWare IBM No
DesignerWare Yes
Pc Group IBM No
Pc Group IBM Yes
IBM No

Notice the AUTHOR field is padded with spaces to make it a
total of 15 characters long. When this is not done the item is
not found.

Note: The Find function is not available in the Add routine
because the Index file is not used.

Also see: sounde(X) function, Soundex Index, Set soft seek
function





Skip function

The Skip function is used to go forward one record in the
database. The Down Arrow Key also call this function.





Continue function

The Continue function is used to continue with the last
Locate function. The continue will continue from the current
record to the end-of-file.

The Locate function must be set before the Continue function
will work.

Also see: Locate function




Replace function

The Replace function is used to replace the data in a field
for ALL or ONLY CERTAIN records. When this function is called
you must select a field to replace data in. You can select a
logical condition or no condition for all records. The Replace
function will replace the fields current data with the new data.

Note: If you are in the ADD routine, only the records in the
temporary database are affected.

Replace function on a Key Field:

In the Edit routine you cannot replace data in a Key Field.
To replace data in a Key Field use the Index routine to set the
Key Field to another field other than the one you wish to replace
data in.

Also see: Setting Conditions












m(A)ss delete function

The m(A)ss delete function is used to selectively mark a
group of records for deletion. When this function is call you
will be asked to set a condition for the deletion. The m(A)ss
delete function must have a condition. Without a condition all
records would be marked for deletion. The Zap function is used
for this.

Note: The records are only marked for deletion. To remove them
physically from the database you must use the Pack routine.

Unmarking records for deletion:

To unmark records for deletion use the Undelete all
function or the Un-delete function.

Add routine and deleted records:

If you are in the Add routine, the records marked for
deletion may be added to the database when the Add routine is
terminated. When you exit the Add routine, if you choose to add
records marked for deletion, you could use the Undelete all
function for undeleting records.

Also see: Delete function, Undelete all function, Un-delete
function, Zap function, Setting Conditions


bottom(M) function

The botto(M) function is used to move to the last logical
record in the database. If in the Edit routine, this will be
controlled by the Index file. If in the Add routine, this will
be the last record in the database.

Also see: Top function




View function

The View function allows you to call the View routine while
in the Edit and Add routines. The View function sets the record
pointer to current record and calls the View routine. When View
is exited, the full screen mode is set to the record
last used by view. See View routine for operating View.

Also see: View routine




Delete function

The Delete function marks the current record for deletion.

Note: The records are only marked for deletion. To remove them
physically from the database you must use the Pack routine.

Unmarking records for deletion:

To unmark records for deletion use the Undelete all
function or use the Un-delete function.

Add routine and deleted records:

If you are in the Add routine, the records marked for
deletion may be added to the database when the Add routine is
terminated. When you exit the Add routine, if you choose to add
records marked for deletion, you could use the Undelete all
function for undeleting records.

Also see: m(A)ss delete function, Un-delete function, Zap
function, Undelete all function



Un-delete function

The Un-delete function is used to unmark a record that has
been marked for deletion.


Also see: Delete function, Undelete all function, Zap
function



searc(H) function

The searc(H) function is used to locate data within a field.
The searc(H) function starts at the current record number to the
end-of-file. This can be used when you wish to locate records
which contain letters or words within a field. For example:

(FIELD) Data in field searc(H) for Found Y/N

AUTHOR PC COMP. CLUB PC Yes
AUTHOR LIMITED PC CLUB PC Yes

Once a record is located you can continue the searc(H)
function with the Go function. The searc(H) function is upper
and lower letter case sensitive.

Also see: Go function, Locate function, Find function

Go function

The Go function is used to continue with the last searc(H)
function active. The Go function will continue from the current
record to the end-of-file.

The searc(H) function must be used before the Go function
will work.

Also see: searc(H) function




sounde(X) function

The sounde(X) function is used to create a temporary
phonetic search library on the Key Field. This library is
searched every time a matching item cannot be found using the
Find function.

The sounde(X) function is only available in the Edit routine
and is automatically exited when the Edit routine is exited.
When using this function make certain the disk you are using has
enough disk space for the temporary soundex library. The soundex
library requires the same amount of disk spaces as the NDX file.

Using sounde(X) with soft seek ON:

If the Set soft seek function is ON, the soundex library
will only be searched after the soft seek fails.

Using sounde(X) function with a Soundex Index:

If you have used the Soundex sequence when you ran the Index
routine then the sounde(X) function will not be available. You
must run the Index routine and select an Ascending or Descending
Index.




Edit function

The Edit function allows you to enter the edit mode and edit
data in the current record. The sequence and the fields being
edited are controlled by the m(O)de function.

While in the edit mode the following navigation keys are:

Left Arrow - Character left. Does not move the cursor to another
field (also Ctrl+S).


Right Arrow - Character right. Does not move the cursor to
another field (also Ctrl+D).

Ctrl+Left Arrow - Field to the left (also Ctrl+A).

Ctrl+Right Arrow - Field to the right (also Ctrl+F).

Up Arrow - Previous field (also Ctrl+E).

Down Arrow - Next field (also Ctrl+X).

Return/Enter - Next field (also Ctrl+M).

Home - First character in field.

End - Last character in field.

Note: Pressing Home or End in the quick succession goes to the
first or last non-blank character in the field.

Editing keys:

Del - Delete character at cursor position (also Ctrl+G).

Backspace - Destructive backspace (also Ctrl+H).

Ctrl+T - Delete word right.

Ctrl+Y - Delete from cursor position to end of field.

Esc - Restore current field to original value (also Ctrl+U).

Ins - Toggle insert mode (also Ctrl+V).

Exiting keys:

Ctrl+W or
Ctrl+C - Terminate field, saving contents and return to command
line.

Return/Enter - Terminate if in the last field being edited (also
Ctrl+M).

Esc - Terminate field without saving current field.

Multi-Page database Keys:

PgUp or
PgDn - These keys will move you from one database page to
another (see Set Lock for routine for more information.




(1)Add function

The (1)Add function is only available in the Add routine.
It automatically adds a blank record to the temporary database
and places you in the edit mode for entering data (see the Edit
function for the keys used in editing/entering data).

If the (2)Carry function is turned on, the fields selected
for carrying data will have the contents of those fields, from
the last record, entered into the newly created record. Once
the edit mode is terminated the record will be added to the
temporary database and another blank record will be added to the
temporary database and you will be placed back into the edit
mode.

To terminate the (1)Add function press the ESC key to return
to the command line.

Note: The (1)Add function does not check for blank
records. So, be careful not to create blank records which will
be added to your database unless this is your intent. You can
use the Delete function to mark blank records so they will not be
added to the database.

Also see: (2)Carry function, m(O)de function




(2)Carry function

The (2)Carry function is used to select certain fields from
a pervious record to be automatically carried to newly created
records. Once you select fields to be carried they stay in
effect until the program is terminated or the (2)Carry function
is turned off.

To turn the (2)Carry function off. Call the function and
don't select any fields.

Working with the (2)Carry function:

After you have selected the fields to be carried. The
fields from the last record in the temporary database will be
carried to newly created records.

If there are no records in the temporary database, the
fields will be carried after the first record is added.

To check the fields that are set for carrying, use the
Structure routine in the Main Menu.

Also see: m(O)de function, Structure routine

Add and Edit routine screens



When you enter the Add or Edit routine you will be displayed
the input page. The input page will display the fields available
for this database page. The first line of this screen is called
the status line. The status line shows current information about
the database page.

The first left corner of the status line shows which routine
you are in. The next position will show the message (Mode on)
when the Edit or (1)Add functions are called. This indicates you
have altered the original sequence of fields with the m(O)de
function.

The Rec message is displayed next. It will be displayed
as current record number/total records. Remember in the Edit
routine the records are being displayed in the logical sequence
of the Key Index Field(s) and not record number sequence.

The computers current date is displayed next. After the
date you will be displayed Ins if the insert key is on for
editing.

DELETED will be displayed next if this record has been
marked for deletion. Next, you will see the page number of this
database (see Set Lock routine).


























PACK ROUTINE




The Pack routine performs three functions:

1. Creates a backup of the database.

2. Removes all records marked for deletion.

3. Create a purge file.

The Pack routine first makes a copy of the database. This
backup database can be used to recover accidentally deleted
records or to recover from an accidental deletion of the database
(see recovering data). The backup database also contains all
records even the ones marked for deletion.

Once the backup database has been successfully created. The
Pack routine will remove any records that have been marked for
deletion. The end result will be a database containing only the
records not marked for deletion.

Starting Pack:

When Pack is started you will be asked to enter a disk
drive, directory, and backup database name for the backup
database.

Once a disk drive, directory, and backup database have been
entered, the program will check to ensure the disk drive and
directory mentioned do not already contain the backup database.
If it does, you will be warned before it is overwritten. Next,
the disk drive will be checked to ensure it can hold the backup
database. The Pack routine will abort if there is not enough
storage space.

















Packing file using Unique On:

Packing the database with the Set Unique function ON will
remove any duplicate Key Fields from the database. The database
will also be physically sorted by the Key Field.

The Pack routine will give you the opportunity to only
remove records marked for deletion WITHOUT removing duplicate Key
Fields and WITHOUT sorting.

If you do decided to remove duplicate key records, the Pack
routine will check for additional disk space. The Pack routine
will abort if the disk space is not available. To remove
duplicate key records from the database being used the backup
DBF must have enough room for two databases. This is calculated
as follows:

Backup database = This is the backup database.
Temp database = Temporary file used to remove duplicates.

Note: The drive which is checked and must hold the
temporary database is the disk drive identified in the name of
the backup database file name.

Purge function:

The Pack routine allows you to maintain a continuing purge
database which will contain all records deleted. This is a very
powerful function which can be used to maintain a continuous
database of all deleted records.

The difference between the purge database and the backup
database are as follows:

The backup database contains all records and is overwritten
each time the Pack routine is run. The purge database however,
is continually maintained and deleted records are appended each
time.
















Working with Purge function:

The Purge function maintains a database with all the records
that have been deleted from the database. You can use this to
perform statistics and produce reports. You can also use the
purge database to recover accidentally deleted records.

Each time the Pack routine is run you should always use the
same purge database. This will ensure all deleted records are
maintained.

Caution should be used when using the Purge function to
ensure the file doesn't become to large for the disk being used.

You may also decided to use the primary database name used
by the program. If this is done, you must put the Purge database
on another disk drive or directory. By doing this, any time you
wish to preform statistical analysis or produce FRM/LBL/DRW
reports on deleted records you could use the Change disk drive
function to change to the Purge database. This would allow you
to instantly access the deleted records.

Note: The Purge function does NOT maintain records which
were delete using the Zap function.

Hint: You can use the Import function to import the purge
database into the temporary add database. This will allow you
to see the records in the purge database. When you exit the Add
routine Abort it or choose not do add records marked for
deletion. This will prevent them from being added to the
database.

Hint: To recover specifically deleted records, use the
Import function to import the purge database. Use the Un-delete
function to unmark the records marked for deletion then exit the
Add routine.

Note: The purge database doesn't maintain records that have
been removed with Unique ON. The backup database will contain
records that were removed with Unique On. But, they will be
overwritten if Pack is run consecutively.

Also see: Set Unique function, Recovering data, Undelete all
function










Set Lock Routine




The set lock routine is used for multi-page databases ONLY.
If the program is not a multi-page database you will be displayed
a notice.

Overview:


A multi-page database allows you to logically see fields
from the database on a sperate database pages. For example:


Real database Pg1 Pg2 Pg3
Name1 Name1 Name1
Name2 Name2 Name2
Address1 Address1
Address2 Address2
Phone Phone
Father Father Father
Mother Mother Mother
Address3 Address3
Address4 Address4



Multi-pages allow you to actually maintain 3 logical
databases. Each database page can contain all or only certain
fields from the database. Also, each database page could
contain the same field(s).




Working with multi-database pages:

The Set Lock routine allows you to actually make the program
think it has only one database page. When the program is first
started all pages are available. When you are in the Edit
routine or Add routine you can switch between all pages. This is
done by pressing the PgUp or PgDn keys. You can move from page
to page from the command line or from within the fields.

Use the Set Lock routine to make only one page available.
When you lock to one database page you cannot move from page to
page from within the Edit or Add routines. Also, the structure
routine will display ---------- for the field name indicating it
is not on the database page. You will also be displayed --------
-- when asked to selected a field(s) for a function or routine.


m(O)de function and Set Lock routine:


The m(O)de function works differently under a multi-page
database. You can alter the sequence of the fields for each
database page. You cannot alter the overall paging. For
example; if you select to edit the last field on page three (of a
3 page database) first. It will be edited first on page three
not when you are on page one. Overall, just remember, you can
change the sequence of fields and not the sequence of pages.













































SECTION II




This section describes the routines and functions available
within the Listing Menu.














































Build routineBuild routine

The build routine allows you to build FRM/LBL/DRW report
files.

FRM - This is a full-screen, menu driven, command which allows
you to create or modify report form (FRM) files using fields
specified in the database. This is a column report (up to 24
columns) which can be grouped and sub-grouped.

LBL - This is a full-screen, menu driven, command which allows
you to create or modify label form (LBL) files using the fields
specified in the database. This is a label report which is used
for printing labels.

DRW - This is DesignerWare's DRW manager which is used to create
custom reports. It uses the built in word processor for building
a custom report or form letter.


Working with FRM files:

When building FRM files you can create or modify existing
FRM files. FRM files modified or created using this routine are
used to specify screen, printer, and file output.

Note: Any FRM file can be modified or built using build.
This routine closes the current database and shuts down any
filter. After this routine is terminated, the current database
and filter (if on) will be reset to original state.

To create a new FRM file or to modify an existing file, use
the selection box to select the file. Select a file highlighting
it and pressing the Return/Enter key, or enter the name of the
new file you wish to create. Highlight the Ok and press any key
to begin designing or modifying the FRM file. Highlighting the
Abort and pressing any key will cancel the FRM function. Once a
valid file name is entered, the field definition screen will be
displayed.

Across the bottom of the screen is a list of the activities
you may choose while designing a FRM file. Pressing the
appropriate function key will select that option.

F1 Help - This is the help function. It will display the current
structure of the database. It is useful to determine field
names, the field data type, and field size. Pressing any key
will exit the Help screen (The best key, to ensure data isn't
entered into the FRM, is the ESC Key).

F2 Options - This will allow you to specify the page title,
width, margins, page length, line spacing, and printer options.


F3 Groups - Group allows you to decide which fields will cause a
break in the report when a new value is encountered. You may
specify the group expression, a heading to display when a new
value is found, whether the report will display summary
information only, and whether to eject after each group. You can
also define sub-groups and sub-group headings.

F4 Back - This is the default screen when creating a FRM file.

F5 Delete - Pressing the F5 function key allows you to delete the
current column.

F6 Insert - Pressing the F6 function key allows you to insert a
new column at the current position.

F7 Locate - Pressing the F7 function key allows you to select a
column number to show.

F10 Exit - Pressing the F10 function key allows the FRM function
to be terminated. If there have been changes you will have the
opportunity to save them. Highlighting no will exit without
saving the changes.

The FIELD contents screen (Default screen):

This is the default screen when creating a FRM file. The
field contents is the field you wish to display in the column or
expression for each record in the database. You can also specify
a column heading, the width of the column including decimals, and
whether or not to total the column (you can only total the column
if the field is numeric). Use the PgUp and PgDn keys to move
from column to column.

Building a FRM file:

The Contents is the name of the field, in the database, or
expression you wish to be displayed in the column. You can use
the F1 Help function to obtain the valid field names.

Next, you can enter the title you wish to be printed for the
column (ie. what do you want to call it).

Hint: Use line four if only one is to be used.

After you have done that, you must define the total width
to be allowed for the data and the column title. Use the F1 Help
to determine the size of the field you entered. If you select a
size less than the total size of the field, your data report
will be warped to another line.

If the field or expression you entered is numeric, you can
enter the number of decimals and choose to total the column. If
the field is character data and you select totals and decimals,
you will receive an error when you try to print the file.
Note: The Build routine doesn't check to ensure the
contents of each column contain a valid field name and logical
expression. If the field name is misspelled or doesn't exist or
the expression is not logical, an error will occur when the
report is printed. Sometimes, FRM files which have been modified
still produce an error when printing. This is usually due to
special characters within the header being corrupt. If this
occurs the only way to fix the FRM file is to delete it from the
disk and re-build it.

Hint: You can select the fields in any sequence regardless
of the order they appear in the database. You can select all or
only certain fields. You can repeat fields if you wish. You can
use Valid operators and remarks.

FRM files:

The report from file specifies the basic arrangement for
the report, the location of fields in columns, the title for a
report, and headings for columns. The Report routine is used to
print reports using a report form file in which fields are
printed in table format under the respective columns you
specified.

The Right margin option determines the number of spaces the
report is offset from the right side of the page.

The Lines per page option lets you put between 1 and 500 lines on
a page before the page EJECTs. It does not reset the default
page length on your printer.

The Double space report option lets you choose between single or
double spaced printing. The default is single spaced report.

The Page eject before printing option has a default of YES, which
causes the printer to automatically eject a page before starting
to print. If you change it to NO, the report starts printing
wherever or not the paper is aligned in the printer.

The Page eject after printing option has a default value of NO.
You can eject the last page of the report after printing the
report by changing the value to YES.

HINT: If you want to print several short reports on one page, do
not change the default of No for Page eject after printing.

The Plain page option determines whether the page number, system
date are included on each page of the report. With the default
value, NO, these pieces of information are included on each page.
If the Plain page setting is YES, the title appears only on the
first page, and no page number, or date appears at all.

The Page title option offers four lines in which to type a title
for the report.
The Page width option determines the number of characters across
a page. The default value is 80 characters. The range of values
allowed is 1 to 500.

The Left margin option determines the number of spaces the
report is offset on the left side of the page. You can specify
an additional offset by using the Set Left Margin function.

The Sub-group on expression option lets you further categorize
groups of records in a report. For example, if the same State
code is repeated on different addresses, you could INDEX the
database on State and Zip code. Then, you could group the report
by State, and specify the Zip Code as a sub-group. This would
give you a report with all the people by State within the same
Zip code.

The Sub-group heading option specifies the text introduction to
the sub-group, for example the subgroup heading of "HELLO THERE"
would be displayed prior to the sub-group expression.

Columns:

A report can have up to 24 columns.

The contents entry allows you to specify what goes in each
column. This can be a valid field name or an expression. For
example, to enter a comma between two fields (as in Los Angles,
CA 93322) you could enter the following expression:

Contents : TRIM(CITY) + ", " + STATE + " " + ZIPCODE

Or you could enter your own remarks, for example you could enter:

Contents : "This is a test of user remarks"
Contents : TIME()
Contents : DATE()

The Heading option identifies the title of each column. You can
enter up to four lines with up to 65 characters on each line.
The Width option determines the size of the column. If the width
is narrower than the field/expression or heading you entered,
both will wrap when they are printed.

The Decimal places option is for numeric values only. It can be
used to decrease the decimal places specified in the Structure
routine (or F1 Help). If you decrease the size, the number will
be rounded.

Groups:

Entries in the Groups Menu are optional when creating a
report. However, using the Index routine and Sort routine,
grouping records provides an additional level of detail in the
report.
The Group on expression option lets you organize your report
by printing all records with the same value in a field or key
expression under the same group heading. This is particularly
useful if you want to create subtotals.

The program starts a new group whenever it encounters a new
value. Therefor, make sure that you Index and Sort the file on
the same field or expression that you group records in the
report. For example, you can group the report on the field
STATE. Then, if you use the Index routine to index on STATE, you
can create a report listing all people who live in each State.

The Group heading option specifies the text printed on the
report group expression. For example, if the heading is "Persons
State," the report will print Persons State followed by the name
of the State before it lists the people who are living in the
State.

The Summary report only option determines whether all the
records for each group are displayed, or only their totals. The
default value, NO, displays all contents and totals.

The Page eject after group option determines whether each
group is printed immediately after the previous one, or is
printed on a separate sheet of paper. The default value, NO,
keeps the groups together on a page.

Total Y/N:

The Total for each column is for numeric values only, and
allows you to choose whether you want to total numeric columns.
The default value is NO. If changed to Yes, it will cause
subtotals to be displayed for each group and subgroup, and a
grand total to be printed at the end of the report.

Also see: Reports routine, Valid operators


















Working with LBL files:


When building LBL files you can create or modify existing
LBL files. LBL files modified or created using this routine are
used to specify screen and printer output.

Note: Any LBL file can be modified or built using build.
This routine closes the current database and shut downs any
filter. After this routine is terminated, the current database
and filter (if on) will be reset to original state.

To create a new LBL file or to modify an existing file, use
the selection box to select the file. Select a file highlighting
it and pressing the Return/Enter key, or enter the name of the
new file you wish to create. Highlight the Ok and press any key
to begin designing or modifying the LBL file. Highlighting the
Abort and pressing any key will cancel the LBL function. Once a
valid file name is entered, the field definition screen will be
displayed. Across the top of the screen will be a list of the
functions available for building a LBL file.

F1 Help - This is the help function. It will display the current
structure of the database. It is useful to determine field
names, the field data type, and field size. Pressing any key
will exit the Help screen (The best key, to ensure data isn't
entered into the LBL, is the ESC Key).

F2 Edit - The F2 Edit function allows you to switch between the
field contents and the dimensions.

F3 Formats - The F3 Formats function allows you to select from a
table of commonly used label formats.

The field Contents:

The contents, of the lines on the label, must be a valid
database field name and/or an expression. Use the F1 Help
function for field names.

Note: The Build routine doesn't check to ensure the
contents of each line contains a valid field name and expression.
If the field name is misspelled or doesn't exist or the
expression is not logical, an error will occur when the label is
printed. Sometimes, LBL files which have been modified still
produce an error when printing. This is usually due to special
characters within the header being corrupt. If this occurs the
only way to fix the LBL file is to delete it from the disk and
re-build it.





Building a LBL file:

The Label Contents is the name of the field, in the
database, you wish to be displayed in that line of the label or
the expression. You can use the F1 Help function to obtain the
valid field names.

You should specify the size of the label you want to create
and the number of printed lines on each label. These values
should match the label forms or paper on which you want to print.

When specifying the information you want on each label line
you must specify a valid field name or expression, which may
combine character strings, fields, and operators. The fields you
specify in the expression must be in the database.

Use the F2 Edit function to begin entering fields or an
expression on each line in the contents menu. When you're
entering more than one field on a line, you need to sperate the
fields with a plus sign. NOTE: Everything following a comma on
each line of the label will be ignored, however any valid
expression is allowed.

When creating a label, you can use operators in an
expression to combine fields and character strings on a line.
For example, to put a comma on a line without having a space
between a field and the comma (as in Los Angles, CA 93322), you
could enter the following expression:

Label contents 1: TRIM(City) + ", " + State + " " + ZIPCODE

Users own remarks:

To enter your own remarks, and not a field form the
database, contain your remarks within quotes on the line you wish
them to appear. For example you could enter the following:

Label Contents 1: "This is an example"
Label Contents 2: "This was printed at the Western office"
Label Contents 3: Time()
Label Contents 4: Date()

You could even define a label that doesn't even contain
fields from the database and only contains user remarks and
expressions. This would allow you to create general purpose
labels for other uses. A practical example of this would be
creating a batch of return address labels for yourself.







Formats available:

The F3 Formats function has built in predefined sizes which
lets you choose one of five standard label sizes:

Width Height Number of labels across
3-1/2" 15/16" 1
3-1/2" 15/16" 2
3-1/2" 15/16" 3
4" 1-7/16" 1
3-2/10" 11/12" 3 (Cheshire style)

When you choose a standard label size, the program
automatically fills in values of size options. You can adjust
these values to suit your needs. The settings you enter should
match the label forms or paper on which you are printing.

Label width range = 1-120 characters

Label Line width = 0-60 characters

Label height range = 1-16 lines

Left margin (offset by Set Left Margin function) = 0-120
characters.

Lines between labels = 0-16 lines

Spaces between labels = 0-120 characters

Labels across page = 1-5 labels

The maximum width of all labels is 250 characters. The left
margin option is added to the current setting of the Set Left
Margin function. For example, if you enter a left margin of 5,
and set the Set Left Margin function to 11, your labels will be
printed with a left margin of 16.

Examples of user defined labels:

EXAMPLE #1

Line #1: "Ctrl# "+LTRIM(STR(INT(RECNO()+LASTREC()*COUNT)))
Line #2: REPLICATE("_",20)
Line #3: REPLICATE("_",20)

In this example, you would receive on label for every record
in the database (or for the ones selected by your condition).
The first label would be numbered one and numbered consecutively
there after. For example, you have 100 records, you would
receive labels numbered from 1 to 100. If you request 3 copies,
when asked for total number of copies, you would receive labels
numbered from 1 to 300 (this is done by using the COUNT
operator).
EXAMPLE #2

Line #1: "Ctrl# "+LTRIM(STR(INT(RECNO()+LASTREC()*COUNT+100)))
Line #2: REPLICATE("_",20)
Line #3: REPLICATE("_",20)

In this example, you would receive on label for every record
in the database (or for the ones selected by your condition).
The first label would be numbered one and numbered consecutively
there after. For example, you have 100 records, you would
receive labels numbered from 101 to 200. If you request 3
copies, when asked for total number of copies, you would receive
labels numbered from 101 to 400 (this is done by using the COUNT
operator and adding 100 as a base number).


EXAMPLE #3

Line #1: " DesignerWare tm"
Line #2: " 702-438-5535"
Line #2: "5000 E. Bonanza Box 8531"
Line #3: "Las Vegas, Nevada 89110"

In this example, if this is a return address label, you
would receive one for every record in the database. If a
condition was used you would receive one for the records meeting
your condition.

Example of use: You are printing labels for a report which
is going to everyone, in your database, located in the State of
New York. You now need to print return address labels for the
letters. Use this type of label and print it based on the
condition STATE = "NY".


EXAMPLE #4

Line #1: "***************************"
Line #2: "** Booklet of events for **"
Line #3: "** "+LEFT(CDOW(DATE()+RECNO())+SPACE(3),9)+SPACE(13)+"**"
Line #4: "***************************"

In this example, you would need at least seven records in the data
base.







Also see: Reports routine, Valid operators


DRW Reports




DesignerWare's Report Writer (DRW) is probably one of the
must powerful features of the program it allows you to build
custom reports, form letters, forms, and more. The total
capability of DRW is left to the imagination of the user. As
creative as the user is then as creative will be the DRW report.



Building a DRW file:

DRW files are built with the DRW manager. They can also be
built with any word processor. They are standard ASCII files.
Each DRW file requires a DLW file. If the DRW file exist and not
the DLW file it will be created.

DRW file = This is the ASCII file used to store the text
data of your report.

DLW file = This is the location file which contains the
information about fields and expressions,
lines per page, page ejects, and header
information. If this file is not found it
will be created. 0 header and 66 lines per
page are the defaults.

When you enter the DRW manager you are placed in the word
processor. It works the same as most word processors. You
should quickly feel at home. You can enter typed data or grab
fields from the database. For example you wish to build a form
letter:

Example: 1
-------- Beginning of Example -----------------------------------

Hello there XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
How are you today.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

------- End of example ------------------------------------------

Where the 'X's are use the F1 key to grab and drop fields from
the database. Where the '%' are use the F5 key to drop a page
eject. See Example1 on disk which produces a form letter.






Function Keys:

F1 Key - This key is used to grab a field from the database
and drop it in your report. It can also be used to create an
expression, move an expression, and pick up an expression.

Picking up New field: Pressing the F1 key you will be
displayed the fields available for the report. Select the
field of your choice (by highlighting it and pressing
return) then press ESC. Down on the bottom of the screen
you will be displayed the field name. At this time you can
use valid operators to alter the field display or you can
add fields together. Once done, press the return key and
you will be asked to enter the expression length. If you
have not altered the field, the expression length should be
correct. If you have altered it. You will need to tell how
long you expect the expression to be. After the length is
entered, place the cursor where you wish the expression to
be and press the F1 key and it will be dropped into the
report.

Picking up Old field/Expressions: If you have already
dropped an expression, you can put the cursor on the
expression and press the F1 key. This will pick it up. You
can position the cursor and press the F1 key to drop it back
into the report. You can also use the F2 key to edit the
expression before re-dropping it.

Creating only an expression: Pressing F1 key and NOT
selecting a field will place you in the expression line
without a field form the database. This allows you to enter
in Valid operators such a page number, date, time, and so
on. If you don't enter a valid expression length, the
expression will be deleted.


F2 key - This key allows you to edit a captured expression.
The expression must be captured before you can edit it.

Use the cursor to place yourself on an expression. Press
the F1 key to pick it up. Once it is picked up you can
press the F2 key to edit the expression.


F3 key - This key is used to delete a line from the report.
It can also be used to only delete an expression from the report.
If the cursor is on an expression then the expression is only
deleted. If it is not on an expression the whole line is
deleted.

F4 key - This key is used to insert a line into the report.
Place the cursor where you wish the new line to start and press
the F4 key. Note: If a lot of expressions are located below the
inserted line it will take a few seconds to reformat the text.
F5 key - Is used to drop a page eject. Note: When the
report is printed a page eject is issued to the printer at the
end of file. This has the result of producing an extra blank
page. This extra blank page is used to mark the beginning of
another copy run.

F6 key - This key is used to show what the expression is.
Place the cursor on an expression and press the F6 key. The
bottom of the screen will show you what the expression is.

F9 key - This key is used to abort any changes you may have
made to the file and exit the program.

F10 key - This key is used to save the changes you have made
and exit the program.




Display line:


Down the bottom of the screen is a display line. The
display line is as follows:

Page - This is the page number you are presently on.

Total - This is the total lines per page. It defaults to
66. To change this exit the program and enter a
new page length.

Line - This is the line the cursor is presently on.

Col - This is the column position of the cursor.



Exiting the DRW Manager:

When you press the F10 key the DRW file is saved. You will
be asked to enter the number of header lines. Header lines are
the number of lines, at the beginning of your file, you wish to
be printed every time a new page is started.

Next, you will be asked to enter the total lines per page.
The lines per page is the number of lines plus header you wish to
have on your report.







Working with DRW expressions:

You can add Valid operators to expressions (see Valid
operators). For example to display a series of fields formatted,
you can do the following:

Expression: Result:

TRIM(NAME2)+", "+TRIM(NAME1) Doe, John
TRIM(CITY)+", "+STATE Las Vegas, NV
DATE() 01/23/89

There are seven additional Valid operators available for DRW
reports they are:

PAGE_CNT = This operator is used to print the current
page of the output.

REC_CNT = This operator is used to print the record
selection counter for all items selected.

RPAGE_CNT = This operator is used to print the record
selection counter for all items selected this
page.

FILENAME = This is the name of the DRW file being
printed.

DBFILE = This is the name of the database the report
is being printed from.

KEYFIELD = This is the Key Field which is controlling
the sequence of the output.

WHERE_ARE_FILES = The DOS directory being used (if set).


If an expression is entered that is not correct or is in
error. You will receive three questions marks (???) where the
expression is when the report is printed. If this happens
check the syntax of the expression.



Also see: Reports routine, Valid operators









Caution When Building Files


The Build routine uses temporary files to create its
reports. These temporary files are built on the default DOS
drive and directory, NOT the directory set by the program. The
final report will be placed on the disk drive and directory
being used by the program when finished.

This means you must make certain the DOS default drive and
directory have enough room to contain the temporary files. If it
does not a non-recoverable error will occur.




Examples on disk



DesignerWare has taken the time to create some example
LBL/FRM/DRW files on disk. These example files will show you
some basic examples on how a report can be built. These files
can be modified and adjusted to your needs. To print these
example reports, create some records in the database and use the
report routine to print them to the screen or printer.

With these examples you will begin to see the power of
DesignerWare's reports. The capabilities and style of reports
are endless.
























Reports routine:




The reports routine allows you to print LBL/FRM/DRW report
files to the screen, printer, or file. The file may also be a
valid device on the computer. Such devices may be additional
printers or devices such as a network.

To print a report file use the selection box to select the
file. Select a file highlighting it and pressing the
Return/Enter key, or enter the name of the file you wish to
print. Highlight the Ok and press any key to begin the printing
sequence. Highlighting the Abort and pressing any key will
cancel the function. Once a valid file name is entered, the
REPORT OUTPUT screen will appear.

Working with Reports routine:

You will first be asked if you wish to print a report based
on a condition. Selecting Yes will allow you to print a report
based on a condition. Conditions will allow you to selectively
receive certain output. For example, you can request a condition
to only print certain records. See Setting Conditions for how to
effectively use this function.

Next, you will be asked where to send the output to. The
valid choices are Screen, Printer, or File.

Screen: If the screen is selected, the report will be
presented on the screen. This is very useful when you wish
to test a report to make certain it is properly doing what
you wish. Remember if the report goes beyond 80 columns it
will warp around the screen.

Printer: If the printer is selected, the report will be
sent to the current printer device. Remember the Set Left
Margin function effects the margin if it has been set.
Another important thing to remember is FRM files may or may
not have Page Ejects built into the form.

File: If file output is selected, the report can be sent to
a file or device on the system. You will be asked to enter
the file name for output. If the file name is a device the
output will be sent to that device. If it is not, the
output will to a disk file using the name entered. For
example, entering COM1 will send the report to the COM1
port. This can be very useful if you have more than one
printer installed or wish to send the report to a
communication device.



The next option you will be asked is to print records that
have been marked for deletion. Selecting No will cause only the
records NOT marked for deletion to be entered into the output.
Selecting YES will cause all records to be printed regardless of
the delete condition.

Hint: An example of this may be as follows: There may be a
few records you wish to excluded from your printed
report which can not be excluded with a condition. Use
the Delete or m(A)ss delete functions to selectively
mark them for deletion. Then select NO when asked to
print records marked for deletion. This will cause
these records to be ignored. You can use the Undelete
or Undelete all function to unmark these for deletion.



The last option to enter is the number of copies to be
printed. Enter the number of copies of the report you wish to
receive. Entering zero (0) will cause no report to be printed.


Printing LBL files:

When you print LBL files you are given example formats to
allow you set-up your printer. You can request sample formats
until you have properly aligned your output device. Once it is
properly set, stop selecting examples and your output will be
produced.

























ERRORS in printing

The Reports routine DOES NOT check to ensure the report is
properly created and is for this database structure. If the
report file is in error you will receive DWMSG 099 and the
program will be restarted. If this occurs you must use the BUILD
routine to ensure the report file is properly built.

Common errors are as follows:

Report file is built for another database. You may be
trying to print a report which references fields which do
not exist in this database.

Valid operator is in error. This is caused when the syntax
of an operator is not properly used or a type mismatch is
identified with an operator. If this occurs, use the Build
routine, make certain the report and operators are correctly
being used.

The device is not ready. This usually occurs because the
device you are trying to use is off-line or is not present.
Check the device and retry the operation.



Continuing screen log:


The Report routine keeps a continuing log of the choices
selected. This gives you a quick reference of the choices you
have selected.






















Export routine




The Export routine is probably one of the most useful
features of the program. Export will allow to export records
from the database to another file. The file can be in several
output formats. One of the must useful outputs is probably the
MAIL MERGE output.

When this routine is selected you will be placed in the
EXPORT DATA screen. This screen is also a continuing log of all
the options selected for output. This gives you a quick
reference of the choices you have selected.

Working with Export routine:

You will first be asked if you wish to export the file based
on a condition. Selecting Yes will allow you to export based on
a condition. Conditions allow you to selectively receive
certain output. For example, you can request a condition to only
export certain records. See Setting Conditions for how to
effectively use this function.

Next, you will be asked to export ALL or SELECTED fields.

ALL fields will export all the fields from the database
to the export file.

SELECTED fields allow to choose which fields to output
and in which sequence.

Hint: You can change the order in which the
fields are exported by selecting SELECTED fields.
To export all the fields and only change the order
use the SELECTED fields option and select all the
fields in the sequence of your choice.

Next, you will be asked which file format to export to.
Valid choices are:













SDF formatted Export file:

SDF identifies a System Data Format ASCII file. This is a
file with each record separated with a carriage return and line
feed. Each record is a fixed length and the end-of-file mark
is a Ctrl+Z (1A hex).

If SDF file format is request you have the following
options:

Default Export file format:

Default identifies an ASCII file, where fields are
separated by commas and characters fields are bounded
by double quote marks. Fields and records are variable
length and with a carriage return and line feed. The
end-of-file mark is a Ctrl+Z (1A hex). This is usually
the MAIL MERGE format used by other programs.


DELIMITED BLANK formatted Export file:

Delimited blank identifies an ASCII file where fields
are separated by one space and character fields are not
bounded by delimiters.


Set the character to delimit fields:


This option allows you to set the default delimiter
from commas for character fields to an ASCII charter of
your choice. If this is selected then enter the number
for the ASCII character you wish to use as a delimiter.




DBF formatted Export file:

DBF identifies a Database format file. The Export file will
be a database containing the fields selected and in the field
sequence of your choice.











After the file format has been selected, you will be asked
to export records marked for deletion. Selecting No will cause
only the records NOT marked for deletion to be entered into the
output. Selecting YES will cause all records to be printed
regardless of the delete condition.

Hint: An example of this may be as follows: There may be a
few records you wish to excluded from your exported
file which can not be excluded with a condition. Use
the Delete or m(A)ss delete functions to selectively
mark them for deletion. Then select NO when asked to
export records marked for deletion. This will cause
these records to be ignored. You can use the Undelete
or Undelete all function to unmark these for deletion.


Export File:

The last entry will be the file name to export the records
to. Again, as mention in the Reports routine, if the file name
is a device the output will be sent to a device. If it is not,
the output will to a disk file using the name entered. For
example, entering COM1 will send the exported file to the COM1
port.


Additional consideration for Export:

The Export routine can also be used to create a backup file
of the current database. If your database is very large and you
cannot use the Pack routine to create a back-up database on your
floppy disk (because it is to large). Use the Export routine to
export the database as a delimited file. Delimited files are
smaller in nature because blank fields are separated by double
quote marks. If a field does not contain data it will not occupy
space as it does in a DBF file format.

SDF files are also the preferred method to export the
database to another computer via a telecommunication device.
These files are smaller and will require less transfer times.

To recover these files and put them back into the database
use the Add routine and select the Import function to import the
files as a SDF delimited file.










STRUCTURE ROUTINE




The structure routine allows you to see the name of the
fields, type of data, and size of the field. Example:

AUTHOR C 12

In the example, the field name is author. It stores
character data and is twelve characters long. The Structure
routine will also identify the Key Fields with an asterisk.

Structure routine for m(O)de and (2)Carry functions:

After the structure of the database is shown you will be
shown the m(O)de function selection. The fields will be shown and
numbered according to the m(O)de function selection. If a field
has the value of zero, that field is turned off. Otherwise the
number represents the sequence of the m(O)de function. Fields
being carried using the (2)Carry function (Add routine) will be
shown with an asterisk.

Uses of Structure routine:

The Structure routine is very useful for becoming familiar
with the fields of the database. You can use the Shift+Print
Screen keys to send a copy of the structure to the printer. This
can be used for references when using the Build routine, Setting
Conditions, Sorting, Indexing, etc. etc..

The m(O)de function and (2)Carry function are global
settings that stay in affect until changed or the program is
exited. Using the Structure routine you can determine the status
of these functions and determine which fields are being affected.


Screen Input Examples

The Structure routine will next display all the pages being
used by the database and the contents of each page. This is very
useful if you are using a program with multi-page databases. You
can use the Structure routine to become familiar with each
database page.



Also see: m(O)de function, (2)Carry function, Set Lock
routine





SECTION III




This section describes the routines and functions available
within the Function Menu.














































INFO ROUTINE




The Info routine is used to check the following items:

Disk Space : The available disk space will be displayed. The
disk space is the total bytes available.

Number of records : This is the total number of records
presently in the database. Total records will be all records
even records marked for deletion.

Last file up-date : This is the last date the database was
changed. If you use this to track the last time the file was
update, this must be the first thing you check. If other
routines are run prior to checking the last file up-date, these
other routines may update this.

Program Version : This is the current version of the program.

Time : This is the computers time.

Date : This is the computers date.

Index Key Field : This is the field(s) in which the Key Index
File is based on.

Color Display : It will indicate Yes or No. If Yes, the
computers graphics card is returning color. If No, the
computers graphics card is returning monochrome display.

Directory : This is the DOS directory presently being used. If
it is blank, the DOS default directory is being used.

Filter : This is the current filter condition that is set.


Uses of Info routine:

Info routine is useful in determining the Key Field, Filter,
Directory, and available disk space. The color information is
also useful to determine if the computer reports a color monitor.
The graphics card may return a color card but, the actual monitor
may not be color. If the color is not being reported correctly
use the C command switch or Set Color function.







UTILITIES/OPTIONS ROUTINE


The Utilities/Options routine allows you to alter the way
the program works or to set functions. The Utilities/Option
routine has numeric and alpha hot keys. Pressing the number 1-9
or A-E performs that function.


Utilities/Options functions:


Zap function

Zap function will delete all records in the database. It
doesn't mark the records for deletion as the Delete function
does. It actually removes the items from the data base using the
fastest possible means. Note: Pack routine doesn't have to be
run to remove the records. The Purge file does NOT contain
zapped records.

Hint: If you wish to delete all the records and have them
in the Purge file use the m(A)ss delete function. When the
m(A)ss delete function asks for a condition enter RECNO() > 0.
This will cause all the records with a record number greater than
zero to be marked for deletion. Now use the Pack routine to
delete the records and put them in the Purge file.

Also see: Delete function




Color function

The Color function can be used to turn the program from
color mode to non-color. It also sets the color to the default
color.

Hint: The program automatically checks the graphics card
for a color monitor. If a color monitor is present the program
switches to color. You can use the C command switch to override
the automatic selection. Some computers may have a color
graphics card and don't have a color monitor. You can use the
information routine to determine how the program reads your
particular graphics card.

Also see: C command switch, Info routine, Change Color
function





Change disk drive function

The Change disk drive function allows you to change to
another disk drive and directory where a Database and Index file
exist (Note: Both files must exist if the index file does not you
can create it). If you started the program and you were not on
the DOS disk or directory containing the Database and Index file,
you can use this function to change to the correct disk and
directory.

Hint: The Change disk drive function can also be used to
maintain several files on different disks or in multiple
directories. Also, the disk or directory you change to must
contain the Database and Index files.

Note: If a filter is being used it will be turned off.

Also see: Create New database function



Create NEW database function

The Create NEW database function is used to create a
database and index on any disk drive and directory. If this is
the first time using the program, you will have to use this
function. The Create NEW database function will destroy the
contents of a prior database if one exist on the disk and
directory being used. You will be warned before this happens.
Create NEW database function takes a few seconds to run. This is
to make certain the file is error free and is properly formatted.

Hint: You can use the Create NEW database function to
create multiple database files which reside on several disk or in
several directories.

Note : If a filter is being used it will be turned off.

Also see: Change disk drive function



Shell DOS function

This function can be used to temporarily drop to DOS and run
DOS commands. When you shell to DOS the program executes another
copy of COMMAND.COM. This has two implications. First, you must
have enough memory for COMMAND.COM (27k for DOS 3.2). Second,
COMMAND.COM must be available on the path specified by COMSPEC.
If COMMAND.COM cannot be found an error will occur. Versions of
DOS prior to 3.0 may not shell properly. The program will just
return to the Main Menu. See your DOS manual for additional
information on COMSPEC and setting environment variables for
COMMAND.COM
Toggle View Col/Row function

This function allows you to change the way in which the View
routine moves after the edit mode has been selected. This
function will toggle from column to row to column etc. This can
be very useful if you wish to use the edit mode, of the View
routine, to move across fields. This allows you to enter an
entire record (ie. row) then move to the next record. Column
allows you to move throughout the database editing one field
(ie. column).

Also see: View routine




Re-Index function

The Re-Index function is used to re-index the database.
This is useful if the Index file becomes corrupt. Also, this
function can be used if the program is started and the Index File
cannot be found. If the Index file cannot be found the Key
Field will be the default Key Field.




Undelete all function

The Undelete all function will take all records marked for
deletion and un-mark them for deletion. This function will not
work on a database that has had the Zap function used.

Also see: Delete function, Undelete function, m(A)ss delete
function




Set Unique function

The Set Unique function, when turned ON, will allow only one
record in the database for the Key Field. You can enter
additional records with the same Key Field but, only one will be
maintained by the program. Use the Pack routine to remove
duplicate records from the database.

Using Unique:

If you wish to allow only one record for each Key Field
turn Unique ON. Then use the Sort/Index routine to index the
database on the Key Field. You may also use the Re-Index
function if the Key Field is already properly set.

Once you have created a Unique index you must maintain it
every time you use the program. You will have to remember to
always turn Unique ON. This can be done two ways. One way is to
use the Set Unique function to turn it on each time. Or, the
other way, use the U command switch when starting the program to
force Unique ON. Once an index is created using Unique ON it
turns the uniqueness attribute on within the index. The index
retains the uniqueness attribute without regard to the Set Unique
function. However, the program Unique function should always
reflect the current condition of the index. If this is not
properly maintained, the programs may possibly corrupt the
database because the index attribute does not match the Set
Unique function.

Pack routine with Unique ON:

If you have set Unique ON and run the Pack routine it is
possible to remove duplicate Key Fields. The database will also
be sorted on the Unique field.

Hints: Unique effects all routines and functions of the
program. You can set Unique ON to print reports or Edit and
View data then turn it off and use the Re-Index function. Unique
will also be turned off if you create a new database or change
disk drive/directory. You will have to turn it back on if that
is your intent.

Also see: Pack routine, U command switch




Set soft seek function

The Set soft seek function is used to change the Find
function in the Edit routine. If soft seek is on and a match for
the Find function is not found, the record pointer is set to the
next record in the index with a higher key value than the Find
function argument. If there is no record with a higher key
value, the item not found message will be displayed.

Hints: Soft seek has no effect in the Add routine because
the Find function is not available. Also, if soft seek is on it
will effect records being found that sound like an item using the
sounde(X) function.


The program always starts with the Set soft seek function
OFF. You can override this and force the program to start with
soft seek ON by using the S command switch.

Also see: sounde(X) function, S command switch, Find
function


Set Filter To function




This is used to make the database appear as if it contains
only records meeting a specified condition. The filter is
primarily used for the View routine and Edit routine. The
following routines effect the filter as follows:


Add routine - Filter is turned off and back on when done.

Export routine - Filter is turned off and back on when done.

Report routine - Filter is turned off and back on when done.

Note: Even though the filter is turned off you can use
a condition to select certain records when printing
reports.

Change disk drive function - Filter is turned off.

Create NEW database function - Filter is turned off.

Note: The filter is turned off for these routines because
the program assumes you are changing database.
Each database must have its own filter defined.

Working with a filter:

The Set Filter To function is primarily used for the View
routine and Edit routine. It allows you to make a database
appear as though it only contains certain records.

Example: Suppose you have a database with a field called
COST and you wish to View and Edit only the records having a COST
greater than $200.00. You would set a filter as follows:

COST > 200.00

Now lets say you wish to see all records having a COST
greater than $200.00 and the AUTHOR field is equal to
DesignerWare. You would set a filter as follows:

COST > 200.00 .AND. AUTHOR = "DesignerWare"

You can also use Valid operators to set a filter. For
example:

RECNO() < 100

This would set a filter to show only record numbers less
than 100.
LEFT(NAME,6) = "Design"

This would set a filter to allow only records with the first
six characters matching "Design".

LEFT(NAME,6) = "Design" .AND. COST < 100

This would set a filter to allow only records with the first
six characters matching "Design" and COST less than 100.

UPPER(LEFT(NAME,6)) = "DESIGN" .OR. COST = 100

This would set a filter to allow only records with the first
six characters matching "DESIGN" or COST equal to 100. Notice
the contents of the field called NAME is forced to upper case
letters before it is compared.

In the above examples, the View and Edit routines will only
display the records meeting the condition(s) set.


Hint: You can use multiple conditions based on several
fields or on one field. A condition(s), for a filter, must be
logical.

Note: When using the View routine or View function with a
filter that selects less than eleven records. The first record
displayed may not meet the filter condition. This is due to the
way View starts the display which ensures records are in the
database. If this occurs, it will not be shown once you start
scrolling through the database.

Hint: Another use for the Set Filter To function is to
test the possible results of a condition for printing reports.
Instead of setting a condition and print the report, you can set
a filter and use the View routine to ensure the condition gives
you the intended result.

Use the Info routine to display the current filter being
used.

Also see: Boolean commands, Setting Conditions, Info
routine, Valid operators











Set Left Margin function

This function is used to set the left margin for all printed
output. The Set Left Margin function has no effect on the screen
display but does affect the beginning column position of all
routines that output to the printer. If this function has not
been set the left margin defaults to zero.

Hint: This function is useful when printing FRM/LBL/DRW
files and you wish to change the left margin without changing the
FRM/LBL/DRW file.



Set Intensity function

This function is used for changing the menu prompts and
highlighted fields between enhanced and standard color. When
intensity is OFF, it may be difficult to determine where the
cursor is. You will have to use the hot keys to process through
the menus.

The main purpose of this function is to turn OFF the
enhanced prompts and fields for printing screens to the printer.
Some users have altered or used special software packages to
print the contents of the screen to the printer which will print
the enhanced prompts. When enhanced prompts and fields are
printed, they may be un-readable. Therefore, this function will
allow you to turn them off.

Hint: This function is for the user(s) who wishes to print
screens for making training manuals, operating instructions, or
examples of screens.





















Change Color function



The program presently supports eight color choices which
are:

1> No color
2> Default color
3> Color selection 1
4> Color selection 2
5> Color selection 3
6> Color selection 4
7> Color selection 5
8> Color selection 6


When the program is started and it detects a color monitor
and the C command switch is not used, the program will start in
the default color. Using the Color function you can turn color
off or set the color to the default color.

The Change Color function is used to select six additional
color choices. Each color is designed for a specific use. If
you don't like the default color then choice a color selection
that appeals to you.

To always start the program with your preferred color you
can use a command switch. For example entering (From DOS)
PROGRAM 2 will start the program with color selection 2 if a
color graphics card is detected.

Also see: Command Switches, Color function





















SORT/INDEX ROUTINE




The Sort/Index routine is used for two purposes:

1> Dynamic Sorting.

2> Dynamic Indexing.

Sorting and Indexing can be done on any field or on any
combinations of fields. The only constraint is the fields must
be of the same data type. Example: You can Sort or Index on
all characters field or all numeric fields. You CANNOT Sort and
Index on character and numeric fields. You can however Index on
character fields and Sort on numeric fields or the other way
around.

Working with an Index:

The program must always have an Index file. The Index file
is used to present and maintain a user defined sequence. The
database records appear in Key Field order without the index
altering the physical order of records in the database file.
This allows you to create and maintain many logical orders of
records automatically.

You may have three different types of indexes:

ASCENDING Index - This will be a ascending sequence order.

DESCENDING Index - This will be a descending sequence order.

SOUNDEX Index - This will be an index created from the phonetic
complement of the Key Field. This is useful when you wish to use
the phonetic spelling while using the Find function. Note: If
this type of Index is used, the sounde(X) function will not be
available.


Working with Sort:

The Sort routine is used to physically sort the records in
the database. The Sort can be performed on a user defined
sequence. After the database has been sorted it will NOT be
maintained by the program if alterations and additions occur.







Usage of Sort and Index:

You can use the Sort and Index routines for many purposes.
One of the many uses is to create and control the sequence of
output. Example: Lets assume you have the following fields in a
database:

AUTHOR Character 20
COST Numeric 5

Now you wish to print a listing in AUTHOR sequence by COST.
Because they are of different data types (Character and Numeric)
you cannot Index on both fields. Therefore, you can sort on COST
and index on AUTHOR. This would produce a listing in AUTHOR
sequence sub-divided by COST. You could also sort on AUTHOR and
index on COST. This would produce a listing in cost sequence
sub-divided by AUTHOR.

Also see: Re-Index function, sounde(X) function, Find
function


































CONFIRM ROUTINE




This routine allows the user to change the confirm setting
of the prompts and editing of fields. The program starts with
the Confirm routine OFF. With Confirm OFF commands and edited
fields do not have to be confirmed with a Enter/Return key.

Turning Confirm ON makes all commands and edits that require
characters from the keyboard to be confirmed by a Enter/Return
key before they are excepted. This is very useful for the novice
user just learning the program.









































Appendix 1

This appendix is for explaining the use of conditions.


















































Setting Conditions


A condition selected for a function will limit the effects
of the function to the records meeting the selected condition.
Each record in the database is evaluated unless the Set Filter
function is active. The function selected will be performed on
all records evaluated as true.

Example:
If a report was selected with the condition:

STATE = "CO"

Only records with "CO" in the STATE field would be printed.

Multiple condition can be created by linking them with a
boolean operator.

STATE = "CO" .OR. STATE = "NY"

In this case only records with "CO" or "NY" in the STATE
field will be printed.

RULES FOR CREATING CONDITIONS

Quotes must be used to delimited character data when a
field type 'C' is referenced.

In the above example STATE is a type character field so
quotes had to surround the evaluation data.

If the field referenced is numeric no quotes should be
used.

COST = 10.00

Hint: When creating a condition evaluating character data
the whole string does not have to be entered.

Example: STATE = "C"

In this example, all records with a STATE field
starting with a C will be selected.

Both character and numeric type fields can be evaluated
in the same condition.

Example: STATE = "CO" .AND. COST = 10.00





Additional ways to define conditions:

Conditions may also use valid operators.

Example:

UPPER(STATE) = "NY"

In this example, the data within the field STATE would
be forced to upper case letters for the comparisons.

Example:

LEFT(UPPER(LASTNAME),5) = "DESIG"

In this example, the data within the field LASTNAME
would be force to upper case and only the first five
characters checked.

Example:

RECNO() < 100

In this example, only the records with a record number
less than 100 would be selected.

Example:

TRIM(LASTNAME)+", "+TRIM(FRSTNAME) = "Doe, John"

In this example, the fields have the trailing blanks
removed and the names are added and a comma and space
is place between them.


Also see: Boolean Operators, Relational Operators,
Expressions, Mathematical Operators, Valid operators


















Appendix 2.

This appendix describes the use of Boolean Commands.


















































Boolean Commands



Boolean operators are used to connect logical expressions.
These operators can be used to create multiple condition for the
selection of records.

Example: STATE = "NY" .AND. COST = 10.00

If both expressions are found true, then the selected
function is performed.

Operator
.AND. Both expressions are true.
.OR. Either expression is true.

RULE FOR USING BOOLEAN OPERATORS:

Boolean operates must begin and end with a period.

RELATIONAL OPERATORS:

Relational operators are used to compare two expressions.


Operator Purpose
< less than
> greater than
= equal to
<> not equal to
<= less than or equal to
>= greater than or equal to
() used to change the order of operations

RULE FOR USING RELATIONAL OPERATORS:

Both expressions must be of the same type.


Also see: Setting Conditions, Expressions, Mathematical
Operators













Appendix 3.

This appendix for explaining Mathematical Operators.


















































Mathematical Operators

Mathematical operators are used in creating expressions.

These operators are evaluated in this order:

Operator Purpose
+ addition
- subtraction
/ division
* multiplication
** exponentiation

1. Operators contained in parentheses

2. Exponentiation

3. Multiplication and division (from left to right)

4. Addition and subtraction (from left to right


ie.

5 + 5 * 2 = 15
(5+5) * 2 = 20


Also see: Boolean Operators, Setting Conditions, Relational
Operators, Expressions

























Appendix 4.

This appendix is for explaining the use of expressions.


















































Expressions

An expression is a single data element, which can consist of
one or more fields, constants and/or operators.

Example :

(PRICE * QUANTITY) / 1.43

Where PRICE and QUANTITY are fields in the database.

Example:

TRIM(LASTNAME)

Where LASTNAME is a field in the database.

Example:

TRIM(LASTNAME) + ", " + FRSTNAME

Where LASTNAME and FRSTNAME are fields in the database.

Example:

"DesignerWare tm."

Where there is no field from the database.

Example:

5 * 2

Where there is no field from the database. The result
would be ten.

Example:

TIME()

Where there is no field from the database, just an
operator.

Example:

FRSTNAME + "Today is your lucky day " + CDOW(DATE())

Where FRSTNAME is a field from the database.

Example:

"Hello there " + TRIM(FRSTNAME) + " how are you?"

Where FRSTNAME is a field from the database.
Example:

"Your cost is $" + TRIM(STR(COST)) + " Total"

Where COST is a numeric field in the database.

Example:

"Sign here: " + REPLICATE("_",LEN(LASTNAME+FRSTNAME))

Where LASTNAME and FRSTNAME are fields in the database.

Example:

LEFT(FRSTNAME,4) = "BILL"

Where FRSTNAME is a field in the database.

Example:

VAL(PHONE) = 702

Where PHONE is a character field in the database.

RULE FOR CREATING AN EXPRESSION

All elements of an expression must be logical.


Also see: Mathematical Operator, Relational Operators,
Valid Operators
























Appendix 5.

This appendix is for explaining operators which can be used
for creating conditions and user defined functions.

















































VALID operators

These operator functions can be used for the following:

1. Used in FRM files to adjust or alter the contents of the
column.

2. Used in LBL files to adjust or alter the contents of the
label line.

3. Used when using the Locate function.

4. Used when setting a filter.

5. Used when setting a condition.

Operators are a very powerful function of the DesignerWare
program. They can be used to alter the fields within the
database (for printing LBL/FRM/DRW reports) or for user defined
data. If the operator requires , this is a character
field from the database or data delimited by quotes. If the
operator requires , this is a numeric field from the
database of numeric data. If the operator requires , this
is a Date from the computer which is produced with an operator.

COMMANDS:


RTRIM() / TRIM() = To remove trailing blanks from
.

is the character string to remove the trailing spaces
from. It returns a character string.

RTRIM() is useful when you want to delete trailing spaces
from a field when concatenating it with another field or
characters.

Examples:
RTRIM(LASTNAME) + ", " + FRSTNAME
RTRIM(CITY) + ", " + STATE + " " + ZIPCODE

Also see: LTRIM(), SUBSTR()











LTRIM() = To remove leading blanks from .

is the character string to remove leading spaces
from. It returns a character string.

LTRIM() is useful when you want to delete leading spaces
from a field when connecting it with another field of
characters.

Also see: RTRIM(), SUBSTR()




COUNT = Variable used to make serial numbers for FRM and LBL
files.

This can be used to increase the number returned in RECNO()
to a number larger than LASTREC().

For example:

LTRIM(STR(INT(RECNO()+LASTREC()*COUNT)))



CHR() = To convert an ASCII code to a character.

is the ASCII code of the character to return and can
be in the range of zero to 255.

CHR() returns the character corresponding to the ASCII code
specified by .

CHR() is very versatile and serves a number of common tasks
which include:

1. Send control codes to the printer.
2. Send graphic characters to the printer or screen.



SPACE() = To return a string of spaces.

is the number of spaces to return up to a maximum of
65,535 (64k) bytes.

SPACE() is a general purpose character function which can be
used for a number of different purposes. For example:

FRSTNAME + SPACE(25) + LASTNAME
RTRIM(LASTNAME + "," + SPACE(5) + FRSTNAME)

Also see: REPLICATE()
REPLICATE(,) = To repeat a character string a
specified number of lines.

is the character string to repeat.
is the number of times to repeat .
It returns a character string.

The maximum size of the string returned is 65,535 (64k)
bytes. Specifying a zero as the numeric argument returns a
null string.

REPLICATE() is useful anytime you want to repeatedly display
characters. For example:

REPLICATE("*",20)
REPLICATE("X",10)
REPLICATE("-Test",10)
REPLICATE(CHR(42),5)

Also see: SPACE()




LOWER() = To convert to lower case letters.

is a character string to convert to lower case
letters.

LOWER() returns alphabetical characters in the
converted to lower case. All other characters are ignored.
This can be very useful when setting conditions. For
example:

LOWER(AUTHOR) = "designerware"

Also see: UPPER()



LEN() = To return the size of .

is a character string to calculate the length of. A
numeric value is returned.

LEN() can be used to determine the total length of a string
(ie field type character).







UPPER() = To convert to upper case letters.

is a character string to convert to upper case
letters.

UPPER() returns alphabetic characters in the
converted to upper case. All other characters are ignored.
This can be very useful when printing reports and setting
conditions. For example:

UPPER(AUTHOR)
UPPER(AUTHOR) = "DESIGNERWARE"

Also see : LOWER()




TIME() = Time of the PC.

To return the system time as a character string.

The system time is returned in the format "hh:mm:ss" where
hh is hours in 24-hour format, mm is minutes, and ss is
seconds. Hours, minutes, and seconds are separated by
colons.

Also see: DATE(), SECONDS()




DATE() = Date of the PC.

To return the system data as a date value.

DATE() provides a means of printing the current date. For
example:

DATE() && result is 09/01/89
CMONTH(DATE()) && result is September

Also see: CMONTH(), DAY(), MONTH(), YEAR()











DAY() = Returns the day of the month from as a
numeric value.

is a date value to convert. An integer numeric value
is returned.

DAY() returns a number in the range from zero to 31
depending on the month of . If the month is February,
leap years are accounted for and the number returned either
28 or 29. If the date argument is February 29 and the year
is not a leap year, the value returned is zero. If the date
argument is empty, then DAY() returns zero.

DAY() is useful when you want the day of a month. For
example:

DATE() && returns 09/01/89
DAY(DATE()) && returns 1
DAY(DATE()) + 1 && returns 2

Also see: CDOW(), CMONTH(), CTOD(), DOW(), DTOC(), DTOS(),
MONTH(), YEAR()



CDOW() = To convert a date value to a string representing
the name of the day of the week.

is the date value to convert. A character string will
be returned.

CDOW() returns the name of the day of the week with the
first letter in upper case and the rest of the string in
lower case. The maximum return value is nine characters for
Wednesday. A null date value returns a null string ("").

CDOW() is useful alone or as part of formatting DATE(). For
example:

DATE() && result 09/01/87
CDOW(DATE()) && result Tuesday

Also see: CMONTH(), CTOD(), DATE(), DOW(), DTOC(), DTOS(),
MONTH(), YEAR()










CMONTH() = To convert a date value to a string representing
the name of the month.

is the date value to convert. A character string is
returned.

CMONTH() is useful for creating formatted date strings that
you can use. For example:

CMONTH(DATE()) && result September

Also see: CDOW(), CTOD(), DAY(), DOW(), DTOC(), DTOS(),
MONTH(), YEAR()



CTOD() = To convert a date string to a date value.

Returns a date value.

is a character string consisting of numbers
representing the month, day, and year separated by a
delimiter character (any character other than a number).
When you pass the date string, CTOD() evaluates the order of
the month, day, and year substrings to the ensure they are
"mm/dd/yy" format.

CTOD() is useful whenever you want to use a character string
as a date value. There are a number of common instances
which you will want to do this especially if you are working
with the other date functions which require a date value.

Also see: CDOW(), CMONTH(), DATE(), DAY(), DOW(), DTOC(),
DTOS(), MONTH(), YEAR()



DTOC() = To convert a date value to a character string.

is the date value to convert. A character string is
returned.

DTOC() returns a character string representation of a date
value based on the .

DTOC() is primarily useful for formatting purposes when you
want to display the date in a printed report. For example:

DATE () && result 09/01/89
DTOC(DATE()) && result 09/01/89 as a character string
"Today is " + DTOC(DATE()) + " " + TIME()

Also see: CDOW(), CMONTH(), CTOD(), DATE(), DAY(), DOW(),
MONTH(), TRANSFORM(), YEAR()
DOW() = To convert a date value to a number identifying the
day of the week.

is a date value to convert. An integer numeric
value is returned.

DOW() returns a number between zero and seven. The first
day of the week is one (SUNDAY) and the last is seven
(SATURDAY). If is empty, DOW() returns zero.

Also see: CDOW(), CMONTH(), CTOD(), DATE(), DAY(), DTOC(),
DTOS(), MONTH(), YEAR()



DTOS() = To convert a date value to a character string.

is the date value to convert. A character string is
returned.

DTOS() returns a string eight characters long in the format,
"yyyymmdd". When evaluates to a null date, DTOS()
returns a string of eight spaces.

Also see: CDOW(), CMONTH(), CTOD(), DATE(), DAY(), DOW(),
DTOC(), DTOC(), MONTH(), YEAR()




MONTH() = To convert a date value to a number representing
the month of the year.

is the date value to convert. An integer numeric
value is returned.

MONTH() returns a number in the range of zero to 12.
Specifying a null date returns zero.

Also see: CDOW(), CMONTH(), CTOD(), DATE(), DAY(), DOW(),
DTOC(), DTOS(), YEAR()













YEAR() = Returns the year from as a four-digit
numeric value.

is a date value to convert. An integer numeric value
is returned.

Year() returns the year of the specified date value
including the century digits. For example:

DATE() && result 09/01/89
YEAR(DATE()) && result 1989
YEAR(DATE()) + 12 && result 2001

Also see: CDOW(), CMONTH(), CTOD(), DATE(), DAY(), DOW(),
DTOC(), DTOS(), MONTH()




SECONDS() = Returns the system time as a numeric value in the
form of seconds.hundredths.

To determine the number of seconds elapsed since 12:00 AM.
A numeric value is returned.

SECONDS() returns the system time as "seconds.hundredths."
The numeric value returned is the number of seconds elapsed
since midnight, and is based on a twenty-four hour clock, in
a range from 0 to 86399.

Also see: TIME()




INT(expN>) = To convert a number to an integer value by
truncating all digits to the right of the decimal.

is a numeric expression to convert to an integer. An
integer numeric value is returned.

INT() does NOT round the argument expression. INT() is
useful where the decimal value portion of a number is not
needed. For example:

INT(100.00) && result 100
INT(100.58) && result 100
INT(100.58 + .5) && result 101
INT(100.58583 * 100) && result 10058

Also see: ROUND()



ROUND(,) = To return a value rounded to the
specified number of decimal places.

is a numeric expression to be rounded.
is the number of decimal places in return value. A
numeric value is returned.

ROUND() rounds to the number of places specified by
. Specifying a zero or negative value for
allows rounding of whole numbers. A negative
indicates the number of places to the left of the decimal
point to round.

The ROUND() function is useful when you want to use a number
with less precision than it currently has.

Also see: INT()



LUPDATE() = Returns the date that the current database was last
modified.

A date value is returned.

LUPDATE() returns the date of change of the database file.
Note: The last date of change is not reflected until the
data base is closed. Some routines of the program close the
database which will force a change to LUPDATE().

Also see: RECCOUNT(), RECSIZE()




RECNO() = Return the record number as a number.

An integer numeric value is returned.

RECNO() is useful when you wish to know the record number of
the item within the database.

Also see: RECCOUNT(), RECSIZE()











RECSIZE() = Returns the record size of the database.

An integer numeric value is returned.

RECSIZE() returns the record length for the database. If
there are no records, it returns zero.

RECSIZE() determines the length of a record by tracking the
length of each field in the record and adding one character
to the total. When this value is multiplied by LASTREC(),
the product is the amount of space occupied by the file's
records.

Also see: RECCOUNT(), LASTREC()




RECCOUNT() / LASTREC() = To determine the number of physical
records in the database.

An integer numeric value is returned.

LASTREC() or RECCOUNT() returns the number of physical
records in the database file. This means that filtering
commands have no effect on the return value.

STR(RECNO()) + "/" + STR(LASTREC()) && result 1/401

Also see: STR(), RECNO()




RIGHT(,) = Returns characters from the right
of .

is the character string from which to extract
characters.
is the number of characters to extract. A character
string is returned.

RIGHT() returns the right most characters or .
If is negative or zero, RIGHT() return a null
string. If is larger than the length of the
character string, RIGHT() returns the entire string. The
maximum string size is 65,535 (64k) bytes.

HINT: RIGHT() is the same as SUBSTR() with a negative first
argument.

Also see: LEFT(), LTRIM(), RTRIM(), SUBSTR()


LEFT(,) = Returns characters from the left of
.

is the character string from which to extract
characters.
is the number of characters to extract. A character
string is returned.

LEFT() returns the left most characters or .
If is negative or zero, LEFT() return a null string.
If is larger than the length of the character string,
LEFT() returns the entire string. The maximum string size
is 65,535 (64k) bytes.

Also see: RIGHT(), LTRIM(), RTRIM(), SUBSTR()




STR([,[,]]) = Converts to a
character string of length containing decimal
places.

is the numeric expression to convert to a character
string.
is the length of the character string to return
including decimal digits, decimal point, and minus sign.
is the number of decimal places to return. A
character string is returned.

If the optional length and decimal arguments are not
specified, STR() returns the character string according to
the .

Also see: VAL()



















SUBSTR(,[,]) = Returns characters
from starting at . If is positive,
scanning begins from the right of .

is the source character string. The maximum
character string that you can take a substring of is 65,535
(64k) bytes.

is the starting position in the source string to
begin the substring. If the starting position is positive,
it is relative to the left most character in the string. If
the starting position is negative, the starting position is
relative to the right most character in the string.

is the number of characters to return. If this
argument is omitted, the substring begins at the starting
position and continues to the end of the string. If it is
larger than the number of characters from the starting
position to the end of the string, the extra is ignored.

SUBSTR() is useful when you want to display or print only a
portion of a character or field. It can also be used to
check the portion of a field when setting conditions.

Also see: LEFT(), RIGHT()




TRANSFORM(,) = To converts to a character
formatted to the picture specified by .

is the character, date, or numeric expression to
format.

identifies the format of the returned character
string in a template PICTURE. A character string is
returned.

TRANSFORM() takes the result of an expression of any data
type and returns a formatted character string according to
the template specified by .

TRANSFORM() allows you to format character, date, or numeric
expressions in a picture template. The following is a
complete list of functions and templates that TRANSFORM()
supports:







Function Action

B Displays numbers left-justified
C Displays CR after positive numbers
D Displays date in American format
E Displays date British format
R Inserts non-template characters
X Displays DB after negative numbers
Z Displays zero as blanks
( Encloses negative numbers in parentheses
! Converts alphabetic characters to upper case

Template Action

A,N,X,9,# Displays digits for any data type
! Converts an alphabetic character to upper
case
$ Displays a dollar sign in place of a leading
space in a numeric.
* Displays an asterisk in place of a leading
space in a numeric.
. Specifies a decimal point position.
, Specifies a comma position.

Functions: The function is a symbol preceded by an "@."
If a template symbol follows the function, it must be
preceded with a space. Note: More than one function can be
applied within the same expression.

Templates: Template symbols follow functions in the
PICTURE string if they are specified. Each position in the
output is mapped to the symbol in the same position of the
template.


The following example formats a number into a currency
format using a template:

TRANSFORM(123456,"$999,999") && result $123,456

The following example formats a character string using a
function:

TRANSFORM("to upper","@!") && result TO UPPER










VAL() = Converts to a number.

is a character expression to convert to a numeric. A
numeric value is returned.

VAL() stops evaluating a character expression when a second
decimal point, the first non-numeric character, or the end
of the expression is reached.

VAL() is useful when you want to do calculations using
numbers contained in a character field.

Also see: STR()




+ = This can be used to add character fields together, hook them
together.

If you are building a string using multiple fields with the
database you must make certain that none of the fields are
numeric. If they are numeric, use the STR() function to
convert it to a string.































Appendix 6.

This appendix is for explaining how to order applications.


















































Ordering applications:


MODIFICATION REQUESTS:

Modifications are limited to the database structure itself.
Each database record is made up of fields for data. Each field
has a type and a length. The type is either 'C' for
alpha-numeric data or 'N' for numeric data. The length of a
field can be between 1 and 254 positions long.

Example of database:
FIELD NAME TYPE LENGTH
frstname C 20
lastname C 20
middlein C 01
address C 40
zipcode N 05


Modifications are limited to,
changes to field name, type and length
adding new fields
deleting unused fields
changing screen formats


Modification requests must be submitted by mail. Each
modification request must include the following:

Licensed* users name, address and phone number.
Applications name and serial number.
DesignerDemo (y/n).
Have previous modification been done?(y/n).
Modification list


* No license required if DesignerDemo but, you must purchase
the program.

Ordering Applications/Modifications:

MODIFICATION LIST:

The modification list must include all field data in the
original database and the field(s) to be modified. This
information must be presented using FORM #1 and FORM #2. FORM #1
and FORM #2 are mandatory while FORM #3 and FORM #4 are
optional. These forms, and cost, are contained on your diskette
in a file called "FORMS".




Action codes for FORM #1

ACTION CODES :

A - ADD NEW FIELD
B - CHANGE FIELD TYPE
C - CHANGE FIELD LENGTH
D - DELETE FIELD
N - CHANGE NAME
O - ORIGINAL FIELD


Example:
User: Jon P. Doe Application: Mailing list
5214 Becket rd. serial: 22553A3
St John Ut 82234
(864) 255-3234

Note: No modifications have been made before.

FORM #1

FIELDNAME TYPE LENGTH ACTION FIELDNAME TYPE LENGTH

1. LASTNAME C 10 O
2. FRSTNAME C 10 O
3. MIDDLEIN C 1 OD
4. ADDRESS C 25 OCN STREET 30
5. STATE C 2 O
6. ZIPCODE C 5 OC 9
7. WORKPHON N 10 A



This example would change the length of the ZIPCODE from 5
to 9. The field ZIPCODE was changed to a Numeric field. Next,
the field WORKPHON was added. There was no need to store the
persons middle initial so it was deleted. The field ADDRESS
changed form ADDRESS to STREET and the length was changed from 25
to 30.

Each modification request must show the original fields in
the database. If you have made modifications you must show the
original database and the modifications as if this was your first
modification. We maintain and modify the original structure not
modified structures. For example you requested a modification,
modification number one, and you added a field. A few months
later, you now decide to add yet another field, modification
number two. You would submit the request using the original
structure (the fields prior to modification one) and list both
fields as fields to be added. This means you would submit
modification number two as if modification number one had never
been made.

You must also set the default sequence of the database.
After you described your original database and the changes to be
made using FORM #1, you must now use FORM #2 to define the
default sequence/order of the database.

FORM #2

SEQUENCE
FIELDNAME TYPE LENGTH PAGE

1. LASTNAME C 10 1
2. FRSTNAME C 10 1
3. WORKPHON N 10 1
4. STREET C 30 1
5. STATE C 2 1
6. ZIPCODE N 9 1

FORM #2 shows the end result of FORM #1. FORM #2 will be
your new database and the sequence of fields. Note: FORM #1 and
FORM #2 must be logical. All changes must be reflected in FORM
#1 and FORM #2 MUST be able to be derived from FORM #1. The PAGE
column indicates which page the field is in if you are building
multi-page databases.

You also have the option to submit FORM #3. FORM #3 is
used to describe your full screen format used in the Edit and Add
routines.

FORM #3

SCREEN
FIELDNAME ROW COL TITLE

1. LASTNAME 4 0 Last Name
2. FRSTNAME 4 23 First Name
3. WORKPHON 6 0 Phone #
4. STREET 7 0 Address
5. STATE 8 0 State
6 ZIPCODE 8 10 Zip

When designing the layout of your screen, the fields should
be in the same sequence as FORM #2. This would ensure they are
edited correctly with the m(o)de function. They can however, be
in any order on the screen. If the order/sequence is different
in FORM #3 than in FORM #2, FORM #3 will be the default editing
sequence. The available rows and columns are, Row four through
eighteen (4-18) and columns one through eighty (1-80). When
designing the screen format you must ensure you allow sufficient
room for the titles. You should also include FORM #4 which is a
printing format of FORM #3. For example:




FORM #4

1--------10--------20--------30--------40--------50--------60--------70--------80

Lines 1-3 cannot be used
================================================================================
Last Name XXXXXXXXXX First Name XXXXXXXXXX

Phone # XXXXXXXXXX
Address XXXXXXXXXXXXXXXXXXXXXXXXX
State XX Zip XXXXXXXXXX


If you submit FORM #3, you should also submit FORM #4 to
ensure your screen format is correctly understood. If you don't
submit FORM #3 and FORM #4, DesignerWare will create the screen
format based on its standard and the original format. You can
also request a screen format that does not contain all the
database fields. If this is done, the fields could be edited
with the View routine or View function. Note: Make sure when
you submit your screen request you do not leave out a field. If
you do, it will be interpreted as mentioned.

DesignerWare also reserves the right not to modify or
create any screen format if FORM #3 and FORM #4 are not logical
in nature with the request. For example, if you submit a screen
request which is not feasible (you referenced 85 columns of
information when 80 is maximum) then DesignerWare reserves the
right to adjust the screen format to a logical screen. Also, if
DesignerWare can not produce the screen requested, due to
technical difficulties, then DesignerWare will try to accommodate
the majority of your request.

Field modifications must be within the concept of the
original database. If they are not, then it will be considered
a NEW application. For example, deleting and adding fields to
totally change the purpose of the database.

Each modification request requires a maintenance fee.
Modification requests are limited to a maximum number of fields
based on the application. DesignerWare reserves the right not to
modify the application for any reason.

Note multi_page database can be built. If you wish to have
multi-pages use form #3 and form #4 to create multi-pages.
Submit one form #3 and one form #4 for each database page.








Ordering NEW Applications:

Brand new databases can be designed using the forms above.
Action code 'A' will be the only code used in FORM #1. Enter
'New application' for application name. Also include a brief
description of the applications purpose.

To submit a NEW application, submit FORM #1 through FORM #4
and an evaluation fee of $45.00 to DesignerWare. The evaluation
fee is non refundable. DesignerWare will evaluate your request
and inform you, in writing or by phone, whether or not your
application can be designed.

Accepted:

If the application can and will be designed, DesignerWare
will quote you the TOTAL price (not including shipping and
handling) for your application. You must then decide whether or
not to continue with the application. You have 30 days from the
invoice to respond. After 30 days, you will have to submit
another evaluation. If you accept within 30 days, DesignerWare
will develop your application upon receiving your payment.
Because we accepted the application, your evaluation fee can be
used toward the purchase price.

Disapproved:

If your application is disapproved, you will be told as to
why and what modifications need to be made before we will accept
it. Upon notice of non-acceptance, on our part, you have 30 days
from the invoice date to respond. If you respond within 30 days,
your application will be reviewed again without an additional
evaluation fee. After 30 days, you will have to submit another
evaluation.

Terms:

New application request are limited to DesignerWare 'look
and feel' approach and database management applications.
DesignerWare reserves the right not to create any application for
any reason.













Appendix 7.

This appendix describes DWMSG messages and errors. The
program uses (DWMSG XXX) to display information about the
process being preformed or possible errors. Use this appendix
to further understand the message or error.

Some errors cannot be caught with the built in error recover
routines and will therefore terminate the program. These type of
errors are usually created by the user doing such things as
removing a disk while a read or write is being preformed.
Another major error is when the Index file (NDX) becomes corrupt.
If this happens, delete the NDX file from the diskette and re-
start the program and re-index.







































001 Bad field name for the Index function has occurred.
You can index on one or several fields, but they must
all be of the same data type. Example: You can index
on all character fields or all numeric fields. You
cannot index on character fields and numeric fields at
the same time.

Hint: You can use the Sort/Index routine to physically
sort the database in the numeric sequence you wish.
Then index the database on the character field.
Remember the program doesn't maintain the sorted
sequence if changes/additions occur. You may also use
the Set Filter To function to set a particular filter
making the database appear to contain certain records.

Also see: Set Filter To function, Sort routine, Set
Unique function


002 Invalid condition in the Replace function. Conditions
must be logical for the database. The most common
errors occur when character fields do not contain
quotes, remember numeric data doesn't require quotes.
Example:

Author = "DesignerWare"
Cost = 10.00

Hint: You can use multiple conditions on fields or on
several fields. Example:

Author = "DesignerWare" .AND. Cost = 10.00
Author = "DesignerWare" .AND. Cost > 10.00

Also see: Boland Commands, Setting Conditions

003 Filter function is now off for creating or changing
disk drives/directory. You have set a Filter for this
database and are changing to another database or are
creating a new database. Filters are automatically
shut off when you change to another database. This
ensures you specifically identify a filter for each
database. If you are just creating a database or
checking for a file on another disk drive/directory and
do not use them. You will have to reset the filter for
the current database.

Hint: Changing disk drives/directory or creating a new
file assumes you are going to use them. This is why the
filter is automatically shut off. If you are just
performing program maintenance on several database
files then try not using a filter. Remember, filters
are primarily for Editing and Viewing records.

Also see: Set Filter To function
004 The logical top-of-file has been reached using the Back
function.

Hint: Using the up and down arrows automatically
performs a Skip function or a Back function.

Also see: Skip function, Back function, Top function,
botto(M) function.



005 No Index file found select number 7. You have started
the program from a disk drive which doesn't contain a
valid Index file. The data base has been located but
not the Index file. The following action should be
taken:

1. Select number 7 to create a new Index file.
or 2. Select number 3 to set the disk drive/directory to
where the files can be located.
or 3. If you are using a floppy drive, replace the current
disk with the disk containing the database.

Also see: Re-Index function, Create NEW Database
function


006 No database found, create or change disk drives to
where the files are located. You have started the
program from a disk drive which doesn't contain a valid
database. The following action should be taken:

1. Select number 4 to create a new Database and Index.
or 2. Select number 3 to set the disk drive/directory to
where the files can be located.
or 3. If you are using a floppy drive, replace the
current disk with the disk containing the database.

Also see: Create NEW Database function


007 Before using the program a valid Database and Index
must be created. This message indicates a Database
and/or the Index file is not found. DWMSG 005 and
DWMSG 006 compliment this error.

Also see: DWMSG 005 and DWMSG 006, Creating NEW
Database function






008 Empty database using View routine. You are trying to
use a newly created database with no records or are
using a database which has been Zapped. You must use
the Add routine to add manually or import records from
a file. You cannot View an empty database.

Also see: Add routine, Import function


009 Empty database using Edit routine. You are trying to
use a newly created database with no records or are
using a database which has been Zapped. You must use
the Add routine to add manually or import records from
a file. You cannot Edit an empty database.

Also see: Add routine, Import function


010 Are you sure you wish to stop adding records borts ?
You have pressed the ESC key and are being asked to
confirm. Entering a Y will stop the Add routine and
add the records to the current database. Entering any
other key will proceed with the Add routine. Entering
an A will abort the Add routine WITHOUT adding the
records to the current database (see DWMSG 011).

Also see: Add routine, Import function


011 Are you sure you wish to abort? You have entered A to
abort added records and are being asked to confirm (see
DWMSG 010). Entering a Y will abort the Add routine
WITHOUT adding records to the current database.
Entering any other key will continue with the Add
routine.

Also see: Add routine, Import function


012 Please wait adding records to the current database.
You have added records and program is putting them in
the current database.

Also see: Add routine, Import function


013 Aborting added records. You have added records using
the Add routine and have decided to abort this routine
WITHOUT adding the records to the current database.
All records that were added will NOT be added to the
current database.

Also see: Add routine, Import function

014 Please wait switching to Add. You have chosen to add
records to the current database. The program builds a
temporary working database for adding. You are being
asked to wait while this is being done.

Also see: Add routine, Import function


015 Zapping all records are you sure? You have chosen to
Zap (deletes all) records in the current database. It
is a good idea to have a backup of the database prior
to Zapping all records.

Also see: Zap function, Pack routine, m(A)ss delete
function


016 You have selected number 3 in the Utilities/Options
routine and have not selected a valid disk drive. You
must enter a valid disk drive. Example:

A:
B:
C: etc.

Also see: Change disk drives function


017 Invalid Database for number 3 in the Utilities/Options
routine. You have selected a valid disk
drive/directory for the database but, the program
cannot find the Database file on that disk
drive/directory.

Hint: Use the Create NEW Database function to create
the Database and Index on that drive/directory.
Also see: Import File function, Create NEW Database
function, Change disk drives function




018 Invalid database for Re-Index function. You have
started the program and the database cannot be found.
You selected number 7 to Re-Index. You cannot Re-Index
without a database. Another cause could be, you
shelled to DOS and didn't set the DOS directory to the
directory being used prior to the Shell DOS function.

Also see: Create NEW Database, Index routine, Shell DOS
function, Change disk drives function



019 Recalling all records marked for deletion. You have
chosen number 8 in the Utilities/Options to undelete
all records marked for deletion. The program is now
performing that function and is asking you to wait.

Also see: Delete function, Un-delete function, m(A)ss
delete function, Pack routine



020 Filter is not logical. You must select a logical
filter condition.

Also see: Boland commands, Set Filter To function,
Setting Conditions



021 Filter turned off. Any filter you may have set is now
off.

Also see: Set Filter To function


022 Please wait while adding records from the import file.
The program is adding records for the chosen import
file and is asking you to wait.

Also see: Import function, Add routine


023 Cannot find import file. The file you are trying to
import cannot be found. Check to ensure the file name
is spelled correctly and you are selecting the correct
drive and directory for the file.

Also see: Add routine, Import function


024 Deleting sounde(X) library. You have created a
sounde(X) library for editing. Sounde(X) libraries are
temporary in the Edit routine.

Hint: You can use the Index routine to create an Index
Key Field built on a soundex library.

Also see: Index routine, Soundex Index, sounde(X)
function






025 Sounde(X) not available in Add routine. Indexes are
not used in the Add routine. Use the Locate function
or searc(H) function to find the item you are looking
for.

Also see: Index routine, sounde(X) function, Add
routine


026 Change Index Key to Non-Soundex. You have selected a
Soundex Index as the master index. Therefor, soundex
is already active on the Key Index Field.

Hint: You can use Ascending or Descending Indexes then
create a sounde(X) index for searching in the Edit
routine.

Also see: Index routine, sounde(X) function


027 Soundex is already on. You have already created a
sounde(X) library. If you are trying to turn it off,
exit the Edit routine and re-enter. This will delete
and turn off the sounde(X) library.

Also see: Index routine, sounde(X) function


028 No Search is active. You cannot use the Go function to
continue searching the database on a particular field
without first selecting a search. Select searc(H)
function then use the Go function to continue.

Hint: Searc(H) is for searching any field for the
occurrence of data no matter where it is located. The
Locate function locates based on a condition and
locates data in a field left to right. The Find
function is used for a rapid search on the Key Index
Field.

Also see: searc(H) function, Go function, Locate
function, Continue function, Find function, Index
routine











029 No Locate is active. You cannot use the Continue
function to continue locating records in the database
without first using the Locate function.

Hint: The Locate function locates records based on a
condition and locates data in a field left to right.
The searc(H) function can be used to locate data inside
a field. The Find function is used for a rapid search
on the Key Index Field.

Also see: searc(H) function, Go function, Locate
function, Continue function, Find function, Index
routine


030 End-of-File has been reach for the Continue function.
The Locate function was continued from the current
record number and was NOT successful. No matching item
was found. The end-of-file has been reached.

Hint: The Locate function and Continue function start
from the current record number to the end-of-file. Use
the Top function or Back function to position the
database to the top of file.

Also see: searc(H) function, Go function, Locate
function, Continue function, Find function, Index
routine


031 Delete old backup file? An earlier backup file is
present on the disk. The Pack routine is about to
overwrite this file.

Also see: Pack routine


032 Not enough room for backup file on this disk. The Pack
routine has determined there is not enough room on this
disk to contain the backup file. Remove some files to
make room for the backup file or use another disk.


033 Packing file and Set Unique function is on. The
program wants to know if you wish to make the backup ,
sort the current database (Key Field sequence), remove
all duplicate Key Fields, and remove records marked for
deletion.

Also see: Set Unique function, Index routine, Pack
routine



034 Sorting and removing duplicate Key Fields. The Unique
function is on and you have chosen to Pack the file
using Unique. When this procedure is done you will
only have one record for each Key Field. The file will
also be physically sorted in Key Field sequence.

Also see: Set Unique function, Index routine, Pack
routine


035 Creating backup file. The Pack routine is presently
creating the backup file.

Hint: The backup file contains all records even the
ones marked for deletion. If you accidentally deleted
a record or created a Unique database and the result is
not the one desired. Use the backup file to recover
from. Remember not to re-run the Pack routine before
recovering your records because the backup file will be
overwritten.

Also see: Pack routine, Recovering Data

036 The file has been successfully backed-up. The program
is removing records marked for deletion or removing
duplicate Key Fields if Unique is on.

Also see: Pack routine, Recovering Data

037 Invalid condition in the Reports routine. Conditions
must be logical for the database. The most common
errors occur when character fields do not contain
quotes, remember numeric data doesn't require quotes.
Example:

Author = "DesignerWare"
Cost = 10.00

Hint: You can use multiple conditions on fields or on
several fields. Example:

Author = "DesignerWare" .AND. Cost = 10.00
Author = "DesignerWare" .AND. Cost > 10.00
Author = "DesignerWare" .OR. Author = "PC Group"

Also see: Boland Commands, Setting Conditions, Report
routine

038 Printer or Device is not ready. The printer is
presently off-line. Put the printer or device on-line
then press the Return key or press ESC to abort the
operation.

Also see: Report routine
039 Invalid condition in the Export routine. Conditions
must be logical for the database. The most common
errors occur when character fields do not contain
quotes, remember numeric data doesn't require quotes.
Example:

Author = "DesignerWare"
Cost = 10.00

Hint: You can use multiple conditions on fields or on
several fields. Example:

Author = "DesignerWare" .AND. Cost = 10.00
Author = "DesignerWare" .AND. Cost > 10.00
Author = "DesignerWare" .OR. Author = "PC Group"

Also see: Boland Commands, Setting Conditions, Export
routine


040 The export file exist. The program is about to
overwrite this file and is asking you to confirm the
overwriting.

Also see: Export routine

041 Key Fields are over 80 characters long. The key Fields
selected are over 80 characters long and cannot be
displayed on one line. The Key Fields are marked by an
asterisk. Use the Info routine to check the sequence
of the Key Fields.

Also see: Index routine


042 Bad field name for the Sort routine has occurred. You
can sort on one or several fields, but they must be
the same data type. Example: You can sort on all
character fields or all numeric fields. You cannot
sort on character fields and numeric fields at the
same time. The Sort function performs a physical
sorting of the records in the database.

Hint: You can use the Sort routine to physically sort
the database in the numeric sequence you wish. Then
use the Index routine to index the database on the
character field. Remember the program doesn't maintain
the sorted sequence if changes/additions occur. You
may also use the Set Filter To function to set a
particular filter to make the database appear to
contain certain records.

Also see: Set Filter To, Sort routine, Set Unique
function
043 Not enough room for the temporary sorting file. The
Sort routine uses a temporary file for sorting. There
must be enough room on the disk for this file. Delete
some files from the disk making room for the temporary
file or use another disk drive/directory.

Also see: Sort routine, Index routine


044 Unique is on and the program is creating a Unique
Index. The program is telling you to wait while the
index is being created. The program is just reminding
you this will be a Unique Index.

Hint: Remember the procedures for Unique Indexes and
what functions and routines are effect by it.

Also see: Set Unique function, Index routine, Sort
routine, Set Filter to function


045 You are trying to create a Soundex Index or sounde(X)
on a non-character field. Soundex Indexes or sounde(X)
can only be built on a character field(s). Use the
Index routine to Index on a character field(s).

Also see: Index routine, Sort routine, sounde(X)
function


046 No fields are being carried or previously selected
fields are now NOT being carried. In the Add routine
you can select certain fields from the last record to
be carried over to the next newly created record.

Hint: Use the Structure routine (in Main Menu) to
determine which fields have been selected for carrying
data to newly created records. Remember this is a
globally set function which stays in effect until you
exit the program, change the carrying fields, or turn
it off. To turn off the (2)Carry function select
(2)Carry (in Add) and do NOT select any fields.

Also see: Add routine, (2)Carry function, m(O)de
function









047 Key Field is locked and you cannot replace on this
field. You cannot use the Replace function to replace
data in any field being used as a Key Field. To
replace data in this field you can use the View routine
or full page Edit routine.

Hint: You can use the Index routine to change the Key
Field to another field. This will allow you to mass
replace data. Note: In the Add routine no fields are
locked because the Index is NOT used for adding.

Also see: Replace function, Add routine, Index routine


048 No Condition for m(A)ss delete has been set or an
invalid condition in the m(A)ss delete function.
Conditions must be logical for the database. The most
common errors occur when character fields do not
contain quotes, remember numeric data doesn't require
quotes. Example:

Author = "DesignerWare"
Cost = 10.00

Hint: You can use multiple conditions on fields or on
several fields. Example:

Author = "DesignerWare" .AND. Cost = 10.00
Author = "DesignerWare" .AND. Cost > 10.00
Author = "DesignerWare" .OR. Author = "PC Group"

Note: A condition must be used for the m(A)ss delete
function to work. It is a conditional delete function.
Without a condition all records would be deleted. If
this is your intent, use the Zap function within the
Utilities/Option routine.

REMEMBER RECORDS ARE NOT ACTUALLY DELETED. THEY ARE
ONLY MARKED FOR DELETION. YOU MUST RUN THE PACK
ROUTINE TO PHYSICALLY REMOVE THEM FROM THE DATABASE.
IF YOU MAKE AN ERROR AND ACCIDENTALLY MARKED A RECORD
FOR DELETION YOU CAN USE THE UNDELETE ALL FUNCTION IN
UTILITIES/OPTIONS ROUTINE.

Also see: Boland Commands, Setting Conditions, Pack
routine, Un-delete function, m(A)ss delete function,
Un-delete all function

049 Find not available in Add routine. During the Add
routine you are working in a temporary database which
doesn't use indexes. Therefore, the Find function and
sounde(X) function is not available.

Also see: Add routine
050 Item is not found in the Key Field Index but the
sounde(X) function is turned on. Sounde(X) function has
found a Key Field that sounds like the one on the
screen.

Hint: If Set soft seek function is on, you will not
find Key Fields that sound like the item being looked
for. Remember the Find function is letter case
sensitive.

Also see: Find function, Index routine, Set soft seek
function, Set Filter to function


051 Item is not found and there are not any Key Fields that
sound like it.

Hint: If Set soft seek function is on, this may affect
this message form appearing. Remember, the Find
function is lower and upper letter case sensitive. If
the Set soft seek function is on, then the record where
the item should appear will be found.

Also see: Find function, Index, sounde(X) function,
Set soft seek function, Set Filter To function


052 Item is not found in the Key Field Index. Check the
spelling of the item and ensure it is correct.

Hint: The Find function reads from left to right and
will not find an item within a Key Field. Use the
searc(H) function for this. Find is lower and upper
letter case sensitive. If you have indexed on more
than one field you will have to remember the left to
right read and to use trailing blanks where
appropriate. Example:

Indexed on two fields which are as follows:

(Field Name) (Type) (Length)
AUTHOR Character 15
COMPUTER Character 5

Find this item: Found Y/N
DesignerWare IBM Yes
DesignerWare IBM No
DesignerWare Yes
Pc Group IBM No
Pc Group IBM Yes
IBM No

Also see: Find function, Index routine

053 The logical end-of-file has been reached using the Skip
function.

Hint: Using the up and down arrows automatically
performs a Skip function or a Back function.

Also see: Skip function, Back function, Top function,
botto(M) function.


054 The disk drive you are trying to create a database on
is not valid. You must enter a disk drive regardless.
Examples:

A:
B:
C:
A:\FILES\
etc.

You cannot just enter a directory name even if you wish
to use the default drive.

Also see: Create NEW Database function


055 DOS error in creating the database has occurred. This
error has been returned from DOS while opening the
database file. Common errors are:

Drive not ready
Drive not available
Directory not found
Disk is corrupt

Also see: Attachment DOS errors


056 DOS error has occurred while creating the database
file. This error has been returned from DOS while
creating the database file. Common errors are:

Disk is full
Disk is corrupt

Also see: Attachment DOS errors








057 Invalid expression in the Locate function. Expressions
are the same as Conditions and must be logical for the
database. The most common errors occur when character
fields do not contain quotes, remember numeric data
doesn't require quotes. Example:

Author = "DesignerWare"
Cost = 10.00

Hint: You can use multiple conditions on fields or on
several fields to locate data. Example:

Author = "DesignerWare" .AND. Cost = 10.00
Author = "DesignerWare" .AND. Cost > 10.00
Author = "DesignerWare" .OR. Author = "PC Group"

Note: A condition must be used for the locate function
to work. It is a conditional Locate function.

Also see: Boland Commands, Setting Conditions, Locate
function, Continue function


058 Set Filter To function is on and the program is about
to perform a function or routine which requires the
filter to be turned off. It will be saved and turned
back on when the operation is done.

Also see: Set Filter To function


059 DOS error has occurred while reading a LBL file. The
end of file was unexpectedly encountered. This LBL
file is corrupt. Delete it from the disk drive and use
the Build routine to re-create it.


060 DOS has reported the disk is full during the saving of
the LBL file. Use another disk drive or remove some
files.

Also see: Attachment DOS errors


061 Not a LBL file. You are try to read a file that is NOT
in LBL format.


062 Open error, file not found while trying to open LBL
file.

Also see: Attachment DOS errors


063 DOS has reported the file handle for this LBL is not
correct or is invalid. Make sure you have allotted for
enough files in your config.sys file (see your DOS
manual).

Also see: Attachment DOS errors


064 DOS seek error has occurred on this disk drive.

Also see: Attachment DOS errors


065 Write error has occurred on this disk.

Also see: Attachment DOS errors


066 Read error has occurred on this disk.

Also see: Attachment DOS errors


067 DOS being reported has occurred refer to the attachment
DOS errors for determining the problem.


068 Not used


069 Not used


070 End of file has occurred while reading the FRM file.
This FRM file is corrupt and should be deleted and re-
created using the Build routine.


071 Disk drive you are saving the FRM file is full. Use
another disk drive.


072 This file is not a FRM file. You are trying to use a
file which is not in FRM format.


073 Open error has occurred. The program can not find the
FRM file.

Also see: Attachment DOS errors




074 DOS has reported the file handle for this FRM is not
correct or is invalid. Make sure you have allotted for
enough files in your config.sys file (see your DOS
manual).

Also see: Attachment DOS errors


075 DOS seek error has occurred on this disk drive.

Also see: Attachment DOS errors


076 Write error has occurred on this disk.

Also see: Attachment DOS errors


077 Read error has occurred on this disk.

Also see: Attachment DOS errors


078 DOS error being reported has occurred refer to the
attachment DOS errors for determining the problem.


079 The records that marked for deletion are being added to
the purge file.

Also see: Pack routine


080 The purge file doesn't exist so it is being created.

Also see: Pack routine


081 Pack routine has determined there isn't enough room on the
disk for the backup database and temporary database. With
Unique ON the Pack routine requires additional room for a
temporary file which is used for removing duplicate keys.
There may be enough room for the backup database but not the
temporary file. Try turning OFF Unique, or using another
disk drive.









082 The program is asking you if it should add the records
marked for deletion. If you answer no, the records that are
marked for deletion will not be added to the database. If
you answer yes, the records that are marked for deletion
will be added to the database.

If records marked for deletion are added to the database
they will retain their status and remain marked for
deletion.

Also see: Un-delete function, Undelete all function, Pack
routine


083 You have used 3 in the Utilities/Options routine to change
to another database. The database has been located but the
index file cannot be locate. It is therefore being created.

084-098 Not Used

099 A fatal error has occurred which could not be recovered.
Check the operation you are using and make certain you have
chosen the correct option(s). Most common errors are:

<1>. You are trying to use a FRM file that is corrupt
and/or was built for another database.

<2>. You are trying to access a disk drive and/or path that
doesn't exist.

<3>. You are trying to export data to a bad device or bad
file name and path/drive.

<4>. You are trying to use a LBL file that is corrupt
and/or was built for another database.

<5>. You are trying to use a DRW file that is corrupt
and/or was built for another database.

<6>. You Shelled to DOS and changed the DOS default
directory.

The program will be started over again. All variables and
settings will be cleared and reset to their original start-
up value.




100-129 Not used




130 Warning you are editing a DRW file which doesn't have a DLW.
The Build routine will create it.


131 You have pressed the F6 key to display an expression which
is on the screen. The DRW manager can't find the expression
at the cursor position. Move the cursor position and try
again.

132 Expression overlaps on an expression already on the screen.
You have an expression captured and are trying to drop it on
the screen where it would overlap an already existing
expression. Move the cursor to a new location and try
dropping it again.

133 You have entered an expression and there is no expression or
the expression length equals zero. When this happens your
expression is deleted.

134 You are on an expression and have pressed the Insert key.
You cannot insert spaces in an expression. You can however
capture it and edit it.

135 You are on an expression and have pressed the Delete/Back
Space key. You cannot delete spaces in an expression. You
can however capture it and edit it.

136 You have pressed the F2 key to edit an expression. There is
no expression captured. Use the F1 key to pick up and
capture the expression.

137 You have captured an expression and have moved the cursor
and placed the cursor on an expression. You cannot edit the
captured expression while the cursor is pointing to another
expression.

138 You cannot edit a page eject. You can delete it with the F3
key.

139 You have captured and expression and have pressed the F3
key. DRW manager thinks you are trying to delete the
captured expression. You must drop it. After it is dropped
you can use the F3 key to delete it. You can also press the
F2 key to edit it and delete it by blanking it out or making
the expression length equal to zero.

140 You are trying to drop a page eject on top of a line
containing information. Move the cursor to a blank line or
create one and drop the page eject.





GLOSSARY


Bottom-of-file - The last record in the database or the last
record in the index file.

Buffer - A temporary data storage location in memory.

Command Switch - An option used to start the program from the DOS
prompt which effects the way the program is started.

Condition - A logical expression used for processing records to
define a set of records to process.

Database - An aggregation of related operational data used by
the program. A database file has DBF as its extension.

Data Type - Character or Numeric data, Character is all valid
characters numbers and letters while Numeric data is numbers.

DBF - The extension of a file which indicates it is a database.

Default Key Field - The field in the database used to create the
index file if a Key Field has not been assigned.

Delimiter - A symbol that marks a boundary. This usually applies
to delimited files where it specifies the character that bounds
character fields. Note that it is the field separator which
defaults to a comma.

Drive - A letter designating a disk drive.

DLW - DesignerWare's Report Location Writer file.

DRW - An extension of a file indicating it is a DesignerWare
Report Writer file.

End-of-file - The bottom of a database. The last record in the
database or index.

ESC - The escape key used to terminate a operation.

Expression - Any combination of character, operators, functions,
and identifiers that can be evaluated.

Field - The basic column unit of a database file. A field has
four attributes: Name, Type, Length, and decimals if the type is
numeric.

Filename - The name of a disk file that may or may not exist.

FRM - The extension of a file indicating it is a report file.


Index - A set of key values organized and maintained in a tree
structure, each key pointing to a record in the related database
file. This file has NDX as its extension.

Key Field - A field or fields from the database which are used to
index the database.

LBL - An extension of a file indicating it is a label file.

Logical - The relation being defined must exist or be true.

Marked for deletion - Records in the database that are still
physically there but will be deleted when the file is packed.

NDX - An extension of a file indicating it is a index file.

Pack - The process of removing records marked for deletion.

Record - The basic row unit of a database file consisting of one
or more fields.

Temporary file - File that is created and used for a specific
time period and later deleted.

Top-of-file - The top of the database file. This is the first
record in the database or the first record in the index file.

Unique Index - A index that allows only one Key Field in the
index.