home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
database
/
zephyr2.zip
/
INSTAL2.EXE
/
lha
/
ZEPHYR
/
ZEPHYR.DOC
< prev
next >
Wrap
Text File
|
1990-12-24
|
95KB
|
1,978 lines
ZEPHYR 2.0
FoxPro-Compatible
Data Base Management
For Non-Programmers
Copyright (c) Ward Mundy, 1990. All rights reserved.
Ward Mundy Software, 4160 Club Drive, Atlanta, GA 30319
GETTING STARTED
Welcome to ZEPHYR
Whether this is your first experience with a data base manage-
ment system or not, we want it to be a pleasant and memorable one.
You can save yourself a good deal of aggravation by spending a few
minutes with this book before you turn on your computer. Zephyr was
designed to allow even novice data base users to create sophisti-
cated, menu-driven data base applications in minutes rather than
years. However, to get the most out of Zephyr, you need to get
acquainted with its tools and functions.
First, the good news. Zephyr is a menu-driven, relational
data base management system for non-programmers! It uses the
fantastic FoxPro data base engine from Fox Software. You will find
its performance is second to none: 8 times the speed of dBASE IV
and 16 times that of dBASE III Plus. Yet Zephyr retains substan-
tial language and file compatibility with all dBASE dialects. It
also adds a host of features which simply are not available in any
other menu-driven data base product. Here's a partial list:
Simultaneous access to 25 dBASE-compatible data bases
Up to 25 separate indexes to speed sorting and file relations
The best windowing and user interface you'll find anywhere
State-of-the-art reports, labels, form letters, and lists
One billion records per data base; 256 fields per record
Unlimited length free-form text fields which are searchable
Pop-Up Calculator, Calendar, Appointment Scheduler, Puzzle
ZEPHYR Main Menu
Shown above is Zephyr's Main Menu. Notice there are a series
of Lotus-style menu bars across the top row of the screen. Moving
between these menu bars activates a series of pull-down menus which
provide access to all of Zephyr's main functions. For dBASE
`gurus,' there also is a command mode option activated with the
BUILD PROGRAM choice.
EDITOR'S NOTE: This documentation has been generated from page
galleys used to produce the soft-bound Zephyr User's Guide, which
is provided without charge to all registered users. It is complete
with the exception of screen graphics which simply cannot be dupli-
cated with most printers.
Zephyr User's Guide Page 1
System Requirements
Zephyr will run on any DOS-based personal computer with 640K
of system memory, a hard disk, and DOS 2.1 or higher. Additional
expanded memory can double or triple Zephyr's overall performance.
Both monochrome and virtually all color cards and monitors are
supported. A mouse is supported but not required.
Installing ZEPHYR
Zephyr is distributed in compressed format to conserve disk
space and better assure the reliability of its system files.
Special thanks for LHArc, Yoshi's archiving utility, which is used
with permission of the author.
To install Zephyr, position to the drive on which you wish to
install the software. If this is Drive C, type C: <ENTER> at the
DOS prompt. Insert Zephyr distribution diskette in Drive A and type
A:INSTALL /x <ENTER>. Don't forget the /x (with a lower case x).
This tells the program to create a \ZEPHYR directory on the default
drive and install Zephyr there.
In 95% of the systems we have tested, Zephyr will run without
a hitch as installed. To test your luck, move to \ZEPHYR directory
by typing the following: CD \Zephyr <ENTER>. Type Zephyr and press
<ENTER> to fire up the software. You should see a logo and then
the Zephyr Main Menu. If not or if your computer hangs when you
attempt to execute an option such as BUILD DATA BASE, then read
the next section.
Setting Up Your Computer
The beauty of DOS-based computers is their ability to run a
vast assortment of DOS-compatible software. This does not mean all
DOS computers are alike. There are many different ways to config-
ure your system. Zephyr attempts to decode your system configura-
tion; however, there are certain configurations which simply cannot
be ascertained. These include systems which drive a monochrome
display from a color graphics card of some type. Also certain
types of gee-whiz memory will throw Zephyr for a loop unless you
specifically tell Zephyr what's going on.
Zephyr ordinarily does not need a configuration file
(CONFIG.FP) to load and execute properly. You will need to create
one if situations such as those outlined above exist on your
computer. This can be done with any editor, or type the following
commands at the DOS level in the \ZEPHYR subdirectory to create
one.
Zephyr User's Guide Page 2
Which configuration commands you will need to insert in the
CONFIG.FP file depends upon the types of problems you are having.
These are covered in the next sections of the User's Guide.
CD \ZEPHYR <ENTER>
COPY CON CONFIG.FP <ENTER>
{Type configuration commands here}
<CTRL-Z> <ENTER>
Default Display Type
If the Zephyr command menu or submenus are unreadable, you may
want to manually choose another display type. This can be done by
adding a line to the CONFIG.FP file outlined above. Typically,
this will be necessary where you are using a monochrome, plasma, or
LCD display with a color graphics card of some sort. When Zephyr
identifies a color card, it automatically assumes you have a color
monitor. Simply add one of the following lines to your CONFIG.FP
file to correct the problem. You may wish to experiment with
several until you find the best alternative.
COLOR SET=MONOCHROME COLOR SET=T5200_MONO
COLOR SET=COMPQ_MONO COLOR SET=BW
COLOR SET=TOSH_3200 COLOR SET=BLKWHT
Please note that creation of a CONFIG.FP file tells Zephyr you
are taking charge. Because of this, you always will need to add a
COLOR SET command in the CONFIG.FP file once you create this
configuration file. If you have a color monitor which displays
perfectly, but you have to create a CONFIG.FP file to resolve a
memory problem (as explained below), then add the following line to
your CONFIG.FP file to preserve the proper color settings for your
display:
COLOR SET=COLOR
Expanded Memory Options
If you have a PC with 640K, skip this section. If you only
have extended memory in your system, you may also skip this sec-
tion. If you have expanded memory and Zephyr hangs when you choose
certain options, read on. Expanded memory comes in as many flavors
as jelly beans. Hardware-based expanded memory which conforms to
the LIM 4.0 standard should cause no problems. Expanded memory
which derives its brains from a software driver may or may not work
depending upon the EMS driver.
Zephyr User's Guide Page 3
You have several options to try which are listed below in
`most benefit' order. The most beneficial option is EMS=ON which
is the default with no CONFIG.FP file. If this doesn't work, try
the following in the order in which they are listed. Include only
one in your CONFIG.FP file. Then run Zephyr again to see if the
problem goes away. If it doesn't, replace your choice with the
next option in this list.
EMS64=OFF (All EMS used to speed file I/O)
EMS=64 (Only first 64K of EMS is used)
EMS=OFF (No EMS memory is used by Zephyr)
Disabling F11 & F12 Keys
Zephyr always tests for the presence of the F11 and F12
function keys when it starts. A few old BIOS chips on computers
without F11 and F12 function keys nevertheless report the presence
of these keys. This will cause Zephyr to hang when it loads. If
your system does this, try adding the following line to the
CONFIG.FP configuration file:
F11F12=OFF
Utilizing RAM Disks
Zephyr's overall performance can be enhanced by using a RAM
disk to store overlay files and a program cache file. The overlay
files require about 450K while the program cache file typically
requires less than 256K. Make certain that your RAM disk is large
enough to accommodate these files before adding one or both of the
following lines to your CONFIG.FP file.
OVERLAY=<drive:\dir>
PROGWORK=<drive:\dir>
When All Else Fails
Both Zephyr and the FoxPro data base engine are new products.
As with any new software, there is always the possibility that some
novel piece of software or hardware will not happily coexist. If
you experience problems, please call us any weekday evening between
6 p.m. and 9 p.m. EASTERN time at 404/237-9420. Before calling,
please consult the file README.DOC on the distribution disk for
late-breaking enhancements.
Zephyr User's Guide Page 4
Zephyr Licenses
ShareWare is "try-before-you-buy" software. You are extended a
90-day license to kick the tires and see if Zephyr meets your
needs. If it does, then you need to register and obtain an end-
user license within 90 days. If it doesn't, then simply pass it
along to a friend or computer users' group.
Zephyr is copyrighted software that is distributed through the
ShareWare market. It is available in three versions: the ShareWare
version includes the FoxPro demo run-time data base engine, the 90-
day evaluation version includes the unrestricted FoxPro run-time,
and the registered end-user version includes the unrestricted
FoxPro run-time. Only the ShareWare version of Zephyr with the
demo FoxPro run-time can be redistributed by you to others. The
Zephyr logo screen clearly identifies which version you have and
whether it can be redistributed.
Zephyr requires the FoxPro run-time data base engine to
execute. Therefore, there are some additional licensing restric-
tions over which we have no control. Both we and you are bound by
them.
First, only the demo FoxPro run-time may be distributed in the
ShareWare market. The reason for this, aside from Fox Software
saying so, is that Fox sells the unrestricted run-time for $500.
If everyone could download it off a bulletin board, then there
obviously would be little demand for the product. That would be
bad news for all of us. The major difference in the demo and
unrestricted run-time is that the demo version supports 120 records
per data base while the unrestricted run-time supports one billion
records per data base. Second, Fox Software says only we can sell
you an unrestricted FoxPro run-time as part of one of our products.
It cannot be redistributed by you.
We obviously appreciate that demos make many folks see RED!
And we adhere to ShareWare distribution standards of the Associa-
tion of ShareWare Professionals. None of our products are crippled.
Nevertheless, we (and you) also must adhere to our license agree-
ment with Fox Software regarding their run-time. Finally, we want
everyone who tries Zephyr to have the ability to utilize it to the
fullest during the 90-day evaluation period.
Therefore, in keeping with our obligation to sell you the
software directly, we make the following offer. You may order an
unrestricted, 90-day Zephyr single-user evaluation license from us
for $1. In return, we will provide you an unrestricted FoxPro run-
time license to use with our Zephyr software during your 90-day
evaluation period. You may not redistribute this version of Zephyr.
However, you MUST send us one U.S. dollar.
Zephyr User's Guide Page 5
After you have tried Zephyr, we obviously hope you will decide
to register. For what you receive, our license fees are the lowest
in the world, period! Payment of the current $50 license fee
entitles you to the next update of the software at no charge, an
unrestricted FoxPro run-time license to use with Zephyr, a soft-
bound User's Guide, and 90-days' free support.
For some, an evaluation of Zephyr with the demo FoxPro run-
time may suffice. You do not have to send the $1 if, at any time,
you decide you are ready to register and obtain a current single-
user license.
For ShareWare distributors, this documentation serves as a
license to redistribute the ShareWare version of Zephyr with the
demo FoxPro run-time for a copying fee not to exceed $10 U.S. Any
alteration of the software or doc files terminates this license.
Zephyr User's Guide Page 6
BUILDING ZEPHYR APPLICATIONS
Overview
The easiest way to learn Zephyr is to take it for a test-
drive. This chapter walks you through creation of a sample appli-
cation. I strongly recommend you start here. Whether or not you
are new to the data base world, let me also recommend a wonderful
new 800 page McGraw-Hill book by Edward Jones. It's title is
FoxPro Made Easy. It is available in most major book stores for
$22.95. It will be the best $22.95 you ever spent.
With the exception of a couple of chapters, everything in this
exhaustive book can be put to good use with Zephyr. This manual
attempts to lay the groundwork for using Zephyr. It cannot possi-
bly educate you on all facets of the FoxPro data base engine. To
get the most out of Zephyr, spring for Mr. Jones' book. It will
greatly enhance your enjoyment of this software while introducing
you to what, I think, is the best data base engine on the market.
If you have trouble finding the book, you may order the book
directly from us. See the order coupon accompanying this manual.
Creating A New Data Base
All of Zephyr's building block tools are housed in the BUILD
menu option. Use the <Right Arrow> cursor to move to this option.
The DATA BASE FILE selection will be highlighted. Press <ENTER> to
proceed.
When prompted whether to create a NEW or revise an OLD data
base, press <ENTER> to choose NEW option. The file selection window
shown above will then display. When prompted for the name of your
new data base file, type SAMPLE and press <CTRL-ENTER>.
The file creation window then will display. Type in the
information shown below, pressing <ENTER> after each entry is
completed. When you have completed all of the entries, press
<CTRL-ENTER> to save your new data base file structure to your hard
disk. Type N when asked whether to Add records now.
Creating A New Index
An index is a separate file created to enable you to quickly
locate records in a data base. For example, if we wanted to be
able to quickly retrieve records by last name, then we would create
Zephyr User's Guide Page 7
a LASTNAME index. Similarly, if we wanted to be able to "sort" a
data base in zip code order, we would create a ZIP index. One of
the beauties of indexes is that they function as an instantaneous
sorting mechanism. So long as an index is `open' while the primary
data base is in use, the index entries are automatically kept up to
date.
The old trusty Rolodex could also index its cards; however, it
had one serious limitation. The cards could only be indexed one
way without creating another whole deck of cards. Zephyr improves
upon the Rolodex by enabling you to create as many as 25 different
indexes for a single data base. To retrieve your data in a partic-
ular order, all that is necessary is to designate the "lead" or
primary index.
To create an index is a snap. Zephyr supports creation of
both simple and complex indexes. A simple index is an index of any
single field in your data base. A complex index is an index of
more than one field in your data base. For example, if we wanted
to sort the SAMPLE data base on last name and, within last names,
by first name, then we would want to create a complex index. If we
create a simple index on only the LASTNAME field, then John Smith
and Joe Smith would not necessarily sort in the correct alphabeti-
cal order. This may or may not matter to you.
Let's create one index of each type just to demonstrate the
two methods. Let's assume we want a zip code index to generate a
mailing list from our SAMPLE data base. Since we still are in the
BUILD menu option, simply move the cursor down to the INDEX option
and press <ENTER>. A window will prompt for whether to create a
NEW index or revise an OLD one. Leave NEW highlighted and press
<ENTER>. Next a window will prompt for whether to create a SIMPLE
or COMPLEX index. Leave SIMPLE highlighted, and press <ENTER>.
The field selection window shown above then will display. Use
the <DOWN> cursor to highlight the ZIP field and press <ENTER>.
Zephyr will automatically create the ZIP index and activate it for
use.
Now let's create a complex index on LASTNAME and FIRSTMI.
Note that the order is important. We want the LASTNAME to be the
primary key and FIRSTMI to be secondary. Otherwise, we would be
sorting all the Joe's together rather than all the Smith's.
Choose the INDEX option again by pressing <ENTER> while it is
highlighted. Choose the NEW index option by pressing <ENTER>.
When prompted whether to create a SIMPLE or COMPLEX index, type C
and press <ENTER>. Or you could have pressed the <SPACE BAR> to
toggle between simple and complex. Then press <ENTER> when COMPLEX
is highlighted.
Zephyr User's Guide Page 8
The index expression window then will appear. Type in the
following for the index expression: LASTNAME + FIRSTMI. Press
<CTRL-ENTER> when you have typed the entry as shown below.
The file creation window then will display. Type in FULLNAME
as the name for this complex index. Then press <ENTER> to create
the index.
Note that both of these fields were "character" type fields.
It is legal in Zephyr to concatenate "character" fields. This is
not permissible with any other type fields. You can, however,
convert other types of fields to "character" expressions using
functions.
We now have created two indexes for our SAMPLE data base. By
changing the "lead index," we can retrieve records in either
LASTNAME or ZIP order. We'll do this in a few minutes. Now let's
add some data.
Adding Data to Data Bases
Let's take off our BUILD hat for a moment and actually INPUT
some data into our new data base. Use the <HOME> cursor key to move
to the INPUT menu option. Now highlight the ADD RECORDS option by
typing an A. Then press <ENTER> to display a blank data entry
screen. Make up several entries such as the one shown below.
Press <PgDn> to save each entry and move to another blank screen.
When you have finished adding records, press <ESC> to end your ADD
RECORDS session.
Browsing Thru Data Bases
One of Zephyr's most powerful features is its BROWSE RECORDS
mode. It gives you a spreadsheet-type view of your current data
base sorted in the order of the primary index. The view can be
modified to look at only a particular group of records by setting a
FILTER. Or we can change the order of the data by simply changing
the LEAD INDEX. FoxPro Made Easy dedicates over 100 pages to its
explanation of all the features of the BROWSE function. We will
explore a few of the features now and come back to the more complex
ones later.
To enter BROWSE mode, highlight the BROWSE RECORDS option in
the INPUT menu and press <ENTER>. The columnar display should look
like that shown at the top of the next page.
Zephyr User's Guide Page 9
Moving through the data horizontally is accomplished by
pressing the <TAB> key. Or you can move in the reverse direction
by pressing <SHIFT-TAB>. To move down or up a row at a time, press
the <Up> or <Dn> cursor keys. Use <PgUp>/<PgDn> to move more
quickly.
In a large data base, this would be cumbersome to say the
least. Zephyr supports indexed movement through the data base by
pressing <CTRL-K> and then typing all or part of the lead index key
to find. Pressing <ENTER> executes the search which will be
virtually instantaneous on any size data base. If a matching record
is not found, the cursor will be positioned on the closest match.
Suppose we decide we'd like to search on a different index
key. Then simply press the <F10> function key to display a list of
current active indexes for this data base. Highlight the desired
index and press <ENTER>. Then execute the search using the new lead
index as outlined above.
There may be instances in which you need to find a particular
expression but you do not know what field the expression is stored
in. Move to the top of your data base, then press <CTRL-F> and
enter the expression to find. Press <CTRL-ENTER> to execute the
search.
Using Memo Fields
If you constructed the SAMPLE data base as recommended, you
will note that it includes a COMMENTS field with a notation beside
it that says memo. The data for memo fields is actually stored in
a separate file (SAMPLE.FPT). The 10 character width of the memo
field in the main data base merely stores a `pointer' to the memo
data in the special memo file. This is good news because a memo
field can store data of any size. It is a variable length field
with virtually limitless possibilities. If a memo field in a
particular record is empty, its memo designation will always appear
in all lowercase letters: memo. If it contains data, the display
will show Memo.
Data can be added or changed in a memo field while in BROWSE
mode by positioning the cursor on the desired memo field. Then
press <F5> or <CTRL-PgDn> to invoke the memo editor. Now move to
the COMMENTS field and add some data. You will note that the
editor functions much like a word processor. It includes block
copy and delete functions, global search and replace, and many
other nice touches. These are covered in greater detail in the
FoxPro Made Easy reference book. When you have finished your entry
in the memo field, press <CTRL-W>.
Zephyr User's Guide Page 10
Browse Formats
The default BROWSE settings provide you with access to all
fields in your current data base. Every field is formatted to its
default specifications, every field is accessible, and no error
correction is provided. This may or may not be desirable depending
upon your particular application.
Zephyr provides access to all the tools available to a FoxPro
programmer in customizing your BROWSE environment. Some of the
functions are relatively simple to use (such as a customized list
of fields to display) and some require a little more study. The
more complex functions are carefully explained under the BROWSE
topic in the Zephyr HELP file. How to access this information is
covered in the next section. Choose the BROWSE FORMAT option on
the INPUT menu and the following window displays.
Here you can enter any combination of BROWSE commands. To
specify a particular list of fields to display, simply enter the
word "FIELDS" followed by the field names of the fields to display.
Separate the field names with commas. For example, try FIELDS
Lastname, Phone, Comments and press <CTRL-ENTER>. Then, choose the
BROWSE RECORDS option again and examine the result.
Zephyr HELP System
Zephyr has over a megabyte of HELP waiting at your fingertips.
In addition to coverage of basic information relating to use of
Zephyr, the HELP system also includes documentation from Fox
Software on virtually all of the commands in the FoxPro programming
language. This documentation is included with permission from Fox
Software. It may not be used for any purpose other than in con-
junction with running the Zephyr program.
To execute Zephyr's context-sensitive HELP, press the <F1>
function key at any time. The HELP system will appear in its own
window as shown below. You may either use the cursor keys to move
through the topics or type the first letter of the topic with which
you want help. Then scroll to the exact command desired. When the
desired topic is highlighted, press <ENTER> to display the text.
Use the cursor keys to move through the text. Then type T to
redisplay the topics menu, or press <ESC> to exit from help system.
Zephyr User's Guide Page 11
Changing Lead Indexes
As mentioned previously, there are many occasions when you may
wish to access your data bases in a different order. Changing Lead
Indexes is Zephyr's way of allowing you to shift gears from one
index to another. From the INPUT menu, choose the INDEX SETTING
option. Zephyr will display a window with all current indexes in
use with the primary data base.
Use the cursor keys to highlight the desired index and press
<ENTER> to make it the new lead index. Until changed again,
retrieval and sorting will be done in the order of the new lead
index. Note that all indexes are kept current as records are added
or changed in the data base so long as the indexes are open and in
use. If the indexes appear in the list above, they are open and in
use.
Notice in the listing of indexes that the first choice always
is * NATURAL ORDER *. Selecting this option means records will be
displayed and sorted in the order in which they were physically
entered into the data base. All other indexes still are maintained
as explained above. This might be desirable for certain reports in
which you want to list information in the order in which it was
entered.
Zephyr FILE Functions
Let's look briefly at Zephyr's tools for selecting, opening,
and closing data bases and indexes. All of these functions are
housed under the FILE menu option. Use the cursor keys to move and
display that option.
Before using any data base, it first must be opened. Whenever
you create a new file or index, it is automatically opened. Zephyr
also remembers the files and indexes which were in use immediately
before you last exited the program. In all other cases, you must
first open a data base or index before using it.
Since Zephyr allows you to have up to 25 data bases and 25
indexes open at the same time, there necessarily must be a way to
select the primary file and index to use. Finally, Zephyr permits
you to close either individual files and indexes or all files and
indexes. Closing a file closes its indexes.
All of the above functions are supported on the FILE pull-down
menu. Simply highlight the desired option and press <ENTER>. An
appropriate window will open in which you may choose the desired
file. Press <ENTER> to execute your choice. The Zephyr status
line always displays the primary data base file in use.
Zephyr User's Guide Page 12
Creating Zephyr OUTPUT
The power of Zephyr is its ability to permit non-programmers
to design virtually any imaginable type of output document. These
range from simple lists of columnar data from a data base, to
multi-faceted reports and label template files, to state-of-the-art
form letters. Say goodbye forever to importing and exporting data
just to generate a form letter. Zephyr includes what Data Based
Advisor magazine called "one of the smartest form letter functions
around ... the only one you'll ever need." The next sections walk
you through building simple, but effective, examples of each output
variety supported. However, to get the most out of Zephyr reports
and labels, Edward Jones' FoxPro Made Easy is a must here.
With the exception of lists, all other Zephyr output is
generated by "pouring" data from up to 25 data bases through a
template. A template is a file of instructions which tells Zephyr
how to format the output. It does not tell Zephyr which records to
display or print. That is done with a filter.
Before you can generate anything other than a list, you must
first create the template file. Separate editors are included with
Zephyr to permit the creation and revision of reports, labels, and
form letters. These all are accessed from the BUILD pull-down
menu. There is no limit (other than the size of your hard disk) to
the number of templates which can be created.
If you are familiar with other dBASE compatible products, then
you are in for a pleasant surprise. The new FoxPro data base
engine has scrapped the familiar (but lousy) dBASE III report and
label templates in favor of a much more flexible and powerful off-
spring. As with anything new, the banded report writer in parti-
cular takes some practice to become an expert. The payoff is much
enhanced reports which were never before possible.
Zephyr REPORTS
To access the Zephyr report writer, choose the REPORT option
from the BUILD pull-down menu. Zephyr will display the NEW/OLD
window allowing you to select whether to build a new report or
revise an old one. Since we are just starting, choose the NEW
option and press <ENTER>. The file selection window will appear.
Name the report SAMPLE. Press <CTRL-ENTER>. The report writer
window will display as shown below after pressing <ALT-O>.
Notice that the rows of the report are divided into bands for
page heading, detail, and page footing. Accessing the FoxPro
report pull-down menu by pressing <ALT-O> enables you to add
additional bands for titles, summaries and data groupings, specify
Zephyr User's Guide Page 13
report layout options, preview your report, add and remove bands
from the report, and toggle between text, field, and box modes in
designing report items. If all this sounds Greek to you and you're
not from Greece, we will clear the fog on the next page.
Detail bands are used to specify the data which will comprise
your report. This typically consists of field names but may also
include text and/or boxes. In addition, any legal FoxPro expres-
sion (such as a date computation or a calculated value from several
fields) may be included in a detail band. Each band represents a
row of your report. If you need more rows than are displayed,
press <CTRL-N>. To remove a band, press <CTRL-M>. Detail bands
always execute once for each record.
PgHead and PgFoot bands are rows of a report which will only
print once per page (at the top and bottom of the page). While
these bands generally contain text (such as a heading or a page
number), they also may contain field data or FoxPro expressions.
They execute once per page.
Title and Summary bands contain information which should only
appear at the beginning or end of a report, respectively. Group
bands, as the name implies, are bands which permit the grouping of
information in a report. These usually consist of a group heading
and perhaps summary data about the group (such as a count or a sub-
total). Typically it is used to divide a report into parts (such
as people from each different state) rather than running separate
reports for each state.
The Page Layout option is used to set page length and margin
widths to accommodate different types of reporting requirements.
Those using laser printers may need to alter the page length
setting from 60 to approximately 56 to avoid blank pages between
actual pages of a report. Foreign users also will need to experi-
ment a little bit to accommodate foreign paper sizes.
The Page Preview option provides a convenient means of check-
ing your work without leaving the report writer. It will actually
display how your report will look with data from your current data
base. You then can make any desired changes.
Now let's create our sample report. Here's how it should
look.
First, add a Title Band by accessing the FoxPro report menu
<ALT-O>, highlighting the Title/Summary option, and pressing
<ENTER>. Use the <TAB> key to move to the title option in the
dialog window. Press <ENTER> to mark this choice. Then <TAB> to
the OK option and press <ENTER>. The title band will be inserted
at the top of your report worksheet. Use the right cursor key to
move to the center of the title band and type Sample Zephyr Report.
Zephyr User's Guide Page 14
Press <ENTER> to complete the entry. If it is not centered, press
<SPACE> while positioned in the text you typed. Once highlighted,
use the cursor keys to move the text to the center. Press ENTER.
Now let's create the Page Heading. In the sample, we want the
page number to display on the left margin and today's date to
display on the right margin. This requires our use of two FoxPro
functions. DATE() is the FoxPro function used to return today's
date while _PAGENO will return the current report page number.
Since we want the word `Page' to actually appear in the
heading, we need to type some literal text into the PgHead band.
Using the cursor keys, move to far left of first PgHead Band. Type
Page and press <ENTER>.
Now move over a space with the cursor keys and press <CTRL-F>
to bring up the field dialog window. Use the <TAB> key to move to
the blank field beside the < Expr... >. Type in _PAGENO and press
<CTRL-ENTER>. This will insert the page number variable at the
designated spot in the band.
Using the cursor keys, move to within 8 spaces of the right
margin on the same band. Repeat the steps above used to insert the
page number, except type the word DATE() rather than _PAGENO this
time. This will insert today's date. Check your work now by
pressing <CTRL-I> for a preview report. Type D when done. If you
made a mistake, move the cursor to the item which is incorrect,
then press <SPACE BAR> to highlight it, then press <DEL> to delete
it. Then try again!
Now move to the first Detail Band. Let's specify the fields
we want to use in the report. The same steps can be used for
fields as were used above for the FoxPro variables, so we won't
repeat them. There is an alternative method which you may prefer
if you consider yourself a novice. Press <CTRL-F> to bring up the
field dialog window. Press <ENTER> while positioned in < Expr.. >.
When the field selection window appears, press <SHIFT-TAB> to move
to the field list. Highlight the desired field Firstmi. Press
<ENTER> <CTRL-ENTER> <CTRL-ENTER>. Use cursor to move over a space
and repeat for LASTNAME and BIRTHDAY.
I added a monkey wrench just to be sure you're not sleeping.
We don't have an AGE field in our data base, but Zephyr can compute
it anyway. Follow the steps which were used above in entering the
_PAGENO expression, except enter the following expression: (DATE()-
BIRTHDAY)/365. This tells Zephyr to subtract birthdate from
today's date and divide the result by 365 days.
Now for the finishing touches. Move to the left margin of the
third PgHead Band and type the headings which should appear over
the fields: First Name, Last Name, Birthday, and Age. Press
Zephyr User's Guide Page 15
<ENTER> when you are finished. Then move to the next band and type
a row of hyphens to simulate an underscore. Press <ENTER> when you
are finished. To preview your report, press <CTRL-I>. Your
results should look like what appears below. Press D to exit
Preview.
If everything looks correct, you are ready to save your
report. If not, revise the necessary entries as explained previ-
ously.
To save the SAMPLE report template, press <CTRL-W>.
Zephyr LABELS
To access the Zephyr label editor, choose the LABEL option
from the BUILD pull-down menu. Zephyr will display the NEW/OLD
window. Select whether to build a new label template or revise an
old one. Since we are just starting, choose the NEW option and
press <ENTER>. The file selection window will appear. Name the
template SAMPLE. Press <CTRL-ENTER>. The label editor will display.
Press <ALT-L>.
There are six settings which control the formatting of labels.
1. Left Margin
2. Label Width
3. Label Height
4. Number of Labels Across
5. Spaces Between Labels
6. Lines Between Labels
Many of the more popular label settings already have been
defined and can be accessed by pressing <CTRL-L>. Highlight the
desired format and press the <ENTER> key. In the alternative, you
may <TAB> to the various setting and set them as desired. The
label display will adjust accordingly to provide a graphic repre-
sentation of your labels.
The other step in creating a label template is to identify the
fields of information which should be printed. Using our SAMPLE
data base, we can create simple mailing labels by entering the
field names as shown below. Note that multiple fields can be
included on a single line of the mailing label by separating the
field names with a comma. This will automatically trim trailing
spaces from the fields and add a space between each two fields.
Once you have entered the data shown above, press <CTRL-I> to
preview the way your labels will actually look when printed. To
save the label template, press <CTRL-W>. Label templates can be
revised in the same way as reports.
Zephyr User's Guide Page 16
Zephyr FORM LETTERS
Zephyr form letters are created using the FORM LETTER option
on the BUILD pull-down menu. Zephyr will display the NEW/OLD
window. Select whether to build a new form letter or revise an old
one. Choose the NEW option and press <ENTER>. The file selection
window will appear. Name the form letter SAMPLE. Press <CTRL-EN-
TER>. The form letter editor will display with the name of your
form letter template centered above the editor. Note: the file
extension of .TXT is used unless you include a file extension when
you specify the name of the form letter.
Form letters consist of boilerplate text and field data
expressions which tell Zephyr to extract pieces of data from your
data bases. These expressions may be as simple as a field name, or
they may be quite complex. The more complex expressions actually
instruct Zephyr to evaluate conditions and "jump" to a particular
place in the form letter depending upon results of the evaluation.
If you wish to extract data from a field in the primary data
base, position to the place in the form letter where the data
should be inserted. Then press <F10> to pop up the field list.
Use the cursor keys to highlight the desired field, and press
<ENTER>. The field data expression for that field will be inserted
in your form letter. Notice that simple field data expressions
consist of the field name surrounded by pairs of //'s. When the
form letter is later executed from the OUTPUT menu, the field
contents will be substituted for the field data expressions.
In the example on the preceding page, you will notice the
expression //=CDOW(Birthday)//. This tells Zephyr to print the day
of the week for the particular birthday field in character form.
The result would be one of the days of the week: Sunday through
Saturday. The FoxPro language includes hundreds of functions, all
of which are documented in the Zephyr HELP file. Notice that a
function consists of a command (CDOW) plus one or more modifiers
which are surrounded by parentheses. The equals sign (=) tells
Zephyr you are taking control and wish to enter a programming
expression. These expressions must be character expressions.
One of the more powerful functions in the dBASE language is
the IMMEDIATE IF function. Its syntax is as follows:
IIF(condition,IFtrue,IFfalse). The condition is any dBASE expres-
sion which evaluates to a logical true or false. The IFtrue
expression must be a character expression in Zephyr form letters.
It tells Zephyr what to do if the logical expression is true. The
IFfalse expression also must be a character expression in Zephyr
form letters. It tells Zephyr what to do if the logical expression
evaluates to false. For example, if you had a MARRIED field and
you wished to print "HITCHED" in the form letter if the person were
Zephyr User's Guide Page 17
married or "AVAILABLE" if the person were not married, the Zephyr
form letter expression would be IIF(MARRIED,"HITCHED","AVAILABLE").
See the FoxPro Made Easy reference book for other examples.
Advanced Expressions
Zephyr form letters also may contain logical expressions which
are used to determine whether to jump to a particular paragraph in
the form letter. The syntax for the conditional GOTO expression is
//}LABEL,condition// where condition is the logical expression
(explained below) and LABEL is any desired label name to which
processing jumps when the logical condition evaluates to true. The
syntax for the LABEL expression is //{LABEL}//.
LASTNAME=`Smith' is a logical expression which compares a
character field to a text expression. When `Smith is in the
LASTNAME field' then the expression is TRUE. FILINGDT=DATE() is an
example of structuring a comparison between a FILINGDT field and
today's date. If true, the form letter jumps to LABEL.
The expressions actually would appear in your form letter as
shown below. //}PARA1,Lastname=`Smith'// and
//}PARA2,Filingdt=DATE()//. The label expressions would be
//{PARA1}// and //{PARA2}//.
On occasion, you may wish to store the actual margins for your
form letter in the form letter itself. The syntax is
//@LMargin,RMargin//. If you wished to set the left and right
margins to 10 and 70, use //@10,70//.
Zephyr form letters may also manipulate other indexed data
bases and extract information from them as well. The syntax for
extracting field data from another file is //FILENAME->FIELDNAME//.
To execute a search of any data base, enter a seek command:
//>file#,KEY// where file# is the number of the work area for the
desired file and KEY is an expression matching the field type of
the lead index for the desired file, e.g. //>3,`Jones'// assuming a
LastName lead index.
Zephyr Quick Lists
There may be occasions when you simply wish to extract a quick
list of information in columns which correspond to several fields
from a particular data base. First, select the desired file as the
primary data base as explained above. Then choose QUICK LIST from
the OUTPUT menu.
Zephyr User's Guide Page 18
The field selection window will display. Highlight each field
you wish to list in the order you want them listed. Press <ENTER>
after each selection. A window will display your choices as you
make them. When finished choosing fields, press <ESC> to continue.
The filter selection window will display. This provides an
opportunity to narrow down the group of records to be displayed or
printed. Refer to the FILTER section of this User's Guide for more
information. To delete an existing filter, press <DEL> when the
window first displays then <CTRL-ENTER>. To proceed without
entering a filter, press <ESC>. Or, you may enter the filter
expression. Then press <CTRL-ENTER> to proceed.
The index selection window will display. Highlight the
desired lead index (i.e. sort order) for your listing and press
<ENTER>. Or, to leave the existing lead index, just press <ESC>.
You will find quick lists are useful for extracting data to
obtain a quick, thumbnail sketch of your data. They also are
valuable in honing your Boolean logic (record selection) skills.
If you make a mistake, don't give up! Try again. No one ever
learned data base management in a day.
Zephyr Filters
One of the most critical data base management functions is the
ability to narrow down your data base to a specific group of
records. In the dBASE world, these selection criteria are known as
filters. In Zephyr, a filter controls which SUBSET of records can
be accessed in both INPUT and OUTPUT modes. If no filter is
active, all records are accessible including those marked for
deletion. The filter selection window can be accessed from both
the INPUT and OUTPUT menus. And it also appears as part of the
output process in generating any report, label, form letter, or
list.
Most filters consist of a fieldname, a Boolean operator, and
an expression of the same type as the fieldname. Using <SHIFT-TAB>
within the filter selection window moves you to the field list.
Highlight the desired field to be used to narrow down your data to
a specific group of records and press <ENTER>. Then enter a
Boolean operator: = (equals), <> (not equals), < (less than), >
(greater than), <= (at most), >= (at least). Then specify the
value which must be TRUE for a record to be selected. Press <CTRL-
ENTER> to proceed. If your filter does not evaluate to a logical
expression, Zephyr will display an error and let you try again.
Otherwise, records not matching the filter will disappear from view
and use until you change or delete the filter.
Zephyr User's Guide Page 19
To assure that an expression matches the type of the fieldname
to which it refers, follow these simple rules. If the field type
is character, then the expression should be surrounded in quotes
unless it is the name of another field. In the latter case, the
other field either must also be a character field or it must be
converted to a character field using the conversion functions:
DTOC() for dates or STR() for numeric fields. These functions are
covered in detail in the HELP file which is accessed by pressing
<F1>. For example, LASTNAME="Jones" is a valid filter using a
character field.
If the field type is numeric, then the value should be entered
literally without quotation marks. For example, FILINGFEE=50 is a
valid filter using a numeric field.
If the field type is date, then the value must be entered by
surrounding the date text with braces. For example,
FILINGDT={10/10/89} is a valid filter. An alternative syntax is
FILINGDT=CTOD("10/10/89"). The latter example uses the character-
to-date function to convert a character expression (surrounded in
quotes) to a date expression. Either method will work.
You may join more than one expression to another using the
.OR. and .AND. operators. Lastname="Jones" .OR. Lastname="Smith"
would filter out all records in the data base except those whose
last name was Jones or Smith. Using .OR. means if either condition
is TRUE, the record will appear while using .AND. means all the
conditions joined by .AND. must be TRUE for the record to appear.
Another very powerful Boolean operator is supported. $ means
"is contained in" to Zephyr. Thus, we could say "a"$LASTNAME which
would find all records with a last name containing the lower case
letter "a." This operator is particularly powerful in Zephyr since
it allows you to search for a particular word or phrase in memo
fields as well as character fields. To negate a particular expres-
sion, use the .NOT. connector. For example, .NOT. "a"$LASTNAME
would find all records in which the last name field did not contain
a lower case "a."
Many volumes could be written on filters. The best advice is
to try a few and examine the group of records produced with the
filter active. Then you can try another twist to the filter and
see what it accomplishes. FoxPro Made Easy also will prove to be
an invaluable resource until you are comfortable designing filters
on your own.
Zephyr User's Guide Page 20
Zephyr Print Options
Zephyr provides a simple method for choosing where to direct
the output from your reports, labels, form letters, and quick
lists. You may either display, print to a printer, or write to a
file. These options all are provided on the OUTPUT menu.
Zephyr's default is display only. To turn on printer output,
highlight the PRINTER OUTPUT OFF option, and press <ENTER>. This
toggles the printed output option to ON. Repeating the process
toggles it back OFF.
If you prefer to send output to a file rather than the print-
er, then highlight the FILE OUTPUT OFF option, and press <ENTER>.
You then will be prompted to name the output file. Type a legal
DOS file name and press <ENTER>. To toggle file output OFF again,
highlight the option and press <ENTER> again.
In a nutshell, that's the basics of Zephyr. Once you have
mastered the concepts in this chapter, you're ready to work on
becoming a data base guru. The next chapter guides you through
many of Zephyr's more sophisticated bells & whistles. If this is
your first data base experience, call it a day here and get some
rest.
Zephyr User's Guide Page 21
ADVANCED FEATURES
File Management
Zephyr supports manipulation of up to 25 data bases simulta-
neously. For each data base, you can open one or more indexes so
long as the total number of open indexes does not exceed 25. With
the exception of creating new data bases and indexes, all of the
file opening, closing, and selecting options are located on the
FILE pull-down menu shown below.
Before a file can be used, it first must be opened. Creating
a new file automatically opens it. In addition, the default
BROWSE, EDIT, and ADD options work only on the primary data base.
The SELECT FILE option allows you to choose the primary data base
with which to work. The SELECT INDEX option lets you change the
lead index, if any. The latter two options also are available on
the INPUT pull-down menu.
NOTE: Zephyr always needs one work file. Never open more than
24 data bases simultaneously or unpredictable behavior is likely!
Also make certain that sufficient FILES have been specified in your
CONFIG.SYS file.
Relational Data Bases
In many data base applications, it is more efficient to store
various pieces of information in multiple data bases. For example,
a PTA data base typically would include a file for PARENT informa-
tion and a separate file for CHILD information. By structuring the
files in this way, it would not be necessary to include father,
mother, home address, home phone, and work phone information in
each CHILD record. Instead, a "unique key" field could be added to
both the PARENT and CHILD data bases so that various records in the
two files could be related.
Since home phone numbers typically are unique within a partic-
ular PTA district, this might serve as an ideal key field for both
files. Since dBASE-dialect data bases usually only support "many-
to-one" file relations, we would want the CHILD data base to be our
primary data base, the PARENT data base to be our related data
base, and the PARENT file would be indexed on PHONE to allow the
proper linkage of the two files. Thus, we could create a PARENT
data base that looked something like the following:
Zephyr User's Guide Page 22
Field Field Field Field
Name Type Length Decimals
--------- -------- --------- --------
LASTNAME C 15 0
FATHER C 20 0
MOTHER C 20 0
ADDRESS C 30 0
PHONE C 15 0
The CHILD data base would include entries like those shown
below:
Field Field Field Field
Name Type Length Decimals
--------- -------- --------- --------
CHILD C 20 0
PHONE C 15 0
TEACHER C 20 0
BIRTHDAY D 8 0
LASTNAME C 15 0
Note that both data bases contain a PHONE field and a LASTNAME
field. However, we would not want to link the data bases by last
name since there may be more than one `Smith' in the same PTA. In
addition, with today's nuclear family relationships, a child's last
name is not necessarily the same as that of the couple with whom
the child resides.
Files are related to one another by selecting RELATION on the
BUILD menu. Before establishing the relation, create both of the
above data bases, then SELECT the PARENT data base and build a new
index on the PHONE field. Then SELECT the CHILD data base as the
primary data base. Choose the RELATION option, then highlight the
PHONE field when prompted. To refer to a related field, use the
following syntax: FILENAME->FIELDNAME.
Zephyr User's Guide Page 23
Importing & Exporting Data
Zephyr provides a rich variety of tools to assist in importing
and exporting data. The file types supported are shown in the file
types selection window whenever you choose the IMPORT or EXPORT
options from the FILE pull-down menu.
To import a file, first create a Zephyr data base which
matches the structure of the data in the external file. Select this
file as your primary data base. Then choose IMPORT, highlight the
file type of the external file, and press <ENTER>. The file
selection window will display. Highlight the external file name and
press <ENTER>. Zephyr will do the rest.
To export file data, first select the Zephyr data base. Use
the FILTER option to define the group of records to be exported.
Then choose EXPORT, highlight the file type of the external file to
create, and press <ENTER>. The file naming window will display.
Enter a name for the external file to be created and press <ENTER>.
Zephyr will do the rest.
File Maintenance Utilities
Zephyr provides the necessary tools to rebuild your data bases
and indexes in the unlikely event of an electrical problem. As
with all electronic data bases, Zephyr is absolutely dependent upon
a reliable source of electricity. Do not connect your computer on
the same circuit with other electrical hogs such as toasters,
coffee pots, microwave ovens, and air conditioners. Do not use
your computer during electrical storms. If your lights flicker
from time to time, this is a tell-tale sign of a power problem.
Make certain your computer is on a circuit with a reliable source
of power.
In the event you experience power problems or if your computer
locks up in the middle of using Zephyr, usually all is not lost.
The word "usually" is used advisedly. Don't substitute luck for
frequent backups, or someday your computer most assuredly will get
the last laugh! If you have trouble finding records, try one or
both of the following options.
The REINDEX option on the FILE menu rebuilds all of the
currently active indexes for the primary data base. It does not
rebuild indexes of any other open data base. Thus, you first
should select the desired primary data base. Then execute the
REINDEX option.
Zephyr User's Guide Page 24
The PACK option on the FILE menu rebuilds the primary data
base and all associated indexes. It also permanently deletes any
records marked for deletion in the primary data base. This option
typically takes longer to execute because it rebuilds the data base
and its indexes.
Before using either option, make certain that you have ade-
quate disk space to house a duplicate of all your indexes and, for
the PACK option, also your data base.
Add/Edit Format Files
Zephyr supports customized data entry screens for use in ADD
and EDIT input modes. Each screen, known in dBASE lingo as a
format file, can be a single screen in size or many, many screens.
In addition, Zephyr supports an unlimited number of data entry
screens per data base. Designing these screens is somewhat akin to
programming since you typically must define where the screens
prompts should be displayed and where the user should enter data.
In the data base trade, these are known as says and gets. As their
names imply, a say command tells Zephyr to just say something while
a get tells Zephyr to get some information from the typist.
If all this sounds boring, then try Zephyr's ADD/EDIT FORMAT
option on the BUILD menu. It automatically builds a very pretty
data entry screen for you to match your current data base. Select
the desired primary data base, then choose the ADD/EDIT FORMAT
option. Your computer will hum for a few moments, and then Zephyr
will display the finished product in Zephyr's editor window. The
file name of this data entry screen will be the same as your data
base file with a file extension of .FMT. If you are satisfied with
Zephyr's work or if you don't know what you are doing, simply press
<ESC> to leave the file as it displays.
After building a format file as outlined above, it automati-
cally will be used whenever you choose the ADD or EDIT options on
the INPUT menu. If you decide you would prefer not to use the
custom screen, simply delete the format file from disk. This can be
done from the BUILD PROGRAM option within Zephyr. Type DELETE
filename.FMT where filename is the same as the name of your primary
data base.
If you decide you wish to design format files on your own, we
recommend you consider our MenuMaker software package. It lets you
draw a data entry screen as it should appear in your application.
It then writes the necessary code to generate the data entry screen
in Zephyr.
Format files can have any file name you desire although we
recommend you maintain some relationship between the data base file
Zephyr User's Guide Page 25
names and their associated format files. Otherwise, you may
confuse which format files go with which data bases. If you
attempt to use a format file with the wrong data base, error
messages almost certainly will begin appearing.
For additional information on building format files, review
the @ SAY command in Zephyr's HELP file. FoxPro Made Easy also
devotes considerable attention to this topic.
Selecting Add/Edit Format
Once you have built multiple format files, you need a means of
choosing which one you want to use. On the INPUT pull-down menu,
there is an ADD/EDIT FORMAT option. When this option is selected,
Zephyr will display a file selection window with the file names of
all format files in the default directory. Simply highlight the
desired format file and press <ENTER>. That format file will
always be used with the current data base until another format file
is chosen.
Do not attempt to delete a format file from your hard disk
after you have selected it as the lead format file. In the unlike-
ly event that you forget this advice, you may also need to delete
FILENAME.MEM where FILENAME corresponds to the name of the primary
data base file. This file stores the currently active format file
as well as your browse settings. Once deleted, these obviously
would have to be reentered.
The <PgDn> and <PgUp> keys are used to maneuver through data
entry screens. When you reach the first screen or the last, Zephyr
will automatically move you to the next closest record in your data
base.
Zephyr Command Mode
For those wanting to experiment with programming, Zephyr
provides access to command mode. In this mode, standard FoxPro
commands can be entered and executed just as if the user were
writing a FoxPro program. A couple words of warning are in order.
Command mode provides virtually complete access to the FoxPro data
base engine. This means you can easily destroy Zephyr's working
environment. It is your responsibility to assure that the entire
FoxPro environment looks the same when you leave command mode as
when you entered. In particular, do not mess with Zephyr's win-
dows! Create your own if desired. Otherwise, the results of
executing Zephyr menu options may be totally unreliable.
Zephyr User's Guide Page 26
Part of Zephyr's speed is accomplished by keeping all data
bases and indexes open while Zephyr is active. Make certain that
you leave data bases as you found them. Opening or closing files
in command mode without restoring them to the state in which they
were found will almost certainly confuse Zephyr since its internal
house-keeping routines are not active while command mode is opera-
tional.
To access command mode, choose the BUILD menu and press <PgDn>
to highlight the PROGRAM option. Then press <ENTER>. The command
mode prompt will display together with a window to execute your
choices.
To exit from command mode and return to the Zephyr main menu,
press <ESC> at any time.
We do not provide technical support for command mode; however,
the FoxPro Made Easy reference manual will supply invaluable help.
Configuration Settings
Zephyr has a number of tailorable features. These can be
configured to meet your individual needs. These features also make
Zephyr more useful for our overseas friends. By way of introduc-
tion, it should be noted that Zephyr always `remembers' what you
were doing immediately before you exited Zephyr. Thus, whatever
configuration settings are changed before exiting will be restored
the next time you use Zephyr. NEVER turn off your computer without
first exiting from Zephyr gracefully!
In addition to the default configuration which is stored
automatically in a file named ZEPHYR.VUE, you also can create
personalized configuration files. This provides the ability to
work with an unlimited combination of files and a variety of
different configuration options. These options could be tailored
to various individual's needs or to particular applications.
Before saving a new configuration, open all desired data bases
and indexes using the FILE pull-down menu options. Set up any
desired relations as explained above. Also choose the primary data
base as well as the lead indexes for each open data base. And set
any desired FILTERs.
Then select CONFIG DEFAULTS to view the listing of tailorable
settings in Zephyr. Most of the configurable options are toggled
from one mode to another simply by pressing <ENTER>. A few of the
options provide either a menu of choices or a list which is rotated
by pressing the <SPACE BAR>. Choose the desired option and press
<ENTER>. In dBASE parlance, these options are SET commands. Press
Zephyr User's Guide Page 27
<F1> for more detailed help on the various configuration options.
If you accidentally reconfigure your system in an unworkable way,
just delete ZEPHYR.VUE.
European Configuration
For our foreign users, Zephyr provides a complete set of
options to allow you to do things your way. These DEFAULT options
include the following:
DATE To set the date format for virtually any country
CURRENCY To set the currency symbol and Left/Right position
POINT To set the decimal point character
SEPARATOR To set the thousands separator in numbers
MARK To set the separator in dates
TIME To set 12 or 24 hour time format
All of these options are stored as part of the default config-
uration file.
In addition, for European languages which use characters with
diacritical marks, the FoxPro data base engine includes support for
indexing these additional characters correctly. To index any
character field which includes characters with diacritical marks,
create a COMPLEX index and use the format shown below. Let's
assume the field to be indexed is the LASTNAME field in your data
base.
SYS(15,EUROPEAN,LASTNAME)
Zephyr Edit Checks
Zephyr includes one of the most powerful error detection
systems available in a menu-driven data base management system.
Zephyr edit checks enable you to build a data base of "rules" which
must be passed before data can be added to or changed in any Zephyr
data base.
Zephyr User's Guide Page 28
Zephyr edit checks execute when all of the following are met:
1. The primary data file name must
be less than 8 characters.
2. A custom data entry screen
(Add/Edit Format) must exist.
3. An edit checks data base must
exist with at least one record.
4. The edit checks system does not
operate in BROWSE mode.
5. The edit checks file is not open
while primary file is in use.
The edit checks data base is a standard Zephyr data base file.
Its file name must be the same as the primary data base with the
added number "1" at the end of the file name. For example, if the
primary data base is SAMPLE, then the corresponding edit checks
file would be named SAMPLE1. The file must have at least two
fields: the first specifies error conditions and the second, error
messages. The field names do not matter so long as they are legal
Zephyr field names.
Zephyr will build the edit checks file for you automatically.
First, select the primary data base. Then choose EDIT CHECKS on the
BUILD menu. If all the conditions specified on the previous page
are met, Zephyr will create the necessary edit checks file and
place you in append mode. You then can add records to the file
which specify when an error condition exists. A few examples may
clear the fog.
Suppose the primary data base contains a LASTNAME field. We
want to make certain that entries are made in these fields. In
other words, we want an error message to display when the LASTNAME
field is left blank. In the first field ERRORWHEN, define the
error condition as follows:
EMPTY(LASTNAME)
EMPTY() is a FoxPro function which returns True if the field
identified inside the parentheses is empty. In the second field
ERRORMSG, we would enter an error message to be displayed to the
end-user when the error exists:
The LASTNAME field cannot be blank.
Zephyr User's Guide Page 29
Press <ENTER> to add another record to the file, or press
<ESC> when finished. This file will be closed automatically when
you exit from EDIT CHECKS.
Special note: Since the edit checks files are standard data
bases, they can be opened and manipulated just like any other file.
Remember to close them before switching to or using the primary
data base.
Zephyr Calculated Fields
The edit checks table also may be used to provide calculated
fields support. This enables a developer to calculate values for
particular fields without user input. As with edit checks, these
calculated fields only function in EDIT and ADD modes.
To create a calculated field, specify a standard dBASE replace
command in the ErrorWhen field. The syntax is as follows:
REPLACE FIELDNAME WITH VALUE
Remember to surround the value with quotation marks if the
field is a character field. To replace a date field, the value
must equate to a date or may be converted using the CTOD() func-
tion. For example, to replace a date field named FILINGDT with May
2, 1989, the expression would be --
REPLACE FILINGDT WITH CTOD("05/02/89")
If desired, you may specify the logical condition when the
replacement will take place in the ErrorMsg field. If this field
is left blank, the replacement will be executed whenever a record
is saved. In the example above, if you only wished to execute the
replacement when the FILINGDT field was left blank, the syntax
would be EMPTY(FILINGDT).
For more advanced users, note that the REPLACE command can be
used to calculate fields in related data bases as well as the
primary data base. The only syntax change would be to precede the
fieldname with the appropriate file name and separator, e.g.
FILENAME->fieldname.
Building Pre-Defined Output
Zephyr provides a handy utility for designing a table of
output entries which you use often. For example, there may be a
series of monthly reports which you want to execute once a month
Zephyr User's Guide Page 30
without having to remember which reports to run and which files and
filters to use. Zephyr handles this painlessly by creating a data
base (ZEPHYR.DBF) to store an unlimited number of predefined output
templates.
To create entries in the predefined output file, follow these
simple steps. First, create the necessary data bases, reports,
labels, and form letters to support the output you wish to gener-
ate. Then create a view file (CONFIG SAVE) after selecting the
files, indexes, relations, and filters which will apply with this
application. Then choose BUILD PRE-DEFINED to add an entry to the
predefined output file, ZEPHYR.DBF.
Entries in the predefined output file consist of a name for
the particular output. It will appear on the pop-up menu when
OUTPUT PRE-DEFINED is chosen. Enter any desired description in the
CHOICE field.
In the VIEW field, enter the name of the Zephyr view file
which contains the file, index, filter, and relation settings
described above. If this field is left blank, the current default
settings will be used. If ZEPHYR is inserted in the VIEW field,
the default settings when you last exited Zephyr will be used. If
an entry is specified, Zephyr will automatically load this view
before executing the commands entered below. When the commands
finish executing, Zephyr will restore the environment as it existed
when the pre-defined output selection was made.
The four other fields COMMAND1 through COMMAND4 permit you to
enter an unlimited variety of FoxPro commands. Each of these
fields is 250 characters in length and can stored multiple com-
mands. Simply separate each command from the next with the verti-
cal bar character (|). These commands could be used to create
separate windows, prompt the user for input, or run reports,
labels, form letters, and lists. Your imagination is about the
only limitation with Zephyr pre-formatted output. Press F1 for
help with various FoxPro command syntax or consult FoxPro Made
Easy.
Press <CTRL-W> to save your entry. If you previously have
made entries which you would like to modify, use <PgUp> to scroll
through the records previously entered.
If you wish to exit from the pre-defined output file without
making an entry, simply press <ESC>.
Note: ZEPHYR.DBF is a standard FoxPro data base which can be
opened like any other file. Close it before using Pre-Defined
Output!
Zephyr User's Guide Page 31
OTHER PRODUCT OFFERINGS
MenuMaker
MenuMaker is a data entry screen generator for use with
WAMPUM, dLITE, and Zephyr. The developer draws the data entry
screen as it should appear to end users. Then MenuMaker writes the
necessary code to support WAMPUM, dLITE, or Zephyr applications.
Requirements: 320K of RAM, DOS 2.1 or higher, and dual floppies or
a hard disk.
Badge-O-Magic
Badge-O-Magic is a dBASE-compatible, badge and nametag genera-
tor designed for use with an IBM PC-compatible computer and an HP
LaserJet+, HP LaserJet II (all models), HP LaserJet III, or 100%
compatible. Using any dBASE III or IV data base (one is included
with the software), Badge-O-Magic generates one to four line badges
with an optional header and footer line. Badges can be printed
using type styles of 20 to 40 points.
CREDITS
Our special tip of the hat to Fox Software for producing truly
the finest data base engine in the world! When you've mastered
Zephyr, you need to give serious consideration to purchasing
FoxPro. Zephyr itself stands as a tribute to what can be done
using the FoxPro programming language. Not only is the data base
software the best in the business, but the people who produce it
and support it are by far the most knowledgeable and most helpful
in the entire industry. Reports of even the slightest bug always
have been met with pleasant appreciation and a prompt fix, some-
times overnight.
Trademarks
This documentation references a number of products and compa-
nies whose names are trademarks or registered trademarks of their
respective owners or companies. The references in this documenta-
tion are solely for purposes of identification. No claim is made
to ownership of anyone else's magic words. A partial list of the
trademarks and their owners follows:
Zephyr, WAMPUM, dLITE Ward Mundy Software
Fox, FoxBASE+, FoxPro Fox Software
dBASE, dBASE anything Ashton-Tate
Clipper Nantucket Corp.
IBM, IBM PC International Business Machines
Zephyr User's Guide Page 32
ZEPHYR 2.0 ORDER & INVOICE
+-------------------------------------------------------------------+
| User Name | |
|----------------|--------------------------------------------------|
| Address1 | |
|----------------|--------------------------------------------------|
| Address2 | |
|----------------|--------------------------------------------------|
| City State ZIP | |
+-------------------------------------------------------------------+
+-------------------------------------------------------------------+
| Quantity | Description |Item Cost| Total |
|----------|--------------------------------------|---------|-------|
| | Zephyr Single-User License with | 50.00| |
| | soft-bound manual & free update | | |
|----------|--------------------------------------|---------|-------|
| | Zephyr Network Add-On Station | 30.00| |
|----------|--------------------------------------|---------|-------|
| | FoxPro Made Easy (U.S.) | 30.00| |
| | FoxPro Made Easy (Foreign) | 50.00| |
|----------|--------------------------------------|---------|-------|
| | WAMPUM Single-User License | 50.00| |
| | Index: ( ) Clipper ( ) dB3+ ( ) Fox | | |
|----------|--------------------------------------|---------|-------|
| | WAMPUM Network License | 150.00| |
| | Index: ( ) Clipper ( ) dB3+ ( ) Fox | | |
|----------|--------------------------------------|---------|-------|
| | WAMPUM Soft-Bound User Guide | 20.00| |
|----------|--------------------------------------|---------|-------|
| | dLITE Single-User Lic & manual | 30.00| |
|----------|--------------------------------------|---------|-------|
| | MenuMaker Screen Generator | 20.00| |
|----------|--------------------------------------|---------|-------|
| | Badge-O-Magic Single-User | 50.00| |
|----------|--------------------------------------|---------|-------|
| | Badge-O-Magic Deluxe Version | 99.00| |
|----------|--------------------------------------|---------|-------|
| | Shipping and Handling per order | 5.00 U.S| |
| | $5 U.S. / $10 Canada & foreign |10.00 for| |
|==========|======================================|=========|=======|
| | GRAND TOTAL w/ SHIPPING |*********| |
+-------------------------------------------------------------------+
Include check or money order in US dollars payable to:
Ward Mundy, 4160 Club Dr, Atlanta, GA 30319 USA.
ZEPHYR 2.0 90-DAY EVALUATION COUPON
+-------------------------------------------------------------------+
| User Name | |
|----------------|--------------------------------------------------|
| Address1 | |
|----------------|--------------------------------------------------|
| Address2 | |
|----------------|--------------------------------------------------|
| City State ZIP | |
+-------------------------------------------------------------------+
MEMO TO: Ward Mundy Software
4160 Club Drive
Atlanta, GA 30319
I already have acquired a copy of the Zephyr ShareWare product.
I want to take you up on your $1 upgrade offer. In exchange for my
dollar (NO CHECKS PLEASE!), I understand you will provide me a 90-
DAY ZEPHYR LICENSE INCLUDING USE OF THE UNRESTRICTED FOXPRO RUN-
TIME SOFTWARE. I agree not to redistribute my copy of ZEPHYR or the
FoxPro run-time which I receive pursuant to this offer. I under-
stand that such distribution would be a violation of U.S. copyright
laws and international treaty provisions. I further agree not to
use the FoxPro run-time acquired pursuant to this offer with any
software product other than Zephyr.
If I continue to use Zephyr after the 90-day evaluation period,
I will register. Otherwise, I will destroy my copy of the Zephyr
software and the accompanying FoxPro run-time.
My signature below and the enclosed $1 confirms my agreement to
the terms specified above.
-------------- ---------------------------------
Date Signature