home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / zephyr2.zip / INSTAL2.EXE / lha / ZEPHYR / ZEPHYR.DOC < prev    next >
Text File  |  1990-12-24  |  95KB  |  1,978 lines

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