home *** CD-ROM | disk | FTP | other *** search
/ World of Shareware - Software Farm 2 / wosw_2.zip / wosw_2 / DATABASE / ZEPHYR4B.ZIP / ZEPHYR4.002 / lha / ZEPHYR4 / ZEPHYR.DOC < prev   
Text File  |  1992-12-20  |  97KB  |  1,959 lines

  1.  
  2.  
  3.  
  4.                                  Getting Started
  5.  
  6.  
  7.    Welcome to ZEPHYR!
  8.  
  9.         Whether this is your first experience with a data base management
  10.    system or not, we want it to be a pleasant and memorable one.  You can save
  11.    yourself a good deal of aggravation by spending a few minutes with this
  12.    manual before you turn on your computer. Zephyr was designed to allow even
  13.    novice data base users to create sophisticated, menu-driven data base
  14.    applications in minutes rather than years.  However, to get the most out of
  15.    Zephyr, you need to get acquainted with its tools and functions.  
  16.  
  17.         First, the good news.  Zephyr is a menu-driven, relational data base
  18.    management system for non-programmers!  It uses the fantastic FoxPro data
  19.    base engine from Fox Software.  You will find its performance is second to
  20.    none: retrieval speeds are up to 1,000 times that of dBASE IV.  Yet Zephyr
  21.    retains substantial language and file compatibility with all dBASE dia-
  22.    lects.  It also adds a host of features which simply are not available in
  23.    any other menu-driven data base product.  Here's a partial list: 
  24.  
  25.              Simultaneous access to 25 dBASE-compatible data bases
  26.              Up to 255 separate indexes to speed sorting and file relations
  27.              Display & print .PCX graphics fields using standard data bases
  28.              Load and access Zephyr as a 20K TSR with a single keystroke
  29.              SQL SELECT support speeds queries of relational data bases
  30.              Create pop-up data base lookup tables to speed data entry
  31.              The best windowing and user interface you'll find anywhere
  32.              State-of-the-art reports, labels, form letters, and lists
  33.              One billion records per data base; 256 fields per record
  34.              Unlimited length free-form text fields which are searchable
  35.              Pop-Up Calculator, Calendar, Appointment Scheduler, Puzzle
  36.  
  37.  
  38.    ZEPHYR Main Menu
  39.  
  40.         Zephyr's Main Menu provides a series of Lotus-style menu bars across
  41.    the top row of the screen.  Moving between these menu bars activates a
  42.    series of pull-down menus which provide access to all of Zephyr's main
  43.    functions.  For dBASE 'gurus,' there also is a command mode option activat-
  44.    ed with the BUILD COMMAND choice.  The Main Menu options are as follows:
  45.  
  46.              1.   INPUT
  47.              2.   OUTPUT
  48.              3.   FILE
  49.              4.   EXECUTE
  50.              5.   BUILD
  51.              6.   CONFIG
  52.              7.   QUIT
  53.  
  54.         The following sections of the User's Guide will walk you through the
  55.    various options available on each of these pull-down menus.
  56.  
  57.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.       Page 1
  58.  
  59.  
  60.    System Requirements
  61.  
  62.         Zephyr will run on any DOS-based personal computer with 640K of system
  63.    memory, a hard disk, and DOS 2.1 or higher.  Additional expanded memory can
  64.    double or triple Zephyr's overall performance.  Both monochrome and
  65.    virtually all color cards and monitors are supported.  A mouse is supported
  66.    but not required.  To display .PCX graphics fields within Zephyr requires a
  67.    CGA, EGA, VGA, or Hercules graphics card and monitor.  To print .PCX
  68.    graphics fields requires an HP LaserJet-compatible laser printer.
  69.  
  70.  
  71.    Installing ZEPHYR
  72.  
  73.         Zephyr is distributed in compressed format to conserve disk space and
  74.    better assure the reliability of its system files.  Special thanks for
  75.    LHArc, Yoshi's archiving utility, which is used with permission of the
  76.    author.
  77.  
  78.         To install Zephyr, position to the drive on which you wish to install
  79.    the software. If this is Drive C, type C: <ENTER> at the DOS prompt. Insert
  80.    Zephyr distribution diskette #1 in Drive A and type A:INSTALL <ENTER>. 
  81.    This tells the program to create a \ZEPHYR4 directory on the default drive
  82.    and install Zephyr there.
  83.  
  84.         In 95% of the systems we have tested, Zephyr will run without a hitch
  85.    as installed. To test your luck, move to \ZEPHYR4 directory by typing the
  86.    following: CD \Zephyr4 <ENTER>. Type Zephyr and press <ENTER> to fire up
  87.    the software.  You should see a logo and then the Zephyr Main Menu.  If not
  88.    or if your computer hangs when you attempt to execute an option such as
  89.    BUILD  DATA BASE,  then read the next section.
  90.  
  91.  
  92.    Setting Up Your Computer
  93.  
  94.         The beauty of DOS-based computers is their ability to run a vast
  95.    assortment of DOS-compatible software. This does not mean all DOS computers
  96.    are alike.  There are many different ways to configure your system. Zephyr
  97.    attempts to decode your system configuration; however, there are certain
  98.    configurations which simply cannot be ascertained.  These include systems
  99.    which drive a monochrome display from a color graphics card of some type. 
  100.    Also certain types of gee-whiz memory will throw Zephyr for a loop unless
  101.    you specifically tell Zephyr what's going on.
  102.  
  103.         Zephyr ordinarily does not need a configuration file (CONFIG.FP) to
  104.    load and execute properly.  You will need to create one if situations such
  105.    as those outlined above exist on your computer.  This can be done with any
  106.    editor, or type the following commands at the DOS level in the \ZEPHYR4
  107.    subdirectory to create one.  Which configuration commands you will need to
  108.    insert in the CONFIG.FP file depends upon the types of problems you are
  109.    having.  These are covered in the next sections of the User's Guide.
  110.  
  111.  
  112.  
  113.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.       Page 2
  114.  
  115.  
  116.                             CD \ZEPHYR4 <ENTER>
  117.                             COPY CON CONFIG.FP <ENTER>
  118.  
  119.                             {Type configuration commands here}
  120.  
  121.                             <CTRL-Z> <ENTER>
  122.  
  123.  
  124.    Default Display Type
  125.  
  126.         If the Zephyr command menu or submenus are unreadable, you may want to
  127.    manually choose another display type.  This can be done by adding a line to
  128.    the CONFIG.FP file outlined above.  Typically, this will be necessary where
  129.    you are using a monochrome, plasma, or LCD display with a color graphics
  130.    card of some sort.  When Zephyr identifies a color card, it automatically
  131.    assumes you have a color monitor.  Simply add one of the following lines to
  132.    your CONFIG.FP file to correct the problem.  You may wish to experiment
  133.    with several until you find the best alternative.
  134.  
  135.         COLOR SET=MONOCHROME          COLOR SET=T5200_MONO
  136.         COLOR SET=COMPQ_MONO          COLOR SET=BW
  137.         COLOR SET=TOSH_3200           COLOR SET=BLKWHT
  138.  
  139.         Please note that creation of a CONFIG.FP file tells Zephyr you are
  140.    taking charge.  Because of this, you always will need to add a COLOR SET
  141.    command in the CONFIG.FP file once you create this configuration file.  If
  142.    you have a color monitor which displays perfectly, but you have to create a
  143.    CONFIG.FP file to resolve a memory problem (as explained below), then add
  144.    the following line to your CONFIG.FP file to preserve the proper color
  145.    settings for your display:
  146.  
  147.                             COLOR SET=COLOR
  148.  
  149.  
  150.    Expanded Memory Options
  151.  
  152.         If you have a PC with 640K, skip this section.  If you only have
  153.    extended memory in your system, you may also skip this section.  If you
  154.    have expanded memory and Zephyr hangs when you choose certain options, read
  155.    on.  Expanded memory comes in as many flavors as jelly beans.  Hardware-
  156.    based expanded memory which conforms to the LIM 4.0 standard should cause
  157.    no problems.  Expanded memory which derives its brains from a software
  158.    driver may or may not work depending upon the EMS driver.  
  159.  
  160.         You have several options to try which are listed below in 'most
  161.    benefit' order.  The most beneficial option is EMS=ON which is the default
  162.    with no CONFIG.FP file.  If this doesn't work, try the following in the
  163.    order in which they are listed.  Then try running Zephyr again.
  164.  
  165.                             EMS64=OFF (All EMS used to speed file I/O)
  166.                             EMS=64    (Only first 64K of EMS is used)
  167.                             EMS=OFF   (No EMS memory is used by Zephyr)
  168.  
  169.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.       Page 3
  170.  
  171.  
  172.    Disabling F11 & F12 Keys
  173.  
  174.         Zephyr always tests for the presence of the F11 and F12 function keys
  175.    when it starts.  A few old BIOS chips on computers without F11 and F12
  176.    function keys nevertheless report the presence of these keys.  This will
  177.    cause Zephyr to hang when it loads.  If your system does this, try adding
  178.    the following line to the CONFIG.FP configuration file:
  179.  
  180.                             F11F12=OFF
  181.  
  182.  
  183.    Utilizing RAM Disks
  184.  
  185.         Zephyr's overall performance can be enhanced by using a RAM disk to
  186.    store overlay files and a program cache file.  The overlay files require
  187.    about 500K while the program cache file typically requires less than 256K. 
  188.    Make certain that your RAM disk is large enough to accommodate these files
  189.    before adding one or both of the following lines to your CONFIG.FP file.
  190.  
  191.                             OVERLAY=<drive:\dir>
  192.  
  193.                             PROGWORK=<drive:\dir>
  194.  
  195.  
  196.    When All Else Fails
  197.  
  198.         Both Zephyr 4.0 and the FoxPro 2.0 data base engine are new products. 
  199.    As with any new software, there is always the possibility that some novel
  200.    piece of software or hardware will not happily coexist.  If you experience
  201.    problems, please call us between 6 p.m. and 9 p.m. Atlanta time Monday
  202.    through Thursday at 404/237-9420. You may save money by using our new long
  203.    distance number in the "lower 48" states: just dial 10288-0-700-WARD-MUNDY.
  204.  
  205.    Zephyr Licenses & Special Offer
  206.  
  207.         ShareWare is "try-before-you-buy" software. With the shareware copy,
  208.    you are extended a 30-day license to kick the tires and see if Zephyr meets
  209.    your needs.  If it does, then you need to register and obtain an end-user
  210.    license within 30 days.  If it doesn't, then simply pass it along to a
  211.    friend or computer users' group.  Only the shareware version may be redis-
  212.    tributed and only if the recipient is clearly advised that the term of the
  213.    license for the shareware copy is 30 days.  The Zephyr logo screen clearly
  214.    identifies which version you have and whether it can be redistributed. 
  215.     
  216.         After you have tried Zephyr, we obviously hope you will decide to
  217.    register. For what you receive, our license fees are the lowest in the
  218.    world, period!  Payment of the current $50 license fee entitles you to the
  219.    current shipping version of Zephyr at no additional charge, a soft-bound
  220.    User's Guide, and 90-days' free support. 
  221.  
  222.  
  223.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.       Page 4
  224.  
  225.  
  226.         For ShareWare distributors, this documentation serves as a license to
  227.    redistribute the ShareWare version of Zephyr for a copying fee not to
  228.    exceed $15 U.S.  Zephyr must be obtained directly from us or an ASP distri-
  229.    butor and must be distributed in the same format in which you receive it on
  230.    the same or fewer number of disks.  Any alteration of the software or the
  231.    documentation terminates this authorization. 
  232.  
  233.  
  234.  
  235.                           Building Zephyr Applications
  236.  
  237.  
  238.  
  239.    Overview
  240.  
  241.         The easiest way to learn Zephyr is to take it for a test-drive.  This
  242.    chapter walks you through creation of a sample application.  We strongly
  243.    recommend you start here.  Whether or not you are new to the data base
  244.    world, let us also recommend a wonderful new 700 page McGraw-Hill book by
  245.    Edward Jones.  It's title is FoxPro2 Made Easy.  It is available in most
  246.    major computer book stores.  It will be the best money you ever spent.  
  247.  
  248.         With the exception of a couple of chapters, everything in this
  249.    exhaustive book can be put to good use with Zephyr.  This manual attempts
  250.    to lay the groundwork for using Zephyr.  It cannot possibly educate you on
  251.    all facets of the FoxPro data base engine.  To get the most out of Zephyr,
  252.    spring for Mr. Jones' book.  It will greatly enhance your enjoyment of this
  253.    software while introducing you to what, I think, is the best data base
  254.    engine on the market.  If you have trouble finding the book, you can order
  255.    the book directly from us, and we will ship you a copy.
  256.  
  257.  
  258.    Creating A New Data Base
  259.  
  260.  
  261.         All of Zephyr's building block tools are housed in the BUILD menu
  262.    option.  Use the <Right Arrow> cursor to move to this option. The DATA BASE
  263.    FILE selection will be highlighted.  Press <ENTER> to proceed.
  264.  
  265.         When prompted whether to create a NEW or revise an OLD data base,
  266.    press <ENTER> to choose NEW option. The FILE SELECTION WINDOW then will
  267.    display.  When prompted for the name of your new data base file, type
  268.    SAMPLE and press <CTRL-ENTER>.
  269.  
  270.         The FILE CREATION WINDOW then will display. Type in the information
  271.    shown below, pressing <ENTER> after each entry is completed.  When you have
  272.    completed all of the entries, press <CTRL-ENTER> to save your new data base
  273.    file structure to your hard disk.  Type N when asked whether to Add records
  274.    now.
  275.  
  276.  
  277.  
  278.  
  279.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.       Page 5
  280.  
  281.  
  282.         FIELD          TYPE           WIDTH          DEC
  283.         ------------   ----------     -----          ---
  284.  
  285.         FIRSTMI        Character      15             0
  286.         LASTNAME       Character      15             0
  287.         ADDRESS        Character      30             0
  288.         CITY           Character      15             0
  289.         STATE          Character      15             0
  290.         ZIP            Character       6             0
  291.         PHONE          Character      15             0
  292.         BIRTHDAY       Date            8             0
  293.         MARRIED        Logical         1             0
  294.         COMMENTS       Memo           10             0
  295.  
  296.  
  297.  
  298.    Creating A New Index
  299.  
  300.         An index is a separate file created to enable you to quickly locate
  301.    records in a data base.  For example, if we wanted to be able to quickly
  302.    retrieve records by last name, then we would create a LASTNAME index. 
  303.    Similarly, if we wanted to be able to "sort" a data base in zip code order,
  304.    we would create a ZIP index.  One of the beauties of indexes is that they
  305.    function as an instantaneous sorting mechanism.  So long as an index is
  306.    'open' while the primary data base is in use, the index entries are
  307.    automatically kept up to date.  
  308.  
  309.         The old trusty Rolodex could also index its cards; however, it had one
  310.    serious limitation.  The cards could only be indexed one way without
  311.    creating another whole deck of cards.  Zephyr improves upon the Rolodex by
  312.    enabling you to create as many as 25 different indexes for a single data
  313.    base.  To retrieve your data in a particular order, all that is necessary
  314.    is to designate the "lead" or primary index.
  315.  
  316.         To create an index is a snap.  Zephyr supports creation of both simple
  317.    and complex indexes.  A simple index is an index of any single field in
  318.    your data base.  A complex index is an index of more than one field in your
  319.    data base.  For example, if we wanted to sort the SAMPLE data base on last
  320.    name and, within last names, by first name, then we would want to create a
  321.    complex index.  If we create a simple index on only the LASTNAME field,
  322.    then John Smith and Joe Smith would not necessarily sort in the correct
  323.    alphabetical order.  This may or may not matter to you.
  324.  
  325.         Let's create one index of each type just to demonstrate the two
  326.    methods.  Let's assume we want a zip code index to generate a mailing list
  327.    from our SAMPLE data base.  Since we still are in the BUILD menu option,
  328.    simply move the cursor down to the INDEX option and press <ENTER>.  A
  329.    window will prompt for whether to create a NEW index or revise an OLD one. 
  330.    Leave NEW highlighted and press <ENTER>.  Next a window will prompt for
  331.    whether to create a SIMPLE or COMPLEX index.  Leave SIMPLE highlighted, and
  332.    press <ENTER>.  
  333.  
  334.  
  335.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.       Page 6
  336.  
  337.  
  338.         The FIELD SELECTION WINDOW then will display with a list of all the
  339.    fields in your current data base.  Use the <DOWN> cursor to highlight the
  340.    ZIP field and press <ENTER>.  Zephyr will automatically create the ZIP
  341.    index and activate it for use.
  342.  
  343.         Now let's create a complex index on LASTNAME and FIRSTMI.  Note that
  344.    the order is important.  We want the LASTNAME to be the primary key and
  345.    FIRSTMI to be secondary.  Otherwise, we would be sorting all the Joe's
  346.    together rather than all the Smith's.
  347.  
  348.         Choose the INDEX option again by pressing <ENTER> while it is high-
  349.    lighted.  Choose the NEW index option by pressing <ENTER>.  When prompted
  350.    whether to create a SIMPLE or COMPLEX index, type C and press <ENTER>.  Or
  351.    you could have pressed the <SPACE BAR> to toggle between simple and
  352.    complex.  Then press <ENTER> when COMPLEX is highlighted.
  353.  
  354.         The INDEX EXPRESSION WINDOW then will appear.  Type in the following
  355.    for the index expression: LASTNAME + FIRSTMI.  Press <CTRL-ENTER> when you
  356.    have typed the entry as shown below.  The FILE CREATION WINDOW then will
  357.    display.  Type in FULLNAME as the name for this complex index.  Then press
  358.    <ENTER> to create the index.  Note: Both of these fields were "character"
  359.    type fields.  It is legal in Zephyr to concatenate "character" fields. 
  360.    This is not permissible with any other type fields.  You can, however,
  361.    convert other types of fields to "character" expressions using functions.  
  362.  
  363.         We now have created two indexes for our SAMPLE data base.  By changing
  364.    the "lead index," we can retrieve records in either LASTNAME or ZIP order. 
  365.    We'll do this in a few minutes.  Now let's add some data.
  366.  
  367.  
  368.    Adding Data to Your Data Base
  369.  
  370.         Let's take off our BUILD hat for a moment and actually INPUT some data
  371.    into our new data base. Use the <HOME> cursor key to move to the INPUT menu
  372.    option.  Now highlight the ADD RECORDS option by typing an A.  Then press
  373.    <ENTER> to display a blank data entry screen.  Make up several entries such
  374.    as the one shown below.  Press <PgDn> to save each entry and move to
  375.    another blank screen.  When you have finished adding records, press <ESC>
  376.    to end your ADD RECORDS session.
  377.  
  378.  
  379.    Browsing Thru Data Bases
  380.  
  381.         One of Zephyr's most powerful features is its BROWSE RECORDS mode.  It
  382.    gives you a spreadsheet-type view of your current data base sorted in the
  383.    order of the primary index.  The view can be modified to look at only a
  384.    particular group of records by setting a FILTER.  Or we can change the
  385.    order of the data by simply changing the LEAD INDEX.  FoxPro2 Made Easy
  386.    dedicates over 100 pages to its explanation of all the features of the
  387.    BROWSE function.  We will explore a few of the features now and come back
  388.    to the more complex ones later.
  389.  
  390.  
  391.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.       Page 7
  392.  
  393.  
  394.         To enter BROWSE mode, highlight the BROWSE RECORDS option in the INPUT
  395.    menu and press <ENTER>.  
  396.  
  397.         Moving through the data horizontally is accomplished by pressing the
  398.    <TAB> key.  Or you can move in the reverse direction by pressing <SHIFT-
  399.    TAB>. To move down or up a row at a time, press the <Up> or <Dn> cursor
  400.    keys. Use <PgUp>/<PgDn> to move more quickly.
  401.  
  402.         In a large data base, this would be cumbersome to say the least. 
  403.    Zephyr supports indexed movement through the data base by pressing <CTRL-K>
  404.    and then typing all or part of the lead index key to find.  Pressing
  405.    <ENTER> executes the search which will be virtually instantaneous on any
  406.    size data base. If a matching record is not found, the cursor will be
  407.    positioned on the closest match.  <F11> moves you to the top of the file
  408.    while <F12> moves you to the bottom.
  409.  
  410.         Suppose we decide we'd like to search on a different index key.  Then
  411.    simply press the <F10> function key to display a list of current active
  412.    indexes for this data base. Highlight the desired index and press <ENTER>.
  413.    Then execute the search using the new lead index as outlined above.
  414.  
  415.         There may be instances in which you need to find a particular expres-
  416.    sion but you do not know what field the expression is stored in.  Move to
  417.    the top of your data base, then press <CTRL-F> and enter the expression to
  418.    find.  Press <CTRL-ENTER> to execute the search.  
  419.  
  420.  
  421.    Using Memo Fields
  422.  
  423.         If you constructed the SAMPLE data base as recommended, you will note
  424.    that it includes a COMMENTS field with a notation beside it that says memo. 
  425.    The data for memo fields is actually stored in SAMPLE.FPT. The 10 character
  426.    width of the memo field in the main data base merely stores a 'pointer' to
  427.    the memo data in the special memo file.  This is good news because a memo
  428.    field can store data of any size.  It is a variable length field with
  429.    virtually limitless possibilities.  If a memo field in a particular record
  430.    is empty, its memo designation will always appear in all lowercase letters:
  431.    memo.  If it contains data, the display will show Memo.  
  432.  
  433.         Data can be added or changed in a memo field while in BROWSE mode by 
  434.    positioning the cursor on the desired memo field.  Then press <F5> or
  435.    <CTRL-PgDn> to invoke the memo editor.  Now move to the COMMENTS field and
  436.    add some data.  You will note that the editor functions much like a word
  437.    processor.  It includes block copy and delete functions, global search and
  438.    replace, and many other nice touches.  These are covered in greater detail
  439.    in the FoxPro2 Made Easy reference book.  When you have finished your entry
  440.    in the memo field, press <CTRL-W> to close the BROWSE window or <CTRL-F1>
  441.    to switch back to the browse table and leave the MEMO window open.
  442.  
  443.  
  444.  
  445.  
  446.  
  447.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.       Page 8
  448.  
  449.  
  450.    Browse Formats
  451.  
  452.  
  453.         The default BROWSE settings provide you with access to all fields in
  454.    your current data base.  Every field is formatted to its default specifica-
  455.    tions, every field is accessible, and no error correction is provided. 
  456.    This may or may not be desirable depending upon your particular applica-
  457.    tion.
  458.  
  459.         Zephyr provides access to all the tools available to a FoxPro program-
  460.    mer in customizing your BROWSE environment.  Some of the functions are
  461.    relatively simple to use (such as a customized list of fields to display)
  462.    and some require a little more study.  The more complex functions are
  463.    carefully explained under the BROWSE topic in the Zephyr HELP file.  How to
  464.    access this information is covered in the next section.  Choose the BROWSE
  465.    FORMAT option on the INPUT menu and you will be prompted to enter a BROWSE
  466.    expression.
  467.  
  468.         Here you can enter any combination of BROWSE commands.  To specify a
  469.    particular list of fields to display, simply enter the word "FIELDS"
  470.    followed by the field names of the fields to display.  Separate the field
  471.    names with commas.  For example, try FIELDS Lastname, Phone, Comments and
  472.    press <CTRL-ENTER>.  Then, choose the BROWSE RECORDS option again and
  473.    examine the result.
  474.  
  475.  
  476.    Zephyr HELP System
  477.  
  478.         Zephyr has over a megabyte of HELP waiting at your fingertips.  In
  479.    addition to coverage of basic information relating to use of Zephyr, the
  480.    HELP system also includes documentation from Fox Software on virtually all
  481.    of the commands in the FoxPro programming language.  This documentation is
  482.    included with permission from Fox Software.  It may not be used for any
  483.    purpose other than in conjunction with running the Zephyr program.
  484.  
  485.         To execute Zephyr's context-sensitive HELP, press the <F1> function
  486.    key at any time.  The HELP system will appear in its own window.  You may
  487.    either use the cursor keys to move through the topics or type the first
  488.    letter of the topic with which you want help.  Then scroll to the exact
  489.    command desired.  When the desired topic is highlighted, press <ENTER> to
  490.    display the text.  Use the cursor keys to move through the text.  Then type
  491.    T to redisplay the topics menu, or press <ESC> to exit from the help.
  492.  
  493.         The help system is actually nothing more than a Zephyr data base
  494.    (ZHELP).  It can be opened and manipulated just as any other data base can. 
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.       Page 9
  504.  
  505.  
  506.    Changing Lead Indexes
  507.  
  508.         As mentioned previously, there are many occasions when you may wish to
  509.    access your data bases in a different order.  Changing Lead Indexes is
  510.    Zephyr's way of allowing you to shift gears from one index to another. 
  511.    From the INPUT menu, choose the INDEX SETTING option.  Zephyr will display
  512.    a window with all current indexes in use with the primary data base.  
  513.  
  514.         Use the cursor keys to highlight the desired index and press <ENTER>
  515.    to make it the new lead index.  Until changed again, retrieval and sorting
  516.    will be done in the order of the new lead index.  Note that all indexes are
  517.    kept current as records are added or changed in the data base so long as
  518.    the indexes are open and in use.  If the indexes appear in the index list,
  519.    they are open and in use.
  520.  
  521.         Notice in the listing of indexes that the first choice always is
  522.    * NATURAL ORDER *.  Selecting this option means records will be displayed
  523.    and sorted in the order in which they were physically entered into the data
  524.    base.  All other indexes still are maintained as explained above.  This
  525.    might be desirable for certain reports in which you want to list informa-
  526.    tion in the order in which it was entered.
  527.  
  528.  
  529.    Zephyr FILE Functions
  530.  
  531.         Let's look briefly at Zephyr's tools for selecting, opening, and
  532.    closing data bases and indexes.  All of these functions are housed under
  533.    the FILE menu option.  Use the cursor keys to move and display that option.
  534.  
  535.         Before using any data base, it first must be opened.  Whenever you
  536.    create a new file or index, it is automatically opened.  Zephyr also
  537.    remembers the files and indexes which were in use immediately before you
  538.    last exited the program.  In all other cases, you must first open a data
  539.    base or index before using it.
  540.  
  541.         Since Zephyr allows you to have up to 25 data bases and 25 indexes
  542.    open at the same time, there necessarily must be a way to select the
  543.    primary file and index to use.  Finally, Zephyr permits you to close either
  544.    individual files and indexes or all files and indexes.  Closing a file
  545.    closes its indexes.
  546.  
  547.         All of the above functions are supported on the FILE pull-down menu. 
  548.    Simply highlight the desired option and press <ENTER>.  An appropriate
  549.    window will open in which you may choose the desired file.  Press <ENTER>
  550.    to execute your choice.  The Zephyr status line always displays the primary
  551.    data base file in use.
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 10
  560.  
  561.  
  562.    Creating Zephyr OUTPUT
  563.  
  564.         The power of Zephyr is its ability to permit non-programmers to design
  565.    virtually any imaginable type of output document.  These range from simple
  566.    lists of columnar data from a data base, to multi-faceted reports and label
  567.    template files, to state-of-the-art form letters.  Say goodbye forever to
  568.    importing and exporting data just to generate a form letter.  Zephyr
  569.    includes what Data Based Advisor magazine called "one of the smartest form
  570.    letter functions around ... the only one you'll ever need."  The next
  571.    sections walk you through building simple, but effective, examples of each
  572.    output variety supported.  However, to get the most out of Zephyr reports
  573.    and labels, Edward Jones' FoxPro2 Made Easy is a must here.
  574.  
  575.         With the exception of lists, all other Zephyr output is generated by
  576.    "pouring" data from up to 25 data bases through a template.  A template is
  577.    a file of instructions which tells Zephyr how to format the output.  It
  578.    does not tell Zephyr which records to display or print.  That is done with
  579.    a filter. 
  580.  
  581.         Before you can generate anything other than a list, you must first
  582.    create the template file.  Separate editors are included with Zephyr to
  583.    permit the creation and revision of reports, labels, and form letters. 
  584.    These all are accessed from the BUILD pull-down menu.  There is no limit
  585.    (other than the size of your hard disk) to the number of templates which
  586.    can be created.
  587.  
  588.         If you are familiar with other dBASE compatible products, then you are
  589.    in for a pleasant surprise.  The new FoxPro data base engine has scrapped
  590.    the familiar (but lousy) dBASE III report and label templates in favor of a
  591.    much more flexible and powerful off-spring.  As with anything new, the
  592.    banded report writer in particular takes some practice to become an expert. 
  593.    The payoff is much enhanced reports which were never before possible.
  594.  
  595.  
  596.    Zephyr REPORTS
  597.  
  598.         To access the Zephyr report writer, choose the REPORT option from the
  599.    BUILD pull-down menu.  Zephyr will display the NEW/OLD window allowing you
  600.    to select whether to build a new report or revise an old one.  Since we are
  601.    just starting, choose the NEW option and press <ENTER>.  The FILE SELECTION
  602.    WINDOW will appear. Name the report SAMPLE. Press <CTRL-ENTER>. The REPORT
  603.    WRITER WINDOW will display as shown below after pressing <ALT-O>.
  604.  
  605.         Notice that the rows of the report are divided into bands for page
  606.    heading, detail, and page footing.  Accessing the FoxPro report pull-down
  607.    menu by pressing <ALT-O> enables you to add additional bands for titles,
  608.    summaries and data groupings, specify report layout options, preview your
  609.    report, add and remove bands from the report, and toggle between text,
  610.    field, and box modes in designing report items.  If all this sounds Greek
  611.    to you and you're not from Greece, we will clear the fog on the next page. 
  612.  
  613.  
  614.  
  615.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 11
  616.  
  617.  
  618.         Detail bands are used to specify the data which will comprise your
  619.    report.  This typically consists of field names but may also include text
  620.    and/or boxes.  In addition, any legal FoxPro expression (such as a date
  621.    computation or a calculated value from several fields) may be included in a
  622.    detail band.  Each band represents a row of your report.  If you need more
  623.    rows than are displayed, press <CTRL-N>.  To remove a band, press <CTRL-M>. 
  624.    Detail bands always execute once for each record.
  625.  
  626.         PgHead and PgFoot bands are rows of a report which will only print
  627.    once per page (at the top and bottom of the page).  While these bands
  628.    generally contain text (such as a heading or a page number), they also may
  629.    contain field data or FoxPro expressions.  They execute once per page.
  630.  
  631.         Title and Summary bands contain information which should only appear
  632.    at the beginning or end of a report, respectively.  Group bands, as the
  633.    name implies, are bands which permit the grouping of information in a
  634.    report.  These usually consist of a group heading and perhaps summary data
  635.    about the group (such as a count or a sub-total).  Typically it is used to
  636.    divide a report into parts (such as people from each different state)
  637.    rather than running separate reports for each state.
  638.  
  639.         The Page Layout option is used to set page length and margin widths to
  640.    accommodate different types of reporting requirements.  Those using laser
  641.    printers may need to alter the page length setting from 60 to approximately
  642.    56 to avoid blank pages between actual pages of a report.  Foreign users
  643.    also will need to experiment a little bit to accommodate foreign paper
  644.    sizes.
  645.  
  646.         The Page Preview option provides a convenient means of checking your
  647.    work without leaving the report writer.  It will actually display how your
  648.    report will look with data from your current data base.  You then can make
  649.    any desired changes.  Now let's create our sample report.  
  650.  
  651.         First, add a Title Band by accessing the FoxPro report menu <ALT-O>,
  652.    highlighting the Title/Summary option, and pressing <ENTER>.  Use the <TAB>
  653.    key to move to the title option in the dialog window.  Press <ENTER> to
  654.    mark this choice.  Then <TAB> to the OK option and press <ENTER>.  The
  655.    title band will be inserted at the top of your report worksheet.  Use the
  656.    right cursor key to move to the center of the title band and type Sample
  657.    Zephyr Report.  Press <ENTER> to complete the entry.  If it is not cen-
  658.    tered, press <SPACE> while positioned in the text you typed.  Once high-
  659.    lighted, use the cursor keys to move the text to the center.  Then press
  660.    <ENTER> to complete your work.
  661.  
  662.         Now let's create the Page Heading.  In the sample, we want the page
  663.    number to display on the left margin and today's date to display on the
  664.    right margin.  This requires our use of two FoxPro functions.  DATE() is
  665.    the FoxPro function used to return today's date while _PAGENO will return
  666.    the current report page number.
  667.  
  668.  
  669.  
  670.  
  671.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 12
  672.  
  673.  
  674.         Since we want the word 'Page' to actually appear in the heading, we
  675.    need to type some literal text into the PgHead band.  Using the cursor
  676.    keys, move to far left of first PgHead Band.  Type Page and press <ENTER>. 
  677.  
  678.         Now move over a space with the cursor keys and press <CTRL-F> to bring
  679.    up the field dialog window.  Use the <TAB> key to move to the blank field
  680.    beside the < Expr... >. Type in _PAGENO and press <CTRL-ENTER>.  This will
  681.    insert the page number variable at the designated spot in the band.
  682.  
  683.         Using the cursor keys, move to within 8 spaces of the right margin on
  684.    the same band.  Repeat the steps above used to insert the page number,
  685.    except type the word DATE() rather than _PAGENO this time.  This will
  686.    insert today's date.  Check your work now by pressing <CTRL-I> for a
  687.    preview report.  Type D when done. If you made a mistake, move the cursor
  688.    to the item which is incorrect, then press <SPACE BAR> to highlight it,
  689.    then press <DEL> to delete it.  Then try again!
  690.  
  691.         Now move to the first Detail Band.  Let's specify the fields we want
  692.    to use in the report.  The same steps can be used for fields as were used
  693.    above for the FoxPro variables, so we won't repeat them.  There is an
  694.    alternative method which you may prefer if you consider yourself a novice. 
  695.    Press <CTRL-F> to bring up the field dialog window.  Press <ENTER> while
  696.    positioned in < Expr.. >.  When the field selection window appears, press
  697.    <SHIFT-TAB> to move to the field list.  Highlight the desired field
  698.    Firstmi. Press <ENTER> <CTRL-ENTER> <CTRL-ENTER>. Use cursor to move over a
  699.    space and repeat for LASTNAME and BIRTHDAY. 
  700.  
  701.         We added a monkey wrench just to be sure you're not sleeping.  We
  702.    don't have an AGE field in our data base, but Zephyr can compute it anyway. 
  703.    Follow the steps which were used above in entering the _PAGENO expression,
  704.    except enter the following expression: (DATE()-BIRTHDAY)/365.  This tells
  705.    Zephyr to subtract birthdate from today and divide the result by 365 days. 
  706.  
  707.         Now for the finishing touches.  Move to the left margin of the third
  708.    PgHead Band and type the headings which should appear over the fields:
  709.    First Name, Last Name, Birthday, and Age.  Press <ENTER> when you are
  710.    finished. Then move to the next band and type a row of hyphens to simulate
  711.    an underscore.  Press <ENTER> when you are finished.  To preview your
  712.    report, press <CTRL-I>.  Your results should look like what appears below. 
  713.    Press D to exit Preview.
  714.  
  715.         If everything looks correct, you are ready to save your report.  If
  716.    not, revise the necessary entries as explained previously.  
  717.  
  718.         To save the SAMPLE report template, press <CTRL-W>.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 13
  728.  
  729.  
  730.    Zephyr LABELS
  731.  
  732.  
  733.         To access the Zephyr label editor, choose the LABEL option from the
  734.    BUILD pull-down menu.  Zephyr will display the NEW/OLD window. Select
  735.    whether to build a new label template or revise an old one.  Since we are
  736.    just starting, choose the NEW option and press <ENTER>.  The FILE SELECTION
  737.    WINDOW will appear. Name the template SAMPLE. Press <CTRL-ENTER>. The LABEL
  738.    EDITOR will display.  Press <ALT-L>.
  739.  
  740.         There are six settings which control the formatting of labels.  
  741.  
  742.                             1.  Left Margin
  743.                             2.  Label Width
  744.                             3.  Label Height
  745.                             4.  Number of Labels Across
  746.                             5.  Spaces Between Labels
  747.                             6.  Lines Between Labels
  748.  
  749.         Many of the more popular label settings already have been defined and
  750.    can be accessed by pressing <CTRL-L>.  Highlight the desired format and
  751.    press the <ENTER> key.  In the alternative, you may <TAB> to the various
  752.    setting and set them as desired.  The label display will adjust accordingly
  753.    to provide a graphic representation of your labels.
  754.  
  755.         The other step in creating a label template is to identify the fields
  756.    of information which should be printed.  Using our SAMPLE data base, we can
  757.    create simple mailing labels by entering the field names as shown below. 
  758.    Note that multiple fields can be included on a single line of the mailing
  759.    label by separating the field names with a comma.  This will automatically
  760.    trim trailing spaces from fields and add a space between each two fields.
  761.  
  762.         Once you have entered the data shown above, press <CTRL-I> to preview
  763.    the way your labels will actually look when printed.  To save the label
  764.    template, press <CTRL-W>.  Label templates can be revised in the same way
  765.    as reports.
  766.  
  767.  
  768.    Zephyr FORM LETTERS
  769.  
  770.         Zephyr form letters are created using the FORM LETTER option on the
  771.    BUILD pull-down menu.  Zephyr will display the NEW/OLD window. Select
  772.    whether to build a new form letter or revise an old one.  Choose the NEW
  773.    option and press <ENTER>.  The FILE SELECTION WINDOW will appear. Name the
  774.    form letter SAMPLE. Press <CTRL-ENTER>. The FORM LETTER EDITOR will display
  775.    with the name of your form letter template centered above the editor. 
  776.    Note: the file extension of .TXT is used unless you include a file exten-
  777.    sion when you specify the name of the form letter.
  778.  
  779.         Form letters consist of boilerplate text and field data expressions
  780.    which tell Zephyr to extract pieces of data from your data bases.  These
  781.    expressions may be as simple as a field name, or they may be quite complex.
  782.  
  783.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 14
  784.  
  785.  
  786.    The more complex expressions actually instruct Zephyr to evaluate condi-
  787.    tions and "jump" to a particular place in the form letter depending upon
  788.    the result of that evaluation.
  789.  
  790.         If you wish to extract data from a field in the primary data base,
  791.    position to the place in the form letter where the data should be inserted. 
  792.    Then press <F10> to pop up the field list.  Use the cursor keys to high-
  793.    light the desired field, and press <ENTER>.  The field data expression for
  794.    that field will be inserted in your form letter.  Notice that simple field
  795.    data expressions consist of the file name, a period, and a field name
  796.    surrounded by pairs of //'s.  When the form letter is executed from the
  797.    OUTPUT menu, the field contents will be substituted for field expressions.
  798.  
  799.         In the example on the preceding page, you will notice the expression
  800.    //=CDOW(Birthday)//.  This tells Zephyr to print the day of the week for
  801.    the particular birthday field in character form.  The result would be one
  802.    of the days of the week: Sunday through Saturday.  The FoxPro language
  803.    includes hundreds of functions, all of which are documented in the Zephyr
  804.    HELP file.  Notice that a function consists of a command (CDOW) plus one or
  805.    more modifiers which are surrounded by parentheses.  The equals sign (=)
  806.    tells Zephyr you are taking control and wish to enter a programming
  807.    expression.  These expressions must be character expressions.
  808.  
  809.         One of the more powerful functions in the dBASE language is the
  810.    IMMEDIATE IF function.  Its syntax is IIF(condition,IFtrue,IFfalse).  The
  811.    condition is any dBASE expression which evaluates to a logical true or
  812.    false.  The IFtrue expression must be a character expression in Zephyr form
  813.    letters.  It tells Zephyr what to do if the logical expression is true. 
  814.    The IFfalse expression also must be a character expression in Zephyr form
  815.    letters.  It tells Zephyr what to do if the logical expression evaluates to
  816.    false.  For example, if you had a MARRIED field and you wished to print
  817.    "HITCHED" in the form letter if the person were married or "AVAILABLE" if
  818.    the person were not married, the Zephyr form letter expression would be
  819.    IIF(MARRIED,"HITCHED","AVAILABLE").  See the FoxPro2 Made Easy reference
  820.    book for numerous other examples.
  821.  
  822.  
  823.    Advanced Expressions
  824.  
  825.         Zephyr form letters also may contain logical expressions which are
  826.    used to determine whether to jump to a particular paragraph in the form
  827.    letter.  The syntax for the conditional GOTO expression is //}LA-
  828.    BEL,condition// where condition is the logical expression (explained below)
  829.    and LABEL is any desired label name to which processing jumps when the
  830.    logical condition evaluates to true. The syntax for the LABEL expression is
  831.    //{LABEL}//.  
  832.  
  833.         LASTNAME='Smith' is a logical expression which compares a character
  834.    field to a text expression.  When 'Smith is in the LASTNAME field' then the
  835.    expression is TRUE. FILINGDT=DATE() is an example of structuring a compari-
  836.    son between a FILINGDT field and today's date. If true, the form letter
  837.    jumps to LABEL.
  838.  
  839.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 15
  840.  
  841.  
  842.         The expressions actually would appear in your form letter as shown
  843.    below. //}PARA1,Lastname='Smith'// and //}PARA2,Filingdt=DATE()//.  The
  844.    label expressions would be //{PARA1}// and //{PARA2}//.
  845.  
  846.         On occasion, you may wish to store the actual margins for your form
  847.    letter in the form letter itself.  The syntax is //@LMargin,RMargin//.  If
  848.    you wished to set the left and right margins to 10 and 70, use //@10,70//.
  849.  
  850.         Zephyr form letters may also manipulate other indexed data bases and
  851.    extract information from them as well.  The syntax for extracting field
  852.    data from another file is //FILENAME->FIELDNAME//. To execute a search of
  853.    any data base, enter a seek command: //>file#,KEY// where file# is the
  854.    number of the work area for the desired file and KEY is an expression
  855.    matching the field type of the lead index for the desired file, e.g.
  856.    //>3,'Jones'// assuming a LastName lead index.
  857.  
  858.  
  859.    Zephyr Quick Lists
  860.  
  861.         There may be occasions when you simply wish to extract a quick list of
  862.    information in columns which correspond to several fields from a particular
  863.    data base.  First, select the desired file as the primary data base as
  864.    explained above.  Then choose QUICK LIST from the OUTPUT menu.  
  865.  
  866.         The FIELD SELECTION WINDOW will display.  Highlight each field you
  867.    wish to list in the order you want them listed.  Press <ENTER> after each
  868.    selection.  A window will display your choices as you make them.  When you
  869.    finish choosing fields, press <ESC> to continue.  
  870.  
  871.         The FILTER SELECTION WINDOW will display.  This provides an opportuni-
  872.    ty to narrow down the group of records to be displayed or printed.  Refer
  873.    to the FILTER section of this User's Guide for more information.  To delete
  874.    an existing filter, press <DEL> when the window first displays then <CTRL-
  875.    ENTER>.  To proceed without entering a filter, press <ESC>.  Or, you may
  876.    enter the filter expression.  Then press <CTRL-ENTER> to proceed.
  877.  
  878.         The INDEX SELECTION WINDOW will display.  Highlight the desired lead
  879.    index (i.e. sort order) for your listing and press <ENTER>.  Or, to leave
  880.    the existing lead index, just press <ESC>.
  881.  
  882.         You will find quick lists are useful for extracting data to obtain a
  883.    quick, thumbnail sketch of your data.  They also are valuable in honing
  884.    your Boolean logic (record selection) skills.  If you make a mistake, don't
  885.    give up!  Try again.  No one ever learned data base management in a day.
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 16
  896.  
  897.  
  898.    Zephyr Filters
  899.  
  900.         One of the most critical data base management functions is the ability
  901.    to narrow down your data base to a specific group of records.  In the dBASE
  902.    world, these selection criteria are known as filters.  In Zephyr, a filter
  903.    controls which SUBSET of records can be accessed in both INPUT and OUTPUT
  904.    modes.  If no filter is active, all records are accessible including those
  905.    marked for deletion.  The FILTER SELECTION WINDOW can be accessed from both
  906.    the INPUT and OUTPUT menus.  And it also appears as part of the output
  907.    process in generating any report, label, form letter, or list.
  908.  
  909.         Most filters consist of a fieldname, a Boolean operator, and an
  910.    expression of the same type as the fieldname.  Using <SHIFT-TAB> within the
  911.    FILTER SELECTION WINDOW moves you to the field list.  Highlight the desired
  912.    field to be used to narrow down your data to a specific group of records
  913.    and press <ENTER>.  Then enter a Boolean operator: = (equals), <> (not
  914.    equals), < (less than), > (greater than), <= (at most), >= (at least). 
  915.    Then specify the value which must be TRUE for a record to be selected. 
  916.    Press <CTRL-ENTER> to proceed.  If your filter does not evaluate to a logi-
  917.    cal expression, Zephyr will display an error and let you try again. 
  918.    Otherwise, records not matching the filter will disappear from view and use
  919.    until you change or delete the filter.
  920.  
  921.         To assure that an expression matches the type of the fieldname to
  922.    which it refers, follow these simple rules.  If the field type is charac-
  923.    ter, then the expression should be surrounded in quotes unless it is the
  924.    name of another field.  In the latter case, the other field either must
  925.    also be a character field or it must be converted to a character field
  926.    using the conversion functions: DTOC() for dates or STR() for numeric
  927.    fields.  These functions are covered in detail in the HELP file which is
  928.    accessed by pressing <F1>.  For example, LASTNAME="Jones" is a valid filter
  929.    using a character field.
  930.  
  931.         If the field type is numeric, then the value should be entered
  932.    literally without quotation marks.  For example, FILINGFEE=50 is a valid
  933.    filter using a numeric field.
  934.  
  935.         If the field type is date, then the value must be entered by surround-
  936.    ing the date text with braces.  For example, FILINGDT={10/10/89} is a valid
  937.    filter.  An alternative syntax is FILINGDT=CTOD("10/10/89").  The latter
  938.    example uses the character-to-date function to convert a character expres-
  939.    sion (surrounded in quotes) to a date expression.  Either method will work.
  940.  
  941.         You may join more than one expression to another using the .OR. and
  942.    .AND. operators. Lastname="Jones" .OR. Lastname="Smith" would filter out
  943.    all records in the data base except those whose last name was Jones or
  944.    Smith.  Using .OR. means if either condition is TRUE, the record will
  945.    appear while using .AND. means all the conditions joined by .AND. must be
  946.    TRUE for the record to appear.
  947.  
  948.  
  949.  
  950.  
  951.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 17
  952.  
  953.  
  954.         Another very powerful Boolean operator is supported.  $ means "is
  955.    contained in" to Zephyr.  Thus, we could say "a"$LASTNAME which would find
  956.    all records with a last name containing the lower case letter "a."  This
  957.    operator is particularly powerful in Zephyr since it allows you to search
  958.    for a particular word or phrase in memo fields as well as character fields. 
  959.    To negate a particular expression, use the .NOT. connector.  For example,
  960.    .NOT. "a"$LASTNAME would find all records in which the last name field did
  961.    not contain a lower case "a."
  962.  
  963.         Many volumes could be written on filters.  The best advice is to try a
  964.    few and examine the group of records produced with the filter active.  Then
  965.    you can try another twist to the filter and see what it accomplishes. 
  966.    FoxPro2 Made Easy also will prove to be an invaluable resource until you
  967.    are comfortable designing filters on your own.
  968.  
  969.  
  970.    Zephyr Print Options
  971.  
  972.         Zephyr provides a simple method for choosing where to direct the
  973.    output from your reports, labels, form letters, and quick lists.  You may
  974.    either display, print to a printer, or write to a file.  These options all
  975.    are provided on the OUTPUT menu.
  976.  
  977.         Zephyr's default is display only.  To turn on printer output, high-
  978.    light the PRINTER OUTPUT OFF option, and press <ENTER>.  This toggles the
  979.    printed output option to ON.  Repeating the process toggles it back OFF.
  980.  
  981.         If you prefer to send output to a file rather than the printer, then
  982.    highlight the FILE OUTPUT OFF option, and press <ENTER>.  You then will be
  983.    prompted to name the output file.  Type a legal DOS file name and press
  984.    <ENTER>.  To toggle file output OFF again, highlight the option and press
  985.    <ENTER> again.
  986.  
  987.         In a nutshell, that's the basics of Zephyr. Once you have mastered the
  988.    concepts in this chapter, you're ready to work on becoming a data base
  989.    guru.  The next chapter guides you through many of Zephyr's more sophisti-
  990.    cated bells & whistles. If this is your first data base experience, call it
  991.    a day here and get some rest.
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 18
  1008.  
  1009.  
  1010.                                 Advanced Features
  1011.  
  1012.  
  1013.  
  1014.    File Management
  1015.  
  1016.         Zephyr supports manipulation of up to 25 data bases simultaneously. 
  1017.    For each data base, you can open one or more indexes so long as the total
  1018.    number of open indexes does not exceed 25.  With the exception of creating
  1019.    new data bases and indexes, all of the file opening, closing, and selecting
  1020.    options are located on the FILE pull-down menu shown below.
  1021.  
  1022.                        |----------------------|
  1023.                        |    SELECT            |
  1024.                        |         FILE         |
  1025.                        |         INDEX        |
  1026.                        |----------------------|
  1027.                        |    OPEN              |
  1028.                        |         FILE         |
  1029.                        |         INDEX        |
  1030.                        |----------------------|
  1031.                        |    CLOSE             |
  1032.                        |         FILE         |
  1033.                        |         INDEX        |
  1034.                        |         RELATION     |
  1035.                        |         ALL          |
  1036.                        |----------------------|
  1037.                        |    IMPORT            |
  1038.                        |    EXPORT            |
  1039.                        |----------------------|
  1040.                        |    REINDEX           |
  1041.                        |    PACK              |
  1042.                        |----------------------|
  1043.  
  1044.         Before a file can be used, it first must be opened.  Creating a new
  1045.    file automatically opens it.  In addition, the default BROWSE, EDIT, and
  1046.    ADD options work only on the primary data base.  The SELECT FILE option
  1047.    allows you to choose the primary data base with which to work.  The SELECT
  1048.    INDEX option lets you change the lead index, if any.  The latter two
  1049.    options also are available on the INPUT pull-down menu.
  1050.  
  1051.         NOTE: Zephyr always needs one work file. Never open more than 24 data
  1052.    bases simultaneously or unpredictable behavior is likely!  Also make
  1053.    certain that sufficient FILES have been specified in your CONFIG.SYS file.
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 19
  1064.  
  1065.  
  1066.    Relational Data Bases
  1067.  
  1068.         In many data base applications, it is more efficient to store various
  1069.    pieces of information in multiple data bases.  For example, a PTA data base
  1070.    typically would include a file for PARENT information and a separate file
  1071.    for CHILD information.  By structuring the files in this way, it would not
  1072.    be necessary to include father, mother, home address, home phone, and work
  1073.    phone information in each CHILD record.  Instead, a "unique key" field
  1074.    could be added to both the PARENT and CHILD data bases so that various
  1075.    records in the two files could be related.
  1076.  
  1077.         Since home phone numbers typically are unique within a particular PTA
  1078.    district, this might serve as an ideal key field for both files.  Since
  1079.    dBASE-dialect data bases usually only support "many-to-one" file relations,
  1080.    we would want the CHILD data base to be our primary data base, the PARENT
  1081.    data base to be our related data base, and the PARENT file would be indexed
  1082.    on PHONE to allow the proper linkage of the two files.  Thus, we could
  1083.    create a PARENT data base that looked something like the following:
  1084.  
  1085.  
  1086.    Field Name     Field Type     Field Length   Field Decimals
  1087.  
  1088.    LASTNAME            C              15             0
  1089.    FATHER              C              20             0
  1090.    MOTHER              C              20             0
  1091.    ADDRESS             C              30             0
  1092.    PHONE               C              15             0
  1093.  
  1094.  
  1095.         The CHILD data base would include entries like those shown below:
  1096.  
  1097.  
  1098.    Field Name     Field Type     Field Length   Field Decimals
  1099.  
  1100.    CHILD               C              20             0
  1101.    PHONE               C              15             0
  1102.    TEACHER             C              20             0
  1103.    BIRTHDAY            D              8              0
  1104.    LASTNAME            C              15             0
  1105.  
  1106.  
  1107.         Note that both data bases contain a PHONE field and a LASTNAME field. 
  1108.    However, we would not want to link the data bases by last name since there
  1109.    may be more than one 'Smith' in the same PTA.  In addition, with today's
  1110.    nuclear family relationships, a child's last name is not necessarily the
  1111.    same as that of the couple with whom the child resides.
  1112.  
  1113.         Files are related to one another by selecting RELATION on the BUILD 
  1114.    menu.  Before establishing the relation, create both of the above data
  1115.    bases, then SELECT the PARENT data base and build a new index on the PHONE
  1116.    field. Then SELECT the CHILD data base as the primary data base. Choose the
  1117.    RELATION option, then highlight the PHONE field when prompted.
  1118.  
  1119.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 20
  1120.  
  1121.  
  1122.         Once files are related, movement through one data base automatically
  1123.    moves the record pointer to the appropriate record in the related data
  1124.    base.  For reports, labels, and form letters, the related fields can be
  1125.    extracted simply by referencing the related file name and field name. The
  1126.    syntax to extract the father's name while running a report of all school
  1127.    kids would be Parent->Father. The same syntax could be used in BROWSE mode. 
  1128.    Up to 25 simultaneous relations are supported in Zephyr.
  1129.  
  1130.  
  1131.    Importing & Exporting Data
  1132.  
  1133.         Zephyr provides a rich variety of tools to assist in importing and
  1134.    exporting data. The file types supported are shown in the FILE TYPES
  1135.    SELECTION WINDOW whenever you choose the IMPORT or EXPORT options from the
  1136.    FILE pull-down menu.  See the README.DOC file for a current listing.
  1137.  
  1138.         To import a file, first create a Zephyr data base which matches the
  1139.    structure of the data in the external file. Select this file as your
  1140.    primary data base.  Then choose IMPORT, highlight the file type of the
  1141.    external file, and press <ENTER>.  The FILE SELECTION WINDOW will display.
  1142.    Highlight the external file name and press <ENTER>.  Zephyr will do the
  1143.    rest.
  1144.  
  1145.         To export file data, first select the Zephyr data base.  Use the
  1146.    FILTER option to define the group of records to be exported. Then choose
  1147.    EXPORT, highlight the file type of the external file to create, and press
  1148.    <ENTER>.  The FILE NAMING WINDOW will display.  Enter a name for the
  1149.    external file to be created and press <ENTER>.  Zephyr will do the rest.
  1150.  
  1151.  
  1152.    File Maintenance Utilities
  1153.  
  1154.         Zephyr provides the necessary tools to rebuild your data bases and
  1155.    indexes in the unlikely event of an electrical problem.  As with all
  1156.    electronic data bases, Zephyr is absolutely dependent upon a reliable
  1157.    source of electricity.  Do not connect your computer on the same circuit
  1158.    with other electrical hogs such as toasters, coffee pots, microwave ovens,
  1159.    and air conditioners.  Do not use your computer during electrical storms. 
  1160.    If your lights flicker from time to time, this is a tell-tale sign of a
  1161.    power problem.  Make certain your computer is on a circuit with a reliable
  1162.    source of power.
  1163.  
  1164.         In the event you experience power problems or if your computer locks
  1165.    up in the middle of using Zephyr, usually all is not lost. The word
  1166.    "usually" is used advisedly.  Don't substitute luck for frequent backups,
  1167.    or someday your computer most assuredly will get the last laugh!  If you
  1168.    have trouble finding records, try one or both of the following options.  
  1169.  
  1170.         The REINDEX option on the FILE menu rebuilds all of the currently
  1171.    active indexes for the primary data base.  It does not rebuild indexes of
  1172.    any other open data base.  Thus, you first should select the desired
  1173.    primary data base.  Then execute the REINDEX option.
  1174.  
  1175.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 21
  1176.  
  1177.  
  1178.         The PACK option on the FILE menu rebuilds the primary data base and
  1179.    all associated indexes.  It also permanently deletes any records marked for
  1180.    deletion in the primary data base.  This option typically takes longer to
  1181.    execute because it rebuilds the data base and its indexes.  
  1182.  
  1183.         Before using either option, make certain that you have adequate disk
  1184.    space to house a duplicate of all your indexes and, for the PACK option,
  1185.    also your data base.
  1186.  
  1187.  
  1188.    Add/Edit Format Files
  1189.  
  1190.         Zephyr supports customized data entry screens for use in ADD and EDIT
  1191.    input modes.  Each screen, known in dBASE lingo as a format file, can be a
  1192.    single screen in size or many, many screens.  In addition, Zephyr supports
  1193.    an unlimited number of data entry screens per data base.  Designing these
  1194.    screens is somewhat akin to programming since you typically must define
  1195.    where the screens prompts should be displayed and where the user should
  1196.    enter data.  In the data base trade, these are known as says and gets. As
  1197.    their names imply, a say command tells Zephyr to just say something while a
  1198.    get tells Zephyr to get some information from the typist.
  1199.  
  1200.         If all this sounds boring, then try Zephyr's ADD/EDIT FORMAT option on
  1201.    the BUILD menu.  It automatically builds a very pretty data entry screen
  1202.    for you to match your current data base.  Select the desired primary data
  1203.    base, then choose the ADD/EDIT FORMAT option.  Your computer will hum for a
  1204.    few moments, and then Zephyr will display the finished product in Zephyr's
  1205.    editor window.  The file name of this data entry screen will be the same as
  1206.    your data base file with a file extension of .FMT.  If you are satisfied
  1207.    with Zephyr's work or if you don't know what you are doing, simply press
  1208.    <ESC> to leave the file as it displays.  
  1209.  
  1210.         After building a format file as outlined above, it automatically will
  1211.    be used whenever you choose the ADD or EDIT options on the INPUT menu. If
  1212.    you decide you would prefer not to use the custom screen, simply delete the
  1213.    format file from disk. This can be done from the BUILD PROGRAM option with-
  1214.    in Zephyr.  Type DELETE filename.FMT where filename is the same as the name
  1215.    of your primary data base.
  1216.  
  1217.         If you decide you wish to design format files on your own, we recom-
  1218.    mend you consider our MenuMaker software package.  It lets you draw a data
  1219.    entry screen as it should appear in your application.  It then writes the
  1220.    necessary code to generate the data entry screen in Zephyr.
  1221.  
  1222.         Format files can have any file name you desire although we recommend
  1223.    you maintain some relationship between the data base file names and their
  1224.    associated format files.  Otherwise, you may confuse which format files go
  1225.    with which data bases.  If you attempt to use a format file with the wrong
  1226.    data base, error messages almost certainly will begin appearing.
  1227.  
  1228.  
  1229.  
  1230.  
  1231.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 22
  1232.  
  1233.  
  1234.    Selecting Add/Edit Format
  1235.  
  1236.         Once you have built multiple format files, you need a means of
  1237.    choosing which one you want to use.  On the INPUT pull-down menu, there is
  1238.    an ADD/EDIT FORMAT option.  When this option is selected, Zephyr will
  1239.    display a FILE SELECTION WINDOW with the file names of all format files in
  1240.    the default directory.  Simply highlight the desired format file and press
  1241.    <ENTER>.  That format file will always be used with the current data base
  1242.    until another format file is chosen.
  1243.  
  1244.         Do not attempt to delete a format file from your hard disk after you
  1245.    have selected it as the lead format file.  In the unlikely event that you
  1246.    forget this advice, you may also need to delete FILENAME.MEM where FILENAME
  1247.    corresponds to the name of the primary data base file.  This file stores
  1248.    the currently active format file as well as your browse settings.  Once
  1249.    deleted, these obviously would have to be reentered.
  1250.  
  1251.         The <PgDn> and <PgUp> keys are used to maneuver through data entry
  1252.    screens.  When you reach the first screen or the last, Zephyr will automat-
  1253.    ically move you to the next closest record in your data base.
  1254.  
  1255.  
  1256.    Zephyr Command Mode
  1257.  
  1258.         For those wanting to experiment with programming, Zephyr provides
  1259.    access to command mode.  In this mode, standard FoxPro commands can be
  1260.    entered and executed just as if the user were writing a FoxPro program.  A
  1261.    couple words of warning are in order.  Command mode provides virtually
  1262.    complete access to the FoxPro data base engine.  This means you can easily
  1263.    destroy Zephyr's working environment.  It is your responsibility to assure
  1264.    that the entire FoxPro environment looks the same when you leave command
  1265.    mode as when you entered.  In particular, do not mess with Zephyr's win-
  1266.    dows!  Create your own if desired.  Otherwise, the results of executing
  1267.    Zephyr menu options may be totally unreliable.  
  1268.  
  1269.         Part of Zephyr's speed is accomplished by keeping all data bases and
  1270.    indexes open while Zephyr is active.  Make certain that you leave data
  1271.    bases as you found them.  Opening or closing files in command mode without
  1272.    restoring them to the state in which they were found will almost certainly
  1273.    confuse Zephyr since its internal house-keeping routines are not active
  1274.    while command mode is operational.
  1275.  
  1276.         To access command mode, choose the BUILD menu and press <PgDn> to
  1277.    highlight the COMMANDS option.  Then press <ENTER>.  The command mode
  1278.    prompt will display together with a window to execute your choices.
  1279.  
  1280.         To exit from command mode and return to the Zephyr main menu, press
  1281.    <ESC> at any time.
  1282.  
  1283.         We do not provide technical support for command mode; however, the
  1284.    FoxPro2 Made Simple reference manual will supply invaluable help.
  1285.  
  1286.  
  1287.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 23
  1288.  
  1289.  
  1290.    Configuration Settings
  1291.  
  1292.  
  1293.         Zephyr has a number of tailorable features.  These can be configured
  1294.    to meet your individual needs.  These features also make Zephyr more useful
  1295.    for our overseas friends.  By way of introduction, it should be noted that
  1296.    Zephyr always 'remembers' what you were doing immediately before you exited
  1297.    Zephyr.  Thus, whatever configuration settings are changed before exiting
  1298.    will be restored the next time you use Zephyr. NEVER turn off your computer
  1299.    without first exiting from Zephyr gracefully! 
  1300.  
  1301.         In addition to the default configuration which is stored automatically
  1302.    in a file named ZEPHYR.VUE, you also can create personalized configuration
  1303.    files.  This provides the ability to work with an unlimited combination of
  1304.    files and a variety of different configuration options.  These options
  1305.    could be tailored to various individual's needs or to particular appli-
  1306.    cations.
  1307.  
  1308.         Before saving a new configuration, open all desired data bases and
  1309.    indexes using the FILE pull-down menu options.  Set up any desired rela-
  1310.    tions as explained above.  Also choose the primary data base as well as the
  1311.    lead indexes for each open data base.  And set any desired FILTERs.
  1312.  
  1313.         Then select CONFIG DEFAULTS to view the listing of tailorable settings
  1314.    in Zephyr.  Most of the configurable options are toggled from one mode to
  1315.    another simply by pressing <ENTER>.  A few of the options provide either a
  1316.    menu of choices or a list which is rotated by pressing the <SPACE BAR>. 
  1317.    Choose the desired option and press <ENTER>.  In dBASE parlance, these
  1318.    options are SET commands. Press <F1> for more detailed help on the various
  1319.    configuration options.  If you accidentally reconfigure your system in an
  1320.    unworkable way, just delete ZEPHYR.VUE. 
  1321.  
  1322.  
  1323.    European Configuration
  1324.  
  1325.         For our foreign users, Zephyr provides a complete set of options to
  1326.    allow you to do things your way.  These DEFAULT options include the
  1327.    following:
  1328.  
  1329.              DATE           To set the date format for virtually any country
  1330.  
  1331.              CURRENCY       To set the currency symbol and Left/Right position
  1332.  
  1333.              POINT          To set the decimal point character
  1334.  
  1335.              SEPARATOR      To set the thousands separator in numbers
  1336.  
  1337.              MARK           To set the separator in dates
  1338.  
  1339.              TIME           To set 12 or 24 hour time format
  1340.  
  1341.  
  1342.  
  1343.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 24
  1344.  
  1345.  
  1346.         All of these options are stored as part of the default config file.
  1347.  
  1348.         In addition, for European languages which use characters with diacrit-
  1349.    ical marks, the FoxPro data base engine includes support for indexing these
  1350.    additional characters correctly.  To index any character field which
  1351.    includes characters with diacritical marks, create a COMPLEX index and use
  1352.    the format shown below.  Let's assume the field to be indexed is the
  1353.    LASTNAME field in your data base.
  1354.  
  1355.                             SYS(15,EUROPEAN,LASTNAME)
  1356.  
  1357.  
  1358.  
  1359.    Zephyr Edit Checks
  1360.  
  1361.         Zephyr includes one of the most powerful error detection systems
  1362.    available in a menu-driven data base management system.  Zephyr edit checks
  1363.    enable you to build a data base of "rules" which must be passed before data
  1364.    can be added to or changed in any Zephyr data base.
  1365.  
  1366.         Zephyr edit checks execute when all of the following are met:
  1367.  
  1368.  
  1369.         1.   The primary data file name must be less than 8 characters.
  1370.  
  1371.         2.   A custom data entry screen (Add/Edit Format) must exist.
  1372.  
  1373.         3.   An edit checks data base must exist with at least 1 record.
  1374.  
  1375.         4.   Edit checks do NOT operate in BROWSE mode.
  1376.  
  1377.         5.   The edit checks file is NOT open while primary file is in use.
  1378.  
  1379.  
  1380.         The edit checks data base is a standard Zephyr data base file.  Its
  1381.    file name must be the same as the primary data base with the added number
  1382.    "1" at the end of the file name.  For example, if the primary data base is
  1383.    SAMPLE, then the corresponding edit checks file would be named SAMPLE1. 
  1384.    The file must have at least two fields: the first specifies error condi-
  1385.    tions and the second, error messages.  The field names do not matter so
  1386.    long as they are legal Zephyr field names.
  1387.  
  1388.         Zephyr will build the edit checks file for you automatically.  First,
  1389.    select the primary data base. Then choose EDIT CHECKS on the BUILD menu. If
  1390.    all the conditions specified on the previous page are met, Zephyr will
  1391.    create the necessary edit checks file and place you in append mode.  You
  1392.    then can add records to the file which specify when an error condition
  1393.    exists.  A few examples may clear the fog.
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 25
  1400.  
  1401.  
  1402.         Suppose the primary data base contains a LASTNAME field.  We want to
  1403.    make certain that entries are made in these fields.  In other words, we
  1404.    want an error message to display when the LASTNAME field is left blank.  In
  1405.    the first field ERRORWHEN, define the error condition as follows: 
  1406.  
  1407.                                  EMPTY(LASTNAME)
  1408.  
  1409.  
  1410.         EMPTY() is a FoxPro function which returns True if the field identi-
  1411.    fied inside the parentheses is empty.  In the second field ERRORMSG, we
  1412.    would enter an error message to be displayed to the end-user when the error
  1413.    exists: 
  1414.  
  1415.                        The LASTNAME field cannot be blank.
  1416.  
  1417.  
  1418.         Press <ENTER> to add another record to the file, or press <ESC> when
  1419.    finished.  This file will be closed automatically when you exit from EDIT
  1420.    CHECKS.
  1421.  
  1422.         Special note:  Since the edit checks files are standard data bases,
  1423.    they can be opened and manipulated just like any other file.  Remember to
  1424.    close them before switching to or using the primary data base.  
  1425.  
  1426.  
  1427.  
  1428.    Zephyr Calculated Fields
  1429.  
  1430.         The edit checks table also may be used to provide calculated fields
  1431.    support.  This enables a developer to calculate values for particular
  1432.    fields without user input.  As with edit checks, these calculated fields
  1433.    only function in EDIT and ADD modes.
  1434.  
  1435.         To create a calculated field, specify a standard dBASE replace command
  1436.    in the ErrorWhen field.  The syntax is as follows:
  1437.  
  1438.                        REPLACE FIELDNAME WITH VALUE 
  1439.  
  1440.         Remember to surround the value with quotation marks if the field is a
  1441.    character field.  To replace a date field, the value must equate to a date
  1442.    or may be converted using the CTOD() function.  For example, to replace a
  1443.    date field named FILINGDT with May 2, 1989, the expression would be --
  1444.  
  1445.                   REPLACE FILINGDT WITH CTOD("05/02/89")
  1446.  
  1447.         If desired, you may specify the logical condition when the replacement
  1448.    will take place in the ErrorMsg field.  If this field is left blank, the
  1449.    replacement will be executed whenever a record is saved.  In the example
  1450.    above, if you only wished to execute the replacement when the FILINGDT
  1451.    field was left blank, the syntax would be EMPTY(FILINGDT).
  1452.  
  1453.  
  1454.  
  1455.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 26
  1456.  
  1457.  
  1458.         For more advanced users, note that the REPLACE command can be used to
  1459.    calculate fields in related data bases as well as the primary data base. 
  1460.    The only syntax change would be to precede the fieldname with the appropri-
  1461.    ate file name and separator, e.g. FILENAME->fieldname.
  1462.  
  1463.  
  1464.    Building Pre-Defined Output
  1465.  
  1466.         Zephyr provides a handy utility for designing a table of output
  1467.    entries which you use often.  For example, there may be a series of monthly
  1468.    reports which you want to execute once a month without having to remember
  1469.    which reports to run and which files and filters to use.  Zephyr handles
  1470.    this painlessly by creating a data base (ZEPHYR.DBF) to store an unlimited
  1471.    number of predefined output templates.  
  1472.  
  1473.         To create entries in the predefined output file, follow these simple
  1474.    steps.  First, create the necessary data bases, reports, labels, and form
  1475.    letters to support the output you wish to generate.  Then create a view
  1476.    file (CONFIG SAVE) after selecting the files, indexes, relations, and
  1477.    filters which will apply with this application.  Then choose BUILD PRE-
  1478.    DEFINED to add an entry to the predefined output file, ZEPHYR.DBF.
  1479.  
  1480.         Entries in the predefined output file consist of a name for the
  1481.    particular output. It will appear on the pop-up menu when OUTPUT PRE-
  1482.    DEFINED is chosen.  Enter any desired description in the CHOICE field.
  1483.  
  1484.         In the VIEW field, enter the name of the Zephyr view file which
  1485.    contains the file, index, filter, and relation settings described above. 
  1486.    If this field is left blank, the current default settings will be used.  If
  1487.    ZEPHYR is inserted in the VIEW field, the default settings when you last
  1488.    exited Zephyr will be used.  If an entry is specified, Zephyr will automat-
  1489.    ically load this view before executing the commands entered below.  When
  1490.    the commands finish executing, Zephyr will restore the environment as it
  1491.    existed when the pre-defined output selection was made.
  1492.  
  1493.         The four other fields COMMAND1 through COMMAND4 permit you to enter an
  1494.    unlimited variety of FoxPro commands.  Each of these fields is 250 charac-
  1495.    ters in length and can stored multiple commands.  Simply separate each
  1496.    command from the next with the vertical bar character (|).  These commands
  1497.    could be used to create separate windows, prompt the user for input, or run
  1498.    reports, labels, form letters, and lists.  Your imagination is about the
  1499.    only limitation with Zephyr pre-formatted output.  Press F1 for help with
  1500.    various FoxPro command syntax or consult FoxPro2 Made Easy.
  1501.  
  1502.         Press <CTRL-W> to save your entry.  If you previously have made
  1503.    entries which you would like to modify, use <PgUp> to scroll through the
  1504.    records previously entered.
  1505.  
  1506.         If you wish to exit from the pre-defined output file without making an
  1507.    entry, simply press <ESC>.  Note: ZEPHYR.DBF is a standard FoxPro data base
  1508.    which can be opened like any other file.  Close it before using Pre-Defined
  1509.    Output!
  1510.  
  1511.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 27
  1512.  
  1513.  
  1514.    Zephyr Pre-Defined Output
  1515.  
  1516.         Once you have defined your predefined output specifications as
  1517.    described above, execute any of them by choosing OUTPUT PRE-DEFINED on
  1518.    Zephyr's pull-down menus.  When chosen, a PRE-DEFINED OUTPUT WINDOW will
  1519.    display listing the CHOICES as you defined them.  Highlight the choice
  1520.    desired and press <ENTER> to execute your choice.  Or press <ESC> to exit
  1521.    without making a selection.  
  1522.  
  1523.         As noted above, if a view has been defined in setting up the choice
  1524.    that is selected, then Zephyr automatically will restore the working
  1525.    environment which existed when predefined output was chosen.  If no view is
  1526.    defined for a particular output choice, then Zephyr will execute the
  1527.    commands with the existing environment.  Note:  If the predefined output
  1528.    commands change the existing environment and no view file is specified,
  1529.    Zephyr will not restore the existing environment when the output finishes
  1530.    executing!
  1531.  
  1532.  
  1533.    Keyboard Macros
  1534.  
  1535.         The FoxPro data base engine includes a sophisticated keyboard macro
  1536.    facility which can be accessed within Zephyr.  Keyboard macros work much
  1537.    like a tape recorder.  They provide a means of storing a series of key-
  1538.    strokes which can be 'played back' when a special key or key combination
  1539.    (which you define) is pressed.  These macros can be of any length and
  1540.    complexity.  They can be used to navigate through all of Zephyr's pull-down
  1541.    menus, to store repetitive text, to open browse windows, to change filters
  1542.    or lead indexes, or virtually anything else which could be done using
  1543.    Zephyr.  Your imagination is about the only limit to the power of Zephyr
  1544.    macros.  Just remember that a macro executes in exactly the way it was
  1545.    defined every time.  Thus, if you move to a different location in Zephyr
  1546.    and execute the same macro, it may not function the same way.  
  1547.  
  1548.         Since you always can append to an existing macro, start small.  Test
  1549.    the macro to make sure it does what you intended, then add another piece to
  1550.    it.  Zephyr macros are saved with the same file name (with .FKY file
  1551.    extension) and at the same time that you elect to save a view with the
  1552.    CONFIG SAVE option.  If you do not save a configuration before exiting
  1553.    Zephyr, then whatever macros were defined during your current work session
  1554.    are lost forever.  This may or may not be what you intended.
  1555.  
  1556.         To define a macro, position to where you will execute the macro once
  1557.    defined.  Press <SHIFT-F10> to pop-up the MACRO KEY DEFINITION DIALOG BOX. 
  1558.    Press the key or key combination that will be used to playback the macro. 
  1559.    Do not change the macro name assigned to this macro.  Now press <CTRL-
  1560.    ENTER> to begin recording your macro.  The dialog box will disappear.  Now
  1561.    press all the keys you desire to record into this macro.
  1562.  
  1563.         When you wish to stop recording your macro, press <SHIFT-F10> again. 
  1564.    When the dialog appears, if you wish to save your macro in memory (not to
  1565.    disk!), highlight the OK option and press <ENTER>. Do NOT erase ZEPHYR.XYZ!
  1566.  
  1567.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 28
  1568.  
  1569.  
  1570.    Zephyr Messenger
  1571.  
  1572.  
  1573.         On the INPUT pull-down menu, the last option is MESSENGER.  This
  1574.    option provides a means of displaying messages in a MESSAGE WINDOW within
  1575.    Zephyr.  To display a message, select the MESSENGER option.  The screen
  1576.    will flash momentarily.  Type the message you wish to display and press
  1577.    <ENTER>.  The message will display in the message window.
  1578.  
  1579.         While this function standing alone is quite useless, it becomes very
  1580.    powerful when used in conjunction with keyboard macros.  Indeed, we are in
  1581.    the process of developing a complete Zephyr tutorial using a combination of
  1582.    macros and messages.
  1583.  
  1584.         As noted above, in designing macros particular care has to be exer-
  1585.    cised to assure that a macro functions correctly regardless of one's
  1586.    location within the Zephyr menu system.  This is especially important if
  1587.    you wish to imbed messages within your macros.  The following key sequence
  1588.    will assure that the cursor is positioned on the MESSENGER option from
  1589.    anywhere on the Zephyr main menu.  Press <HOME> <HOME> I <PgDn>.
  1590.  
  1591.         While the messenger option provides a 5-8 second pause following
  1592.    display of a message, this can be shortened or eliminated by pressing any
  1593.    key.  This poses a problem if you wish to imbed messages within a macro
  1594.    since the next keystroke within the macro would immediately remove the
  1595.    message from the display.  You can avoid this result by taking advantage of
  1596.    the FoxPro macro pause option.  Record the message in your macro in the
  1597.    normal way described above.  Then press <SHIFT-F10>.  When the dialog
  1598.    appears, use the <TAB> key to move to Seconds field and press <ENTER>. 
  1599.    <TAB> over to the time field and type in the pause delay and press <ENTER>. 
  1600.    Now press P to imbed a pause in your macro. 
  1601.  
  1602.  
  1603.  
  1604.                               Zephyr Math Functions
  1605.  
  1606.  
  1607.    Count
  1608.  
  1609.         Zephyr's count function is accessed from the main menu by selecting
  1610.    OUTPUT COUNT.  It provides a simple means of counting either all records in
  1611.    the data base or a selected group which has been defined using the Zephyr
  1612.    filter option.  When this function is chosen, the FILTER SELECTION WINDOW
  1613.    will display permitting you to specify the group of records to be counted. 
  1614.    To leave the filter as it is, press <ESC>.  Or type in the desired filter
  1615.    expression and press <CTRL-ENTER>. The count will be displayed.
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 29
  1624.  
  1625.  
  1626.    Field Sum
  1627.  
  1628.         Zephyr's sum function is accessed by selecting OUTPUT SUM from the
  1629.    main menu.  It permits the user to add the values of any numeric field in
  1630.    the primary data base for either all records or a selected group of
  1631.    records. When the FILTER SELECTION WINDOW displays, specify the desired
  1632.    filter or leave blank for all records. Press <CTRL-ENTER>.  When the
  1633.    NUMERIC FIELD SELECTION WINDOW displays, highlight the field to be summed.
  1634.    Then press <ENTER>.  The selected records for the specified field will be
  1635.    summed.
  1636.  
  1637.  
  1638.    Field Average
  1639.  
  1640.         Zephyr's average function is accessed by selecting the OUTPUT AVERAGE
  1641.    option from the main menu.  It permits the user to average the values of
  1642.    any numeric field in the primary data base for either all records or a
  1643.    selected group of records. When the FILTER SELECTION WINDOW displays, spec-
  1644.    ify the desired filter or leave it blank to select all records. Press
  1645.    <CTRL-ENTER>.  When the NUMERIC FIELD SELECTION WINDOW displays, highlight
  1646.    the field to be averaged. Then press <ENTER>.  The selected records for the
  1647.    specified field will be averaged.
  1648.  
  1649.  
  1650.    Calculated Fields
  1651.  
  1652.         Zephyr provides the facility to compute many mathematical calculations
  1653.    on the fly as part of the reporting or browse process.  While the results
  1654.    of these calculations are not stored in the data bases themselves, the
  1655.    calculations are performed at machine speed. Oftentimes, you may find it
  1656.    more convenient to perform these calculations as part of the report or
  1657.    browse process rather than attempting to write a program.  In addition to
  1658.    standard math functions, virtually all financial functions are supported in
  1659.    the FoxPro function library and hence are available for your use within
  1660.    Zephyr.  
  1661.  
  1662.         The Zephyr HELP file provides additional documentation on many of the
  1663.    financial functions.  See the HELP file explanation of the BROWSE command
  1664.    for the appropriate syntax in creating calculated fields in a browse
  1665.    window.  FoxPro2 Made Easy is another good reference source.
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 30
  1680.  
  1681.  
  1682.                                   Zephyr Tools
  1683.  
  1684.    Calculator
  1685.  
  1686.         Zephyr's calculator provides the standard functionality of the $9.95
  1687.    WalMart special calculator.  The calculator can be accessed in two ways.
  1688.    From the Zephyr main menu, select EXECUTE CALCULATOR to pop-up the calcula-
  1689.    tor window.  When finished, press <ESC> twice to exit.
  1690.  
  1691.         While in most other windows of the Zephyr program, you can access the
  1692.    calculator by pressing <ALT-S> then C.  Press <ESC> once to exit.
  1693.  
  1694.  
  1695.    Calendar/Diary
  1696.  
  1697.         Zephyr also provides a sophisticated calendar and diary system which
  1698.    can be used to maintain appointments and schedules.  The calendar/diary
  1699.    system can be accessed in two ways.  From the Zephyr main menu, choose
  1700.    EXECUTE DIARY to pop-up the calendar/diary window. Press <ESC> twice to
  1701.    exit.  In most other windows of Zephyr, press <ALT-S> then D.
  1702.  
  1703.         Once activated, the calendar will pop-up and display a calendar for
  1704.    the current month with today's date highlighted.  You can move through the
  1705.    calendar month-by-month by pressing <PgDn> to move forward a month at a
  1706.    time or <PgUp> to move back month by month.  Or you can move forward a year
  1707.    at a time by pressing <Shift-PgDn> or backward by pressing <Shift-PgUp>. 
  1708.    To return to today, press T.
  1709.  
  1710.         To use the diary, position to the desired date, then press <TAB> to
  1711.    move to the diary.  Type any desired entries and press <Shift-TAB> to
  1712.    return to the calendar.  Dates in which appointments are scheduled will be
  1713.    shaded in the calendar display.  <ESC> exits from the calendar/diary.
  1714.  
  1715.  
  1716.    Puzzle
  1717.  
  1718.         The famous FoxPro puzzle is designed to provide you with an electronic
  1719.    means of wasting enormous amounts of time.  The puzzle can be accessed in
  1720.    two ways.  From the Zephyr main menu, select EXECUTE PUZZLE or from other
  1721.    windows press <ALT-S> then Z.  
  1722.  
  1723.         Use the cursor keys to move the numbers until they are sorted properly
  1724.    left to right and top to bottom.  To shuffle the numbers, type S at any
  1725.    time.  <ESC> exits from the puzzle at any time.  If accessed from the main
  1726.    menu, press <ESC> a second time to return to the main menu.
  1727.  
  1728.  
  1729.    Text Editor
  1730.  
  1731.         A sophisticated editor is included within Zephyr.  It can be used to
  1732.    create or edit any ASCII file of virtually any size.  From the Zephyr main
  1733.    menu, choose EXECUTE EDITOR.  You will be prompted whether to create a NEW
  1734.  
  1735.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 31
  1736.  
  1737.  
  1738.    file or edit an OLD one.  Use the <SPACE BAR> to toggle between the op-
  1739.    tions.  Then press <ENTER>.  Type in the new file name or highlight the
  1740.    desired old file, and press <ENTER>.  Unless a file extension is specified,
  1741.    Zephyr will use the extension of .TXT.
  1742.  
  1743.         A pull-down EDITOR SELECTION WINDOW is accessed by pressing <ALT-E>. 
  1744.    You can tailor the editor to meet your needs by selecting the Preferences
  1745.    option from the pull-down menu.  <TAB> between the options and press
  1746.    <ENTER> to turn the various options on or off.  The editor supports most of
  1747.    the principle functions found in most word processors.
  1748.  
  1749.         Cut and paste are supported within the editor.  To highlight a block
  1750.    of text, position cursor to the start of text to be blocked, then press and
  1751.    hold the <SHIFT> key while using the cursor keys to highlight the desired
  1752.    block of text. 
  1753.  
  1754.         To copy the blocked text into the paste buffer, press <CTRL-C>.  If
  1755.    you wish to then delete the block of text, press <DEL>. Otherwise, move any
  1756.    cursor key, and the block highlighting will disappear.
  1757.  
  1758.         To paste the desired block after copying it to the paste buffer, move
  1759.    the cursor to the desired position to insert the text, and press <CTRL-V>. 
  1760.    The block will also remain in the paste buffer until replaced by a new
  1761.    block.  Thus, a block can be pasted to more than one place in the document.
  1762.  
  1763.         Global search and replace also are supported.  Press <CTRL-F> to pop-
  1764.    up the find and replace window.  Type in the desired text to find.  Then
  1765.    <TAB> to the replace field and type in the desired replacement text.  Press
  1766.    <CTRL-ENTER> to execute the first find.  Press <CTRL-E> to execute the
  1767.    first replace, or press <CTRL-G> to skip the replace and move to the next
  1768.    find.  Continue this process until the end of document.
  1769.  
  1770.         The standard editing keys function within the editor.  <PgDn> and
  1771.    <PgUp> move through a document one screen at a time.  <CTRL-End> moves to
  1772.    the end of the document, and <CTRL-Home> moves to the top of the document.
  1773.  
  1774.         To save a document, press <CTRL-Enter> or <CTRL-W>. To end an editing
  1775.    session and leave the document as the original, press <ESC>.
  1776.  
  1777.         The editor automatically makes a copy of the original document with a
  1778.    file extension of .BAK before saving the new version unless you disable
  1779.    this feature in the preferences menu discussed above.  Make certain that
  1780.    your hard disk has adequate space to store both the original and the
  1781.    duplicate, or unpredictable results may be experienced including damage to
  1782.    either your original or new document!
  1783.  
  1784.         Choosing the BUILD FORM LETTER option also accesses the editor
  1785.    permitting you to type any desired text in an existing or new form.  Using
  1786.    this option, the file extension defaults to .TXT
  1787.  
  1788.         The editor also is used whenever you access a MEMO field within
  1789.    Zephyr.  This allows text to be blocked, copied, or moved.
  1790.  
  1791.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 32
  1792.  
  1793.  
  1794.                              Other Product Offerings
  1795.  
  1796.  
  1797.    WAMPUM
  1798.  
  1799.         One of the data base granddaddy's in the ShareWare market, WAMPUM
  1800.    provides the richest assortment of data base management functions for the
  1801.    lowest cost of any data base product in the world. It provides fully
  1802.    relational data base management using dBASE III-compatible data bases. 
  1803.    Versions are available to support Clipper, dBASE III Plus, FoxBASE+, and
  1804.    FoxPro indexes.  In addition, NetBIOS-compatible network versions are
  1805.    available in all index types. 
  1806.  
  1807.  
  1808.    dLITE Desktop File Manager
  1809.  
  1810.         dLITE is a pop-up desktop file manager which permits a user to access
  1811.    up to 10 different dBASE III-compatible data base applications from within
  1812.    almost any text-based application.  In addition to powerful file management
  1813.    functions, it also includes a unique PASTE function permitting users to
  1814.    extract data from any data base and stuff it into a word processing
  1815.    document, spreadsheet, or any other foreground application.  Requirements: 
  1816.    160K or 100K with 3.2 or 4.0 EMS memory, DOS 2.1 or higher, and dual
  1817.    floppies or hard disk.
  1818.  
  1819.  
  1820.    MenuMaker
  1821.  
  1822.         MenuMaker is a data entry screen generator for use with WAMPUM, dLITE,
  1823.    and Zephyr. The developer draws the data entry screen as it should appear
  1824.    to end users.  Then MenuMaker writes the necessary code to support WAMPUM,
  1825.    dLITE, or Zephyr applications.  Requirements:  320K of RAM, DOS 2.1 or
  1826.    higher, and dual floppies or a hard disk.
  1827.  
  1828.  
  1829.    Badge-O-Magic
  1830.  
  1831.         Badge-O-Magic is a dBASE-compatible, badge and nametag generator
  1832.    designed for use with an IBM PC-compatible computer and an HP LaserJet+, HP
  1833.    LaserJet II (all models), HP LaserJet III, or 100% compatible. Using any
  1834.    dBASE III or IV data base (one is included with the software), Badge-O-
  1835.    Magic generates one to four line badges with an optional header and footer
  1836.    line. Badges can be printed using type styles of 20 to 40 points.
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 33
  1848.  
  1849.  
  1850.                                      Credits
  1851.  
  1852.  
  1853.    Special Thanks!
  1854.  
  1855.         Our special tip of the hat to Fox Software for producing truly the
  1856.    finest data base engine in the world!  When you've mastered Zephyr, you
  1857.    need to give serious consideration to purchasing FoxPro.  Zephyr itself
  1858.    stands as a tribute to what can be done using the FoxPro programming
  1859.    language.  Not only is the data base software the best in the business, but
  1860.    the people who produce it and support it are by far the most knowledgeable
  1861.    and most helpful in the entire industry.  Reports of even the slightest bug
  1862.    always have been met with pleasant appreciation and a prompt fix, sometimes
  1863.    overnight.
  1864.  
  1865.  
  1866.    Trademarks
  1867.  
  1868.  
  1869.         This documentation references a number of products and companies whose
  1870.    names are trademarks or registered trademarks of their respective owners or
  1871.    companies.  The references in this documentation are solely for purposes of
  1872.    identification.  No claim is made to ownership of anyone else's magic
  1873.    words.  A partial list of the trademarks and their owners follows:
  1874.  
  1875.    Zephyr, WAMPUM,           Ward Mundy Software
  1876.      dLITE
  1877.  
  1878.      Fox, FoxBASE+,          Fox Holdings, Inc.
  1879.      FoxPro
  1880.  
  1881.      dBASE, dBASE any-       Borland Intl.
  1882.      thing
  1883.  
  1884.      Clipper                 Nantucket Corp.
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.    Zephyr User's Guide       (c) Copyright Ward Mundy, 1989-1992.      Page 34
  1904.  
  1905.  
  1906.                               ZEPHYR 4.0 ORDER & INVOICE 
  1907.                 
  1908.                 For ordering assistance, call 10288-0-700-WARD-MUNDY
  1909.                                                               
  1910.         +-------------------------------------------------------------------+ 
  1911.         | User Name      |                                                  | 
  1912.         |----------------|--------------------------------------------------| 
  1913.         | Address1       |                                                  | 
  1914.         |----------------|--------------------------------------------------| 
  1915.         | Address2       |                                                  | 
  1916.         |----------------|--------------------------------------------------| 
  1917.         | City State ZIP |                                                  | 
  1918.         +-------------------------------------------------------------------+ 
  1919.                                                           
  1920.         +-------------------------------------------------------------------+ 
  1921.         | Quantity | Description                          |Item Cost| Total | 
  1922.         |----------|--------------------------------------|---------|-------| 
  1923.         |          | Zephyr 4.0 Single-User License with  |    50.00|       | 
  1924.         |          | soft-bound manual & current version  |         |       | 
  1925.         |----------|--------------------------------------|---------|-------| 
  1926.         |          | Zephyr 4.0 Network License           |   250.00|       | 
  1927.         |----------|--------------------------------------|---------|-------| 
  1928.         |          | FoxPro2 Made Easy (U.S. only)        |    30.00|       | 
  1929.         |----------|--------------------------------------|---------|-------| 
  1930.         |          | WAMPUM Single-User License           |    50.00|       | 
  1931.         |          | Index: ( ) Clipper ( ) dB3+          |         |       | 
  1932.         |----------|--------------------------------------|---------|-------| 
  1933.         |          | WAMPUM Network License               |   250.00|       | 
  1934.         |          | Index: ( ) Clipper ( ) dB3+          |         |       | 
  1935.         |----------|--------------------------------------|---------|-------| 
  1936.         |          | WAMPUM Soft-Bound User Guide         |    20.00|       | 
  1937.         |----------|--------------------------------------|---------|-------| 
  1938.         |          | dLITE Single-User Lic & manual       |    30.00|       | 
  1939.         |----------|--------------------------------------|---------|-------| 
  1940.         |          | MenuMaker Screen Generator           |    20.00|       | 
  1941.         |----------|--------------------------------------|---------|-------| 
  1942.         |          | Badge-O-Magic Single-User            |    50.00|       | 
  1943.         |----------|--------------------------------------|---------|-------| 
  1944.         |          | Badge-O-Magic Deluxe Version         |    99.00|       | 
  1945.         |----------|--------------------------------------|---------|-------| 
  1946.         |   ****   | Shipping and Handling per order      | 5.00 U.S|       | 
  1947.         |   ****   | $5 U.S. / $10 Canada & foreign       |10.00 for|       | 
  1948.         |==========|======================================|=========|=======| 
  1949.         |          | GRAND TOTAL w/ SHIPPING              |*********|       | 
  1950.         +-------------------------------------------------------------------+ 
  1951.                  Include check or money order in US dollars payable to: 
  1952.                     Ward Mundy, PO Box 1169, Atlanta, GA 30301 USA. 
  1953.  
  1954. For credit card orders:  (  ) VISA   (  ) MasterCard  Expire Date _____________
  1955.  
  1956. Signed: ______________________________  Card Number  __________________________
  1957.  
  1958.   ***  For fastest service, FAX your credit card order to 404/237-1167.   ***
  1959.