home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / fe50_d.zip / FE5DOC.EXE / FE5.DOC next >
Text File  |  1991-04-23  |  725KB  |  18,026 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.    
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.                                File Express
  18.  
  19.                                User's Guide 
  20.  
  21.  
  22.  
  23.  
  24.  
  25.                                     by
  26.                                David Berdan
  27.                                    and
  28.                                Ken McGinnis
  29.  
  30.  
  31.  
  32.  
  33.                                 Version 5
  34.  
  35.  
  36.                        For MS-DOS Operating Systems
  37.  
  38.                          Expressware Corporation
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.        Information in this  document is subject to change without notice
  47.        and does not  represent a commitment by  Expressware Corporation.
  48.        The software described in this  User's Guide is furnished under a
  49.        license agreement  and may be  used or copied only  in accordance
  50.        with the terms of that agreement.
  51.  
  52.  
  53.    
  54.                          Expressware Corporation
  55.                               P.O. Box 1800
  56.                             Duvall, WA  98019
  57.  
  58.  
  59.  
  60.  
  61.  
  62.        (C) Copyright Expressware Corporation, 1991.  All rights reserved
  63.  
  64.        Printed and bound in the United States of America.
  65.  
  66.  
  67.  
  68.  
  69.  
  70.        File Express, ExpressCalc, ExpressCheck, On-Side and ExpressGraph
  71.        are trademarks of Expressware Corporation.
  72.  
  73.        IBM  is a registered trademark of International Business Machines
  74.        Corporation.
  75.  
  76.        Lotus is a registered trademark of Lotus Development Corporation.
  77.  
  78.        dBASE III is a registered trademark of Ashton-Tate Corporation.
  79.  
  80.        WordPerfect is a registered trademark of WordPerfect Corporation.
  81.  
  82.        Part No. FE5-1991 
  83.  
  84.        ISBN 1-878012-05-3
  85.    
  86.  
  87.  
  88.  
  89.    
  90.  
  91.        Phone Numbers
  92.  
  93.        800-753-FILE
  94.             Toll free order line.
  95.             (orders only, no technical support available on this line)
  96.             7:00 a.m. to 5:00 p.m. Pacific Time
  97.             Monday through Friday
  98.  
  99.        206-788-0932
  100.             Technical support number
  101.             7:00 a.m. to 5:00 p.m. Pacific Time
  102.             Monday through Friday
  103.  
  104.        206-788-4493
  105.             Fax line
  106.             24 hours a day
  107.             Available for technical support and orders
  108.  
  109.        206-788-4008
  110.             Bulletin Board System
  111.             24 hours a day
  112.             Seven days a week
  113.             Available   for  technical   support,   tips,  orders,   and
  114.             downloading
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.                                                                        i
  143.  
  144.  
  145.  
  146.    
  147.   Some New Features
  148.  
  149.        *    An  all-new  report  writer  lets  you  define  much  larger
  150.             reports.  Expanded  Title and Header  sections.  New  Footer
  151.             section  has been  added.   Long  fields can  be printed  as
  152.             blocks with automatic word wrap.  Three  subtotal levels are
  153.             now permitted.  
  154.  
  155.        *    Fields  can  now  be easily  lengthened,  shortened,  added,
  156.             deleted and moved without cloning the database. 
  157.  
  158.        *    Multiple indexes (up  to five) are automatically  updated as
  159.             new records are added.
  160.  
  161.        *    Quick  Scan  browse  mode  now  lets  you edit  the  records
  162.             displayed.
  163.  
  164.        *    The Paint Screen option allows up to ten input screens to be
  165.             laid out as desired.
  166.  
  167.        *    36 Macro keys are now available.
  168.  
  169.        *    Keyboard  macros allow  more  keystrokes,  use more  special
  170.             keys, and can pause for input while executing.
  171.  
  172.        *    Printer  support for more than 250 printers, including laser
  173.             printers.
  174.  
  175.        *    Expanded  import and export  sections now include  dBASE and
  176.             Lotus 1-2-3 file support.
  177.  
  178.        *    Expanded  Quick Labels  use  the full  power  of the  Report
  179.             generator.
  180.  
  181.        *    Separate  Setup  program  lets  you  personalize  the  whole
  182.             program.
  183.  
  184.        *    The manual has been expanded. 
  185.  
  186.    
  187.        We hope you enjoy  using the new File Express as much  as we have
  188.        enjoyed creating it.  If there are still more  features you would
  189.        like to see added, please fill out  the User Response Form at the
  190.        back of this manual and send it to us along with your comments. 
  191.  
  192.        Thank you for your continued support. 
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.   ii
  200.  
  201.  
  202.  
  203.  
  204.                                                                 CONTENTS
  205.   ----------------------------------------------------------------------
  206.  
  207.                             Table of Contents
  208.  
  209.  
  210.  
  211.   Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . .    1
  212.        Registration . . . . . . . . . . . . . . . . . . . . . . . .    1
  213.        What Is File Express?  . . . . . . . . . . . . . . . . . . .    1
  214.        Is It Easy To Use?   . . . . . . . . . . . . . . . . . . . .    2
  215.        A New Vocabulary   . . . . . . . . . . . . . . . . . . . . .    2
  216.        Will It Run On My Computer?  . . . . . . . . . . . . . . . .    3
  217.        How Do I Get Started?  . . . . . . . . . . . . . . . . . . .    4
  218.  
  219.   Installing File Express . . . . . . . . . . . . . . . . . . . . .    5
  220.        Computers With Hard Disks  . . . . . . . . . . . . . . . . .    5
  221.        Computers With RAM Disks . . . . . . . . . . . . . . . . . .    6
  222.        Computers With Color Monitors  . . . . . . . . . . . . . . .    6
  223.        Computers On Local Area Networks   . . . . . . . . . . . . .    6
  224.  
  225.   Starting File Express . . . . . . . . . . . . . . . . . . . . . .    8
  226.        From a Hard Drive  . . . . . . . . . . . . . . . . . . . . .    8
  227.        From a Diskette Drive  . . . . . . . . . . . . . . . . . . .    8
  228.        Command Line Options   . . . . . . . . . . . . . . . . . . .   11
  229.  
  230.   Backing Up Your Data  . . . . . . . . . . . . . . . . . . . . . .   14
  231.        Data Is Vulnerable   . . . . . . . . . . . . . . . . . . . .   14
  232.        How Much Is Your Data Worth?   . . . . . . . . . . . . . . .   15
  233.        Daily Backups  . . . . . . . . . . . . . . . . . . . . . . .   15
  234.        Offsite Backups  . . . . . . . . . . . . . . . . . . . . . .   15
  235.        Backing Up A Diskette  . . . . . . . . . . . . . . . . . . .   16
  236.        Backing Up Databases On A Hard Disk  . . . . . . . . . . . .   17
  237.        Backing Up A Complete Hard Disk  . . . . . . . . . . . . . .   18
  238.        Tape Backup  . . . . . . . . . . . . . . . . . . . . . . . .   19
  239.  
  240.   Keyboard Conventions  . . . . . . . . . . . . . . . . . . . . . .   20
  241.        The <Esc> Key  . . . . . . . . . . . . . . . . . . . . . . .   20
  242.        Single Keystroke Input   . . . . . . . . . . . . . . . . . .   20
  243.        Input Fields Of Two Or More Characters   . . . . . . . . . .   21
  244.        Using a Mouse  . . . . . . . . . . . . . . . . . . . . . . .   22
  245.        Context-Sensitive Help System  . . . . . . . . . . . . . . .   24
  246.        Information Window . . . . . . . . . . . . . . . . . . . . .   25
  247.        Pop up Calculator  . . . . . . . . . . . . . . . . . . . . .   26
  248.  
  249.   A File Express Tutorial . . . . . . . . . . . . . . . . . . . . .   27
  250.        Instructions . . . . . . . . . . . . . . . . . . . . . . . .   27
  251.        Section One: A Brief Tour of File Express  . . . . . . . . .   29
  252.             Lesson One: Opening A Database  . . . . . . . . . . . .   29
  253.             Lesson Two: Finding A Record  . . . . . . . . . . . . .   34
  254.             Lesson Three: Print a Report  . . . . . . . . . . . . .   37
  255.  
  256.  
  257.                                                                      iii
  258.  
  259.  
  260.  
  261.  
  262.   CONTENTS
  263.   ----------------------------------------------------------------------
  264.  
  265.        Section Two: Defining a New Database . . . . . . . . . . . .   39
  266.             Lesson One: Defining a New Database . . . . . . . . . .   39
  267.             Lesson Two: Adding New Records  . . . . . . . . . . . .   46
  268.             Lesson Three: Painted Screens . . . . . . . . . . . . .   51
  269.             Lesson Four: Create an Index  . . . . . . . . . . . . .   61
  270.             Lesson Five: Quick Scan . . . . . . . . . . . . . . . .   65
  271.             Lesson Six: Create a Report . . . . . . . . . . . . . .   67
  272.  
  273.   Opening a Database  . . . . . . . . . . . . . . . . . . . . . . .   76
  274.  
  275.   Defining A New Database . . . . . . . . . . . . . . . . . . . . .   79
  276.        Database Definition Screen . . . . . . . . . . . . . . . . .   79
  277.        Field Name   . . . . . . . . . . . . . . . . . . . . . . . .   79
  278.        Field Type   . . . . . . . . . . . . . . . . . . . . . . . .   81
  279.        When Is A Number Not Numeric?  . . . . . . . . . . . . . . .   82
  280.        Field Length   . . . . . . . . . . . . . . . . . . . . . . .   83
  281.        Field Format   . . . . . . . . . . . . . . . . . . . . . . .   84
  282.        Is The Sequence Of The Fields Significant?   . . . . . . . .   85
  283.        Changing And Saving The Definition   . . . . . . . . . . . .   85
  284.        Changing Database Specifications   . . . . . . . . . . . . .   87
  285.  
  286.   Adding New Records  . . . . . . . . . . . . . . . . . . . . . . .   90
  287.        Filling In The Blanks  . . . . . . . . . . . . . . . . . . .   90
  288.        Formulas Are Display-Only  . . . . . . . . . . . . . . . . .   91
  289.        New Records Go On The End  . . . . . . . . . . . . . . . . .   91
  290.        Record Numbers Are Not Data  . . . . . . . . . . . . . . . .   91
  291.        Multiple Pages (Screens)   . . . . . . . . . . . . . . . . .   92
  292.        Selecting Alternate Input Screen . . . . . . . . . . . . . .   92
  293.        The Flip-Field-Contents Mark   . . . . . . . . . . . . . . .   92
  294.        The Repeat Key . . . . . . . . . . . . . . . . . . . . . . .   93
  295.        Quick Labels   . . . . . . . . . . . . . . . . . . . . . . .   93
  296.  
  297.   Finding and Changing Records  . . . . . . . . . . . . . . . . . .   95
  298.        Finding A Record   . . . . . . . . . . . . . . . . . . . . .   96
  299.        Viewing The Record   . . . . . . . . . . . . . . . . . . . .   96
  300.        Changing Display Order . . . . . . . . . . . . . . . . . . .   98
  301.        Natural Language   . . . . . . . . . . . . . . . . . . . . .   98
  302.        General Rules Of Syntax  . . . . . . . . . . . . . . . . . .   98
  303.  
  304.   Quick Scan Mode   . . . . . . . . . . . . . . . . . . . . . . . .  100
  305.        Editing Records in Quick Scan Mode . . . . . . . . . . . . .  102
  306.  
  307.   Search And Replace  . . . . . . . . . . . . . . . . . . . . . . .  104
  308.        Formulas In Search And Replace   . . . . . . . . . . . . . .  106
  309.  
  310.   Search And Delete   . . . . . . . . . . . . . . . . . . . . . . .  108
  311.  
  312.   Search And Tag  . . . . . . . . . . . . . . . . . . . . . . . . .  108
  313.  
  314.  
  315.  
  316.   iv
  317.  
  318.  
  319.  
  320.  
  321.                                                                 CONTENTS
  322.   ----------------------------------------------------------------------
  323.  
  324.   Finding Duplicates  . . . . . . . . . . . . . . . . . . . . . . .  109
  325.        Duplicates In One Database   . . . . . . . . . . . . . . . .  111
  326.        Duplicates In Two Databases  . . . . . . . . . . . . . . . .  115
  327.  
  328.   Sorting Records   . . . . . . . . . . . . . . . . . . . . . . . .  119
  329.        What Is An Index?  . . . . . . . . . . . . . . . . . . . . .  120
  330.        Defining or Changing an Index  . . . . . . . . . . . . . . .  121
  331.        Record Number Index  . . . . . . . . . . . . . . . . . . . .  122
  332.        Deleted Record Index . . . . . . . . . . . . . . . . . . . .  122
  333.        Defining A New Index . . . . . . . . . . . . . . . . . . . .  123
  334.        Editing An Existing Index Definition . . . . . . . . . . . .  125
  335.        Saving The Index Definition  . . . . . . . . . . . . . . . .  125
  336.        Sort Precedence  . . . . . . . . . . . . . . . . . . . . . .  126
  337.        Sorting Dates  . . . . . . . . . . . . . . . . . . . . . . .  127
  338.        Sorting By Record Number . . . . . . . . . . . . . . . . . .  128
  339.        How Long Does It Take? . . . . . . . . . . . . . . . . . . .  128
  340.        Speeding Up Sorts  . . . . . . . . . . . . . . . . . . . . .  128
  341.  
  342.   Printing Reports  . . . . . . . . . . . . . . . . . . . . . . . .  131
  343.        Designing a Report or Form Letter  . . . . . . . . . . . . .  131
  344.        Starting a New Report  . . . . . . . . . . . . . . . . . . .  134
  345.        Moving Around the Layout Screen  . . . . . . . . . . . . . .  135
  346.        Report Layout Sections . . . . . . . . . . . . . . . . . . .  138
  347.             Title . . . . . . . . . . . . . . . . . . . . . . . . .  138
  348.             Centering Titles  . . . . . . . . . . . . . . . . . . .  138
  349.             Headings  . . . . . . . . . . . . . . . . . . . . . . .  139
  350.             Detail Area . . . . . . . . . . . . . . . . . . . . . .  140
  351.             Subtotals . . . . . . . . . . . . . . . . . . . . . . .  141
  352.             Total . . . . . . . . . . . . . . . . . . . . . . . . .  144
  353.             Footer  . . . . . . . . . . . . . . . . . . . . . . . .  144
  354.        Adding Text to the Layout  . . . . . . . . . . . . . . . . .  145
  355.             Inserting Text  . . . . . . . . . . . . . . . . . . . .  145
  356.             Deleting Text . . . . . . . . . . . . . . . . . . . . .  145
  357.             Special Characters  . . . . . . . . . . . . . . . . . .  145
  358.             Control Characters  . . . . . . . . . . . . . . . . . .  145
  359.        Placing Fields on the Screen . . . . . . . . . . . . . . . .  146
  360.             Regular Fields  . . . . . . . . . . . . . . . . . . . .  146
  361.             Name & Field  . . . . . . . . . . . . . . . . . . . . .  147
  362.             Window Field  . . . . . . . . . . . . . . . . . . . . .  147
  363.        Quick Functions  . . . . . . . . . . . . . . . . . . . . . .  161
  364.        Using Formulas In Reports  . . . . . . . . . . . . . . . . .  163
  365.             Formula Name  . . . . . . . . . . . . . . . . . . . . .  163
  366.             Formula Length and Decimals . . . . . . . . . . . . . .  164
  367.        Changing Fields  . . . . . . . . . . . . . . . . . . . . . .  166
  368.             Removing a Field  . . . . . . . . . . . . . . . . . . .  166
  369.             Changing the Printed Field Length . . . . . . . . . . .  166
  370.             Field Order . . . . . . . . . . . . . . . . . . . . . .  166
  371.        Drawing Lines  . . . . . . . . . . . . . . . . . . . . . . .  167
  372.        Changing the Box Style . . . . . . . . . . . . . . . . . . .  167
  373.  
  374.  
  375.                                                                        v
  376.  
  377.  
  378.  
  379.  
  380.   CONTENTS
  381.   ----------------------------------------------------------------------
  382.  
  383.        Optional Specifications Screen   . . . . . . . . . . . . . .  169
  384.        Report Output Option . . . . . . . . . . . . . . . . . . . .  172
  385.        Printer Options  . . . . . . . . . . . . . . . . . . . . . .  174
  386.  
  387.  
  388.   Index Selection . . . . . . . . . . . . . . . . . . . . . . . . .  178
  389.        Saving A Report Format   . . . . . . . . . . . . . . . . . .  178
  390.        Printing the Report  . . . . . . . . . . . . . . . . . . . .  178
  391.        Wide Reports . . . . . . . . . . . . . . . . . . . . . . . .  179
  392.  
  393.   Letter Writer . . . . . . . . . . . . . . . . . . . . . . . . . .  180
  394.        Starting a New Letter  . . . . . . . . . . . . . . . . . . .  180
  395.        Moving Around the Letter Writer  . . . . . . . . . . . . . .  182
  396.        Letter Output Option . . . . . . . . . . . . . . . . . . . .  184
  397.        Printer Options  . . . . . . . . . . . . . . . . . . . . . .  186
  398.  
  399.  
  400.   Index Selection . . . . . . . . . . . . . . . . . . . . . . . . .  189
  401.        Saving A Letter Format   . . . . . . . . . . . . . . . . . .  189
  402.        Printing the Letter  . . . . . . . . . . . . . . . . . . . .  189
  403.  
  404.   Printing Labels   . . . . . . . . . . . . . . . . . . . . . . . .  191
  405.        The Label Menu   . . . . . . . . . . . . . . . . . . . . . .  191
  406.        Designing A New Label  . . . . . . . . . . . . . . . . . . .  192
  407.        Test Printer Setup . . . . . . . . . . . . . . . . . . . . .  198
  408.        The Label Layout Screen  . . . . . . . . . . . . . . . . . .  199
  409.        The Paging Option  . . . . . . . . . . . . . . . . . . . . .  200
  410.        Label Output Options   . . . . . . . . . . . . . . . . . . .  202
  411.        Printer Options  . . . . . . . . . . . . . . . . . . . . . .  205
  412.        Labels For Other Applications  . . . . . . . . . . . . . . .  208
  413.        Quick Labels . . . . . . . . . . . . . . . . . . . . . . . .  208
  414.        Defining a Quick Label   . . . . . . . . . . . . . . . . . .  208
  415.  
  416.   Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . .  209
  417.        The Maintenance Menu . . . . . . . . . . . . . . . . . . . .  209
  418.  
  419.   Painting Custom Input Screens . . . . . . . . . . . . . . . . . .  214
  420.        Editing an Existing View Screen  . . . . . . . . . . . . . .  215
  421.        Deleting a View  . . . . . . . . . . . . . . . . . . . . . .  215
  422.        Renaming a View  . . . . . . . . . . . . . . . . . . . . . .  215
  423.        Defining a New View Screen . . . . . . . . . . . . . . . . .  215
  424.        Set the Default View . . . . . . . . . . . . . . . . . . . .  215
  425.        Painting a View Screen . . . . . . . . . . . . . . . . . . .  216
  426.        Moving Around the View Screen  . . . . . . . . . . . . . . .  216
  427.        Adding Text to the Input Screen  . . . . . . . . . . . . . .  218
  428.        Placing Fields on the Screen . . . . . . . . . . . . . . . .  219
  429.        Regular Input Fields . . . . . . . . . . . . . . . . . . . .  219
  430.  
  431.   Changing Fields . . . . . . . . . . . . . . . . . . . . . . . . .  222
  432.  
  433.  
  434.   vi
  435.  
  436.  
  437.  
  438.  
  439.                                                                 CONTENTS
  440.   ----------------------------------------------------------------------
  441.  
  442.        Changing Field Attributes  . . . . . . . . . . . . . . . . .  222
  443.        Removing a Field . . . . . . . . . . . . . . . . . . . . . .  222
  444.        Changing the Field Display Length  . . . . . . . . . . . . .  222
  445.        Input Order  . . . . . . . . . . . . . . . . . . . . . . . .  223
  446.        Changing Field Input Order . . . . . . . . . . . . . . . . .  223
  447.        Testing Input Order  . . . . . . . . . . . . . . . . . . . .  223
  448.        Painting Color on the Screen . . . . . . . . . . . . . . . .  224
  449.             Turning Paint On and Off  . . . . . . . . . . . . . . .  224
  450.             Changing The Current Color  . . . . . . . . . . . . . .  224
  451.        Changing the Box Style . . . . . . . . . . . . . . . . . . .  225
  452.        Saving or Canceling the View Screens . . . . . . . . . . . .  226
  453.  
  454.   Macro Key Setup . . . . . . . . . . . . . . . . . . . . . . . . .  227
  455.        Defining a Macro . . . . . . . . . . . . . . . . . . . . . .  228
  456.        The Keyboard Recorder  . . . . . . . . . . . . . . . . . . .  231
  457.  
  458.   Recalculating The Database  . . . . . . . . . . . . . . . . . . .  233
  459.  
  460.   Untagging All Records . . . . . . . . . . . . . . . . . . . . . .  233
  461.  
  462.   Printing The Database Format  . . . . . . . . . . . . . . . . . .  234
  463.  
  464.   Printer Definition Files  . . . . . . . . . . . . . . . . . . . .  235
  465.        Adding a PDF File  . . . . . . . . . . . . . . . . . . . . .  236
  466.        Editing a PDF File . . . . . . . . . . . . . . . . . . . . .  236
  467.        Default PDF File . . . . . . . . . . . . . . . . . . . . . .  237
  468.  
  469.   Import/Export/Clone   . . . . . . . . . . . . . . . . . . . . . .  238
  470.        Some Common File Formats   . . . . . . . . . . . . . . . . .  240
  471.             Mail Merge (sequential) . . . . . . . . . . . . . . . .  240
  472.             WordPerfect Merge Files . . . . . . . . . . . . . . . .  241
  473.             DIF Files . . . . . . . . . . . . . . . . . . . . . . .  241
  474.             Fixed Length Files  . . . . . . . . . . . . . . . . . .  242
  475.             SDF or Text Files   . . . . . . . . . . . . . . . . . .  242
  476.             Lotus 123 Files . . . . . . . . . . . . . . . . . . . .  242
  477.             dBASE Files . . . . . . . . . . . . . . . . . . . . . .  243
  478.             File Express Files  . . . . . . . . . . . . . . . . . .  243
  479.  
  480.   Importing Into A Database   . . . . . . . . . . . . . . . . . . .  244
  481.  
  482.   Exporting From A Database . . . . . . . . . . . . . . . . . . . .  247
  483.  
  484.   Cloning A Database  . . . . . . . . . . . . . . . . . . . . . . .  251
  485.  
  486.   Quit - Exit to DOS  . . . . . . . . . . . . . . . . . . . . . . .  254
  487.  
  488.   Formulas  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  255
  489.        Some Definitions . . . . . . . . . . . . . . . . . . . . . .  256
  490.        Function:  . . . . . . . . . . . . . . . . . . . . . . . . .  256
  491.  
  492.  
  493.                                                                      vii
  494.  
  495.  
  496.  
  497.  
  498.   CONTENTS
  499.   ----------------------------------------------------------------------
  500.  
  501.        Statement: . . . . . . . . . . . . . . . . . . . . . . . . .  257
  502.        Comparitor:  . . . . . . . . . . . . . . . . . . . . . . . .  259
  503.        Operators: . . . . . . . . . . . . . . . . . . . . . . . . .  259
  504.        Logical Operators: . . . . . . . . . . . . . . . . . . . . .  259
  505.  
  506.   Advanced Features . . . . . . . . . . . . . . . . . . . . . . . .  353
  507.        Screen Dumps To Disk   . . . . . . . . . . . . . . . . . . .  353
  508.        Custom Banner Screens  . . . . . . . . . . . . . . . . . . .  354
  509.  
  510.   Customizing File Express  . . . . . . . . . . . . . . . . . . . .  356
  511.        Starting the Setup Program . . . . . . . . . . . . . . . . .  356
  512.             Floppy System:  . . . . . . . . . . . . . . . . . . . .  356
  513.             Hard Disk System: . . . . . . . . . . . . . . . . . . .  356
  514.             Using Setup:  . . . . . . . . . . . . . . . . . . . . .  357
  515.        General Defaults . . . . . . . . . . . . . . . . . . . . . .  357
  516.             Sound Option: . . . . . . . . . . . . . . . . . . . . .  357
  517.             Screen Display: . . . . . . . . . . . . . . . . . . . .  357
  518.             Snow: . . . . . . . . . . . . . . . . . . . . . . . . .  357
  519.             Menu Lines: . . . . . . . . . . . . . . . . . . . . . .  357
  520.             Auto Enter Option:  . . . . . . . . . . . . . . . . . .  357
  521.             Space Character:  . . . . . . . . . . . . . . . . . . .  358
  522.             Default Date Format . . . . . . . . . . . . . . . . . .  358
  523.             Default Monetary Sign . . . . . . . . . . . . . . . . .  358
  524.        Color Defaults . . . . . . . . . . . . . . . . . . . . . . .  359
  525.             Color or Mono:  . . . . . . . . . . . . . . . . . . . .  359
  526.             Screen Colors:  . . . . . . . . . . . . . . . . . . . .  359
  527.        Data Entry Defaults  . . . . . . . . . . . . . . . . . . . .  360
  528.             Drive and Path name:  . . . . . . . . . . . . . . . . .  360
  529.             Database File Name: . . . . . . . . . . . . . . . . . .  360
  530.             Clear Buffer Option:  . . . . . . . . . . . . . . . . .  360
  531.             Disk Space: . . . . . . . . . . . . . . . . . . . . . .  361
  532.        Label Printing Defaults  . . . . . . . . . . . . . . . . . .  361
  533.  
  534.   Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . .  363
  535.  
  536.   Reporting Problems To Expressware . . . . . . . . . . . . . . . .  371
  537.  
  538.   Disclaimer  . . . . . . . . . . . . . . . . . . . . . . . . . . .  372
  539.  
  540.   Appendix A: Glossary of Terms . . . . . . . . . . . . . . . . . .  373
  541.  
  542.   Appendix B: ASCII Chart . . . . . . . . . . . . . . . . . . . . .  377
  543.  
  544.   Appendix C: Keywords  . . . . . . . . . . . . . . . . . . . . . .  379
  545.  
  546.   Appendix D: File Formats  . . . . . . . . . . . . . . . . . . . .  383
  547.  
  548.   Appendix E: Date Formats  . . . . . . . . . . . . . . . . . . . .  385
  549.  
  550.  
  551.  
  552.   viii
  553.  
  554.  
  555.  
  556.  
  557.                                                                 CONTENTS
  558.   ----------------------------------------------------------------------
  559.  
  560.   Appendix F: Sounds Like Routine (Soundex) . . . . . . . . . . . .  387
  561.  
  562.   Appendix G: Printer Definition Files  . . . . . . . . . . . . . .  389
  563.  
  564.    
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.                                                                       ix
  612.  
  613.  
  614.  
  615.  
  616.                                                          INTRODUCTION  1
  617.   ----------------------------------------------------------------------
  618.  
  619.  
  620.  
  621.                                Introduction
  622.  
  623.        This  section introduces  you to  File  Express and  some of  its
  624.        features.  If  you are new to  File Express, you should  take the
  625.        time to read through this section before running the program.  If
  626.        you are  already familiar  with File Express,  you might  want to
  627.        skim through this section to see  what new features version 5 has
  628.        to offer.
  629.  
  630.   Registration
  631.        Before you continue, please take the time to fill out and mail in
  632.        the registration card  that came with your  File Express package.
  633.        This  ensures you  are kept  up to  date on  future releases  and
  634.        information concerning File  Express.  It also entitles  you to a
  635.        subscription  to  ExpressNews, Expressware's  newsletters  giving
  636.        valuable tips  and tricks  for using File  Express and  our other
  637.        products.
  638.  
  639.   What Is File Express? 
  640.        File Express is a database management program written for the IBM
  641.        Personal  Computer  and  PC-compatible  computers.    Using  File
  642.        Express, information of virtually  any kind can  be put into  the
  643.        computer,  printed, sorted, displayed and reported.  For example,
  644.        a list of  names and addresses can  be entered, then they  can be
  645.        sorted into zip code sequence or last name sequence, printed  out
  646.        onto mailing  labels, and updated as the  list changes.  The same
  647.        data  can be  included in  reports,  or simply  displayed on  the
  648.        computer screen when needed.  Customized form letters can also be
  649.        written in File  Express by merging names from  the database file
  650.        with a letter.
  651.  
  652.        File Express is very popular among first-time database users  and
  653.        non-technical users, so we have  tried to aim the manual  to this
  654.        level  of  reader.   But  as  File  Express has  continued  to be
  655.        improved  over  the last  six  years,  it  has also  become  very
  656.        powerful.  Some of  its early first-time  users have advanced  to
  657.        true "power users" and we need to address their needs  too, while
  658.        maintaining the simplicity of the manual and the software.   Some
  659.        of the more technical explanations  have been confined to special
  660.        sections in the  back of the manual.   There is a  section called
  661.        Advanced Features which discusses many of File Express's features
  662.        which might interest only technically oriented users.  Throughout
  663.        this   manual  you  will   occasionally  see  paragraphs  labeled
  664.        Technical Note.  If you are not  a technical user, you can simply
  665.        ignore these sections.   If you read a  Technical Note and  don't
  666.        understand it, don't be concerned.  You don't need to  understand
  667.        it in order to use File Express. 
  668.  
  669.  
  670.  
  671.  
  672.  
  673.   2  INTRODUCTION
  674.   ----------------------------------------------------------------------
  675.  
  676.   Is It Easy To Use? 
  677.        File Express is very easy  to use because it makes  extensive use
  678.        of "menus" and "prompts".   These are  computer terms which  mean
  679.        the program asks  questions and the user simply answers  them.  A
  680.        "prompt" is a question which usually has only one or two answers,
  681.        such as "Do  you want to save  this report on your disk?  (Yes or
  682.        No)" or "How  many labels will be  printed?".  A prompt  can also
  683.        instruct rather  than ask  a question:  "Press  <Enter> when  the
  684.        printer is ready". 
  685.  
  686.        A "menu" is  similar to a prompt, only bigger.  When File Express
  687.        asks a question which can be answered in several different  ways,
  688.        it lists  all the possible responses, and lets the user enter one
  689.        of them.  For example, here is a simple menu: 
  690.  
  691.                            Export Menu
  692.  
  693.                       1 - Mail merge file
  694.                       2 - WordPerfect merge file
  695.                       3 - DIF file
  696.                       4 - Fixed length file
  697.                       5 - Text editor (SDF)
  698.                       6 - Lotus 123 file
  699.                       7 - dBase file
  700.  
  701.        When a menu like this is  displayed by File Express, pressing any
  702.        one of the  keys shown (in this  example, 1 through 7)  tells the
  703.        program what you  want to do.   Programs using menus  and prompts
  704.        are called "conversational" programs, because you and the program
  705.        actually carry on a conversation, where you tell the program what
  706.        you want  to do, and it  asks you precisely how.   Conversational
  707.        programs  are much  easier  to use  than  programs which  require
  708.        complex commands  (called "command-driven" programs).   It's this
  709.        conversational  approach  which  makes File  Express  one  of the
  710.        easiest database programs available. 
  711.  
  712.   A New Vocabulary 
  713.        Computers have brought  us many great improvements in  the way we
  714.        work.  But  along with the benefits  came the need for  new words
  715.        and   terms  to  describe   things  that  formerly   didn't  need
  716.        describing.  As  a PC user, you have no doubt already encountered
  717.        some  of the new words.   For example, by now  you know that when
  718.        someone  says  to  "boot"  your  computer,  they  don't  mean  to
  719.        drop-kick it across the  room (though there  may have been  times
  720.        you wanted to). 
  721.  
  722.        Let's review  some of the  words used in  this manual and  in the
  723.        File Express program that may be new to you.  For  definitions of
  724.        technical terms  there  is also  a  glossary at  the end  of  the
  725.        manual. 
  726.  
  727.  
  728.  
  729.                                                          INTRODUCTION  3
  730.   ----------------------------------------------------------------------
  731.  
  732.        FIELD: A piece of data, from one to 1000 characters in length.  A
  733.        field may  contain letters  (alphabetic field), numbers  (numeric
  734.        field)  or a  combination of  letters  and numbers  (alphanumeric
  735.        field), or it may  have nothing in it at all  (empty field).  For
  736.        example, a simple mailing  list might have  six fields: 1)  first
  737.        name,  2) last name,  3) address, 4)  city, 5) state,  and 6) zip
  738.        code. 
  739.  
  740.        RECORD: Several fields  with something in common,  entered into a
  741.        database.  Groups of records make a  database.  For example, in a
  742.        mailing  list,  each  complete  name  and  address  put into  the
  743.        computer comprises one record. 
  744.  
  745.        DATABASE: A collection of related information which is put in the
  746.        computer so  it  can be  printed,  sorted, updated  and  searched
  747.        easily.   Each database  has an identifying name  of one to eight
  748.        characters, such as CUSTOMER or MAILLIST.  In this manual  we may
  749.        occasionally use the term "file" when referring to a File Express
  750.        database. 
  751.  
  752.  
  753.        The  following  diagram illustrates  the relationship  of fields,
  754.        records and databases. 
  755.  
  756.                            Record 1  Record 2  Record 3 
  757.        Field 1:First Name  Bob       John      Joe    
  758.        Field 2:Last Name   Smith     Jones     Doaks
  759.        Field 3:Address     123 Main  999 Ninth Box 230 
  760.        Field 4:City        Seattle   Bellevue  Redmond 
  761.        Field 5:State       WA        WA        WA
  762.        Field 6:Zip         98119     98007     98073
  763.  
  764.                              Several records
  765.                              make a database
  766.  
  767.   Will It Run On My Computer? 
  768.        If your computer  is 100% compatible with  the IBM PC, XT  or AT,
  769.        then   File  Express   will   definitely  run   on   it.     Some
  770.        semi-compatibles   may   require    some   special   configuring.
  771.        Generally,  if your computer uses  the PC-DOS or MS-DOS operating
  772.        system, then  File Express  will probably run  on it.   There are
  773.        some minimum hardware requirements: 
  774.                   
  775.             *    PC-DOS or MS-DOS version 2.0 or higher
  776.             *    At least 512K of RAM memory
  777.             *    Two  diskette  drives (one  of  which must  be  720K or
  778.                  larger) or a hard disk with at least 1 megabyte of free
  779.                  space.
  780.  
  781.        Your computer  may have  either a  monochrome or  80-column color
  782.        monitor.  If you  have a color monitor, File  Express formats its
  783.  
  784.  
  785.  
  786.   4  INTRODUCTION
  787.   ----------------------------------------------------------------------
  788.  
  789.        screens in your choice of colors.   A printer is optional, but is
  790.        of course needed if reports or labels are to be printed. 
  791.  
  792.  
  793.  
  794.                                                          INTRODUCTION  5
  795.   ----------------------------------------------------------------------
  796.  
  797.   How Do I Get Started? 
  798.        The first  step is to install  the File Express  software on your
  799.        computer.   Usually this is a simple  process, but there are some
  800.        PC's with unique configurations which require special procedures.
  801.        The  second chapter  of  this manual  is  called Installing  File
  802.        Express and  it takes  you through  the steps  of installing  the
  803.        programs and sample files. 
  804.  
  805.        If you are a newcomer to File Express you will want to review the
  806.        chapter  titled A File  Express Tutorial to  familiarize yourself
  807.        with some of  the program's basic features.   Even if you  are an
  808.        experienced File Express  user, we recommend that you  review the
  809.        Tutorial section.  There  are many new  capabilities in this  new
  810.        version  of the  program  which become  readily  apparent in  the
  811.        tutorial.    Also,  the  sample  database  in   the  tutorial  is
  812.        referenced in examples  throughout this manual, and  the examples
  813.        assume  you  are  familiar with  the  database  discussed  in the
  814.        tutorial. 
  815.  
  816.  
  817.  
  818.   6  INSTALLATION
  819.   ----------------------------------------------------------------------
  820.  
  821.                          Installing File Express
  822.  
  823.        Included in your  package is the File Express  Installation Guide
  824.        with  instructions for installing  the program on  your computer.
  825.        These instructions are  repeated here in case  you have misplaced
  826.        the card.
  827.  
  828.        File Express may be run on a computer with two diskette drives as
  829.        long as one  of them is at  least 720K or  larger, or a  computer
  830.        with a hard disk drive.  Like  most other software programs, File
  831.        Express  runs much faster on a  hard disk; and database files can
  832.        be considerably larger.  If you have an application needing  more
  833.        speed  or requiring  large amounts  of data,  a  hard disk  is an
  834.        excellent investment, costing only a few hundred dollars for most
  835.        PC's. 
  836.  
  837.        These   installation  instructions  assume   you  have   a  basic
  838.        understanding of DOS commands and terms.  If you are not familiar
  839.        with terms such  as subdirectory, path, formatted  diskette, etc.
  840.        you will need to consult your DOS manual for more information. 
  841.  
  842.        The  File  Express  program files  included  on  the distribution
  843.        diskettes are in a  compressed format and  cannot be run  without
  844.        being expanded using the INSTALL program included  on the PROGRAM
  845.        DISK.    Even  if  you  are  running  File  Express  from  floppy
  846.        diskettes,  you  must  use the  INSTALL  program  to  create your
  847.        working diskettes.
  848.  
  849.        To install File Express on either a hard disk or diskettes, place
  850.        the PROGRAM DISK in drive A, type A: <Enter> to make the A: drive
  851.        your default drive, and  then type INSTALL  <Enter> to start  the
  852.        installation process.
  853.  
  854.        The INSTALL program  asks you several  questions about where  you
  855.        want to  put File  Express  and how  you  want to  configure  it.
  856.        INSTALL also looks  at your AUTOEXEC.BAT file to  ensure that the
  857.        PATH  command  contains  a reference  to  your  new File  Express
  858.        directory.   INSTALL will only  change your AUTOEXEC.BAT  file if
  859.        you give it permission to.  Your CONFIG.SYS file is  also checked
  860.        to make sure that at least 20 files can be open at the same time.
  861.        Again, permission is asked before any changes will be made.
  862.  
  863.  
  864.   Computers With Hard Disks 
  865.        When using  File Express  from a hard  disk (fixed  disk), it  is
  866.        possible to put the program modules in one subdirectory and  your
  867.        database files in one  or more other subdirectories.  This is not
  868.        a decision  you need to make now; the  path to the database files
  869.        can be changed anytime File Express is started. 
  870.  
  871.  
  872.  
  873.                                                          INSTALLATION  7
  874.   ----------------------------------------------------------------------
  875.                                  empty
  876.  
  877.  
  878.  
  879.   8  INSTALLATION
  880.   ----------------------------------------------------------------------
  881.  
  882.   Computers With RAM Disks 
  883.        RAM  disks use  computer  memory to  emulate  an additional  disk
  884.        drive.   Usually  the memory  used  is part  of  your  computer's
  885.        available RAM memory.  File Express offers no extra features  for
  886.        RAM  disk users,  but  like many  other  software programs,  File
  887.        Express runs  much faster  when  its data  files are  in the  RAM
  888.        drive. 
  889.  
  890.        An inherent  danger exists  with RAM disks.   If  the electricity
  891.        goes off, all the files in a RAM disk are lost.  For that reason,
  892.        we recommend you use RAM disks sparingly.  If you are using a RAM
  893.        disk  as a  second drive  on  a one-drive  system, copy  the File
  894.        Express programs to  the RAM disk and put  your database diskette
  895.        in  the real  diskette drive.   The  programs load  and  run much
  896.        faster, and updates to your data will be permanently recorded  on
  897.        the diskette. 
  898.  
  899.        Technical Note:  If you  have an application  where you  need the
  900.        added speed of RAM  disk access, and you are willing  to risk the
  901.        potential loss of  data, RAM disks work great  with File Express.
  902.        If data is being  updated, consider making  regular copies of  it
  903.        onto a real disk every hour.
  904.  
  905.   Computers With Color Monitors 
  906.        If  your computer has a color monitor  and a graphics board, File
  907.        Express automatically  displays its  screens in  color.   If  you
  908.        would  like to change  the colors used  by File  Express, see the
  909.        section titled  Customizing  File  Express  for  changing  screen
  910.        colors. 
  911.  
  912.        File Express detects whether your computer has a monochrome board
  913.        or  a  color  graphics  board  and  uses  colors  or  black/white
  914.        accordingly.  But  some computers have a black  and white monitor
  915.        connected  to a  color  board,  which  tricks File  Express  into
  916.        sending  colors to  the black-and-white  screen.  This  can cause
  917.        some characters to appear hazy and unreadable, or in some  cases,
  918.        to not appear on the screen at all. 
  919.  
  920.        If this  condition occurs,  or if  you suspect  it is  occurring,
  921.        press <Esc> then <Enter>  to exit from  File Express, then  start
  922.        the program again  using the /M command line option (more on this
  923.        later).   Or  you can  customize  the various  screen  colors  to
  924.        black-on-white and white-on-black  using the  Setup program  (see
  925.        Customizing File Express).
  926.  
  927.   Computers On Local Area Networks 
  928.        File Express may  be used  on local area  networks.  The  program
  929.        incorporates its own file locking feature and does not depend  on
  930.        the network  software or  the DOS SHARE  program to  provide this
  931.        capability.
  932.  
  933.  
  934.  
  935.                                                          INSTALLATION  9
  936.   ----------------------------------------------------------------------
  937.  
  938.        The first person to  open a particular  database on a network  is
  939.        the only  user  given permission  to  change it.  (Add  and  edit
  940.        records, search and  replace, change indexes, tag  records, etc).
  941.        Subsequent users who  open the same database are  given a warning
  942.        message indicating that the database is locked and they can  only
  943.        view records and print reports and labels.
  944.  
  945.        When the first user closes the database, another person using the
  946.        same database can only get edit capability by reopening the file.
  947.        It is possible  for a  person to  give up the  editing rights  by
  948.        using the /R command line option when starting File Express.  See
  949.        Command Line Options for a complete description.
  950.  
  951.        Technical Note: When File Express locks a database, it creates  a
  952.        READ ONLY file on the data  drive to indicate to subsequent users
  953.        that the database is being used by  someone else.  This file also
  954.        contains the users name, if known.  This file is  normally erased
  955.        when the first user closes the database.  It is possible however,
  956.        that due to a  power failure or system crash for  any reason, all
  957.        future attempts by  any user to edit  the file will be  given the
  958.        warning message indicating  that someone else is using  the file.
  959.        In this case, the lock  file must be erased.  This cannot be done
  960.        from DOS  because the lock  file has been  marked as a  READ ONLY
  961.        file.  There is  a separate program  file called UNLOCK.EXE  that
  962.        must be used to erase the lock file.  To use this program, return
  963.        to DOS and type:
  964.  
  965.                        UNLOCK databasename <Enter>
  966.  
  967.        If you  have to use the UNLOCK program  to clear a database lock,
  968.        there are other side effects that  can result from the same cause
  969.        that left the database locked.   If the power went out while  you
  970.        were  adding  or  editing  records, some  of  those  additions or
  971.        changes may not have been written to disk yet.  If you were doing
  972.        a Search and Replace,  the process may  not have been  completed.
  973.        If you had changed the database format in some way such as adding
  974.        new fields, moving  fields or  changing their  lengths, and  File
  975.        Express was in the  process of rebuilding  the database, a  power
  976.        failure can cause catastrophic, leaving part of the data file  in
  977.        a format different than the remaining portion.  This is why it is
  978.        so important to  have a current backup before making this kind of
  979.        change.
  980.  
  981.        So, if your  computer ever locks up  or the power goes  out, note
  982.        the  process you  were going  through  so you  can determine  the
  983.        possible problems.
  984.  
  985.  
  986.  
  987.   10  STARTING FILE EXPRESS
  988.   ----------------------------------------------------------------------
  989.  
  990.  
  991.                           Starting File Express 
  992.  
  993.   From a Hard Drive
  994.        Users with  hard disks  use the following  commands to  start the
  995.        File Express program.  Be sure to press <Enter> after each one.
  996.  
  997.             C:        Make drive C: the current drive
  998.             CD \FE5   Change directory to the new FE subdirectory
  999.             FE        Start the File Express program 
  1000.  
  1001.        Actually, File Express  can be run from any  directory as long as
  1002.        the subdirectory  containing the  File Express  program files  is
  1003.        part  of  the current  PATH.   File  Express is  smart  enough to
  1004.        remember where  it was loaded from  and knows where to  look when
  1005.        loading the  overlay  file it  needs  at certain  points  in  the
  1006.        program.
  1007.  
  1008.   From a Diskette Drive
  1009.        You cannot use  the Master Program Diskette to  run File Express.
  1010.        Make a  working copy  of the program  diskette using  the INSTALL
  1011.        program,  and store the original in  a safe place.  Remember, the
  1012.        File Express Supplemental Diskette is not the diskette to use  in
  1013.        drive  B.  Drive  B needs an  empty, or nearly  empty diskette to
  1014.        hold your data files.   There is very little free space available
  1015.        on the Supplemental Diskette.   For more information on  creating
  1016.        and  formatting  your  working diskettes,  see  the  Installation
  1017.        section at the beginning of this chapter. 
  1018.  
  1019.        There is no room on the  Program Diskette for DOS or  COMMAND.COM
  1020.        so you  must use a separate  DOS diskette to boot  your computer.
  1021.        After booting, remove the DOS diskette and insert the FE  Program
  1022.        Diskette into drive A and type: 
  1023.  
  1024.                                 FE <Enter>
  1025.  
  1026.  
  1027.  
  1028.                                                 STARTING FILE EXPRESS 11
  1029.   ----------------------------------------------------------------------
  1030.  
  1031.        The File Express program loads into memory, and after a second or
  1032.        two, this title screen appears: 
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.                  Registered Version has screen picture here
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.        If  your opening  screen  does not  display, or  if  it has  some
  1051.        unreadable characters,  you  probably  have  a  special  hardware
  1052.        configuration that File  Express cannot properly detect.  See the
  1053.        /M command in the  next section, or  refer to the section  titled
  1054.        Troubleshooting near the end of this manual. 
  1055.  
  1056.  
  1057.  
  1058.   12  STARTING FILE EXPRESS
  1059.   ----------------------------------------------------------------------
  1060.  
  1061.        The title screen is displayed until you press a key.  The program
  1062.        loads and  this screen appears asking for the disk drive and path
  1063.        (if any) your data is on: 
  1064.  
  1065.  
  1066.  
  1067.  
  1068.  
  1069.  
  1070.                  Registered Version has screen picture here
  1071.  
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.        File  Express anticipates your  response to these  questions, and
  1082.        fills in some default values.  If you are  running from diskette,
  1083.        File Express assumes your data is on  drive B.  If not, type  the
  1084.        correct drive letter.  If you are running from a hard  disk, File
  1085.        Express assumes your data is on drive C, in the same directory as
  1086.        the File Express programs.  If not, change the path name. 
  1087.  
  1088.        If the drive letter and subdirectory are correct, just press  the
  1089.        <Enter>  key twice, and the "Open A Database" screen appears.  An
  1090.        illustration of this  screen and further instructions  on running
  1091.        File Express are in the chapter titled A File Express Tutorial. 
  1092.  
  1093.        Technical  Note: File Express does not create new subdirectories.
  1094.        If the specified subdirectory does not exist, an error message is
  1095.        given.   For information on creating subdirectories, see your DOS
  1096.        manual.
  1097.  
  1098.  
  1099.  
  1100.                                                 STARTING FILE EXPRESS 13
  1101.   ----------------------------------------------------------------------
  1102.  
  1103.   Command Line Options 
  1104.        In the  example above we  typed FE on  the command line  to start
  1105.        File Express.   There are other things that  can be typed on that
  1106.        same  line.   For  example,  the drive  letter  and  path can  be
  1107.        included on the command line.  File Express then skips the screen
  1108.        asking for  them.   Here  are  some examples  of  valid  starting
  1109.        commands: 
  1110.  
  1111.        FE B:          Indicates data is on drive B.  Program prompts for
  1112.                       path.
  1113.  
  1114.        FE \MASTER\    Indicates data  is in subdirectory  \MASTER on the
  1115.                       current drive.   (The ending backslash  on MASTER\
  1116.                       indicates a path as opposed to a database name.)
  1117.  
  1118.        FE B:\MASTER\  The data is in subdirectory \MASTER on drive B.
  1119.  
  1120.        FE MAIL        Selects database called MAIL  on current drive and
  1121.                       path.   (Because there is  no trailing  backslash,
  1122.                       MAIL is considered a database name as opposed to a
  1123.                       path name.)
  1124.  
  1125.        FE B:MAIL      Selects the  database called  MAIL in the  current
  1126.                       path on drive B. 
  1127.  
  1128.        FE B:\MASTER\MAIL   Selects  the database  called  MAIL from  the
  1129.                            \MASTER subdirectory on drive B. 
  1130.  
  1131.        If a  database name  is specified  on  the command  line but  the
  1132.        database doesn't exist, File Express assumes you want to create a
  1133.        new database, so  control is passed to the Define  a New Database
  1134.        section. 
  1135.  
  1136.        In addition  to the  drive, path and  database name,  the command
  1137.        line may also contain one or more of the following commands: 
  1138.  
  1139.        /M   Monochrome  (black  and  white)  display:  This  command  is
  1140.             sometimes  necessary when using File Express on a monochrome
  1141.             graphics  monitor with a  color graphics board.   Users with
  1142.             color graphics monitors can also use the command to make the
  1143.             screens appear in black and white. 
  1144.  
  1145.        /S   Turn off the sound: File Express makes a distinctive  "beep"
  1146.             when it accepts  a data field from the keyboard.  It makes a
  1147.             slightly  different  sound  when  an  invalid  character  is
  1148.             entered.  Some  computers have louder speakers  than others,
  1149.             and the sound  may be  annoying to you  or to others  around
  1150.             you.  Use the /S command to turn it off.  Sound can also  be
  1151.             turned off  by  pressing  <Alt-S> while  at  the  Main  Menu
  1152.             screen. 
  1153.  
  1154.  
  1155.  
  1156.   14  STARTING FILE EXPRESS
  1157.   ----------------------------------------------------------------------
  1158.  
  1159.        /B   Use BIOS calls  for screen display:   Some computers'  video
  1160.             memory is  not fully compatible with the IBM PC.  To display
  1161.             data  on the  screen as  quickly  as possible,  File Express
  1162.             places data directly  into video RAM.  Some  early models of
  1163.             MS-DOS  computers  did not  map  video  memory at  the  same
  1164.             address  as the IBM  PC.  On  computers with video  RAM at a
  1165.             different  address, nothing  is displayed; i.e.,  the screen
  1166.             stays blank.   If you specify /B  on the command  line, File
  1167.             Express  uses calls  to the  ROM BIOS  for screen  displays.
  1168.             This makes screen displays  slower, but assures the  data is
  1169.             displaying on the screen. 
  1170.  
  1171.        /F   Fast startup: This  command tells File  Express to skip  the
  1172.             banner screen during startup. 
  1173.  
  1174.        /I   Ignore mouse: This command tells File Express to ignore  any
  1175.             mouse connected to your computer.
  1176.  
  1177.        /K   Keyin:  This command  feeds a string  of characters to  File
  1178.             Express when it  starts up.  The /K  is immediately followed
  1179.             by  the keystrokes to  be executed when  the program starts.
  1180.             For example, the command:
  1181.  
  1182.                       FE MASTER /KRC
  1183.  
  1184.             starts  File Express,  opens the  MASTER  database and  then
  1185.             continues as if you typed RC, taking you  to the Report Menu
  1186.             and selecting the  Choose an  existing Report  option.   The
  1187.             keystrokes  File   Express  accepts  are   quite  extensive,
  1188.             covering every key on the keyboard and all combinations with
  1189.             <Alt>  and <Ctrl>.   The  syntax is  the same  as the  macro
  1190.             language.  For  a complete description, please  refer to the
  1191.             Defining a Macro section of the manual.
  1192.  
  1193.        /N   Network users name:  The first person to log onto a database
  1194.             usually is given edit capabilities.  Other users are given a
  1195.             warning message as they open the  file that it is locked and
  1196.             they cannot edit any records.  If the  first person uses the
  1197.             /Nname  command when  opening a  database  from the  command
  1198.             line, the warning  message given to other users will include
  1199.             the  persons  name.    The /N  option  must  be  immediately
  1200.             followed by the user name.  For example, the command:
  1201.  
  1202.                             FE PAYROLL /NDAVE
  1203.  
  1204.             by  the first  person opening  the  PAYROLL database,  gives
  1205.             later users the message, "Warning, file is locked  by DAVE".
  1206.             If no  /N  user  name  is  given,  the  message  will  read,
  1207.             "Warning, file is locked by unknown user".
  1208.  
  1209.  
  1210.  
  1211.                                                 STARTING FILE EXPRESS 15
  1212.   ----------------------------------------------------------------------
  1213.  
  1214.        /R   Read only:  When using File Express on a local area network,
  1215.             only one user at a  time is allowed to have  edit capability
  1216.             on a particular  database file.  this is  normally the first
  1217.             user to open the file.  If the first person wants to give up
  1218.             the edit capability, use the /R command.
  1219.  
  1220.  
  1221.  
  1222.          /2 to /8     Menu  selection:  Indicates  to  File  Express  to
  1223.                       select the  specified  menu number  from the  Main
  1224.                       Menu, as if it had been typed in.   Instead of the
  1225.                       Main  Menu   appearing,  the   specified  sub-menu
  1226.                       appears  on  the  screen.   For  example,  if File
  1227.                       Express is started using this command line: 
  1228.  
  1229.                  FE C:\MASTER\MAIL /3 
  1230.  
  1231.             the program  opens the database  called MAIL in  the \MASTER
  1232.             subdirectory  on  drive  C.    The   banner  screen  is  not
  1233.             displayed, the  drive/path prompt  screen is  not displayed,
  1234.             and the Main Menu screen is not displayed.  The first screen
  1235.             the  operator sees  after entering  this  command is  screen
  1236.             number 3, the Find/Edit Records screen. 
  1237.  
  1238.             These slash command switches must follow the drive, path and
  1239.             database  if they  are  specified.   Use  the forward  slash
  1240.             character "/".   The backslash character "\"  does not work.
  1241.             There should be no spaces following the slash, but there may
  1242.             be  one or more spaces preceding it.  For example, these are
  1243.             acceptable commands: 
  1244.  
  1245.                  FE /M/S                  Acceptable 
  1246.  
  1247.                  FE /S                    Acceptable 
  1248.  
  1249.                  FE C:MAIL/M/S            Acceptable 
  1250.  
  1251.                  FE C:MAIL /M/S/R         Acceptable 
  1252.  
  1253.                  FE /M  /S  /B /NJill     Acceptable 
  1254.  
  1255.             These commands are unacceptable: 
  1256.  
  1257.                  FE  /  M  Unacceptable.  No space allowed between / and
  1258.                            M. 
  1259.  
  1260.                  FEC:MAIL  Unacceptable.   DOS  thinks  program name  is
  1261.                            FEC.  There must be a space after FE. 
  1262.  
  1263.             File Express can  be configured to automatically  use one or
  1264.             more  of these  command  line  options  plus  several  other
  1265.  
  1266.  
  1267.  
  1268.   16  STARTING FILE EXPRESS
  1269.   ----------------------------------------------------------------------
  1270.  
  1271.             options by using the Setup program to create a configuration
  1272.             file.  For more information on customizing File  Express see
  1273.             the chapter titled Customizing File Express. 
  1274.  
  1275.    
  1276.                           Backing Up Your Data 
  1277.  
  1278.        Making regular backup copies  of disk data is essential,  whether
  1279.        using File Express or any other  program.  Yet the backup process
  1280.        is often taken  for granted or ignored in  many software manuals.
  1281.        Backups are so  fundamental we are including this  section at the
  1282.        front of the manual, where new users will be sure to see it. 
  1283.  
  1284.   Data Is Vulnerable 
  1285.        Consider for  a moment all the ways computer  data can be lost or
  1286.        destroyed.  Here are some of them: 
  1287.  
  1288.             Human Error:  This is  the number  one cause  of data  loss.
  1289.             Deleting  the  wrong  record;  erasing  the  wrong database;
  1290.             turning off the  computer without exiting from  the program;
  1291.             using the  wrong command;  these fall under  the heading  of
  1292.             human error.  
  1293.  
  1294.             Media  Wear: Diskettes  wear out.    Database programs  help
  1295.             them wear out faster because they access the disk much  more
  1296.             than word processors, spreadsheets and other software.  This
  1297.             is not a criticism of database programs; it is expected of a
  1298.             database  program to  access  large  amounts  of  disk  data
  1299.             quickly without having to load it all into memory. 
  1300.         
  1301.             Damaged  or  Misplaced  Media:  Diskettes  get  bent,  heavy
  1302.             objects get laid on them, coffee gets spilled on them,  they
  1303.             are  handled  roughly,  and eventually,  they  get  even, by
  1304.             failing.   Occasionally diskettes get lost,  misplaced, even
  1305.             inadvertently thrown away. 
  1306.  
  1307.             Equipment  Failure:  Hard  disks and  diskette  drives fail,
  1308.             sometimes intermittently, sometimes permanently.  When  they
  1309.             go down, they often take their data with them. 
  1310.     
  1311.             Acts of God:  Most of us are  insured against losses  due to
  1312.             fire,  flood,  tornado,  etc.   Insurance  companies  pay to
  1313.             replace computers, lost software, sometimes even the cost of
  1314.             re-entering all the data  into a database.   But they  don't
  1315.             pay for  the time  and revenue  lost while  the database  is
  1316.             being rebuilt.  And  when the data  is destroyed, often  the
  1317.             paperwork  from   which  the  information   was  entered  is
  1318.             destroyed too. 
  1319.  
  1320.             Program Error: Program bugs can  damage or destroy data too.
  1321.             While File Express has been  extensively tested and is  used
  1322.  
  1323.  
  1324.  
  1325.                                                              BACKUPS  17
  1326.   ----------------------------------------------------------------------
  1327.  
  1328.             on hundreds of thousands  of computers, there is  always the
  1329.             possibility  of  an  unforeseen  problem  somewhere  within.
  1330.             Other programs can fail and cause loss of data too: DOS is a
  1331.             program, and not an infallible one. 
  1332.         
  1333.             Theft: A  manufacturer of  anti-theft devices  for computers
  1334.             ranks theft  as the  number two cause  of data  loss, second
  1335.             only to human  error.  We don't know if that's accurate, but
  1336.             when a burglar gets  your computer, he  also gets your  hard
  1337.             disk and your data.  You can get a new computer within a few
  1338.             hours, but  without backups it  could take weeks  to rebuild
  1339.             your databases. 
  1340.  
  1341.             Mystical factors,  sun spots, UFO's,  the dog ate  it, etc.:
  1342.             These are the times when we  don't know exactly why, but the
  1343.             file just disappeared from the disk.  It's usually caused by
  1344.             one or more of  the reasons listed  earlier, but who  really
  1345.             knows for sure? 
  1346.  
  1347.   How Much Is Your Data Worth? 
  1348.        As we use computers more and more in our work and personal lives,
  1349.        we  come  to rely  more and  more  on them.   At  Expressware our
  1350.        databases have expanded over time to the extent that most of  the
  1351.        data does  not even  exist anywhere else.   So  we make  it exist
  1352.        somewhere else, by making backup copies of it. 
  1353.  
  1354.        Even if the written  data existed to  rebuild our databases  from
  1355.        scratch, it  would take a person typing  50 words per minute over
  1356.        four months just to key it all back into the computer.  And since
  1357.        the data doesn't exist anywhere else, the value of our backups is
  1358.        substantial. 
  1359.  
  1360.   Daily Backups 
  1361.        At Expressware we make a backup of our databases every day.  Each
  1362.        evening the order desk clerk copies the current month's databases
  1363.        onto diskettes.  These  diskettes are kept in  a safe place,  and
  1364.        are not reused  for seven  days.   There are five  sets of  daily
  1365.        backup diskettes, one for each day of the  work-week.  This means
  1366.        that every day  we have five  separate copies of  our data,  each
  1367.        progressively  more current.   Anyone making hundreds  of changes
  1368.        and additions to  a database every day  is advised to  make daily
  1369.        backups as well. 
  1370.  
  1371.   Offsite Backups 
  1372.        At the end of each month we make a complete backup  onto magnetic
  1373.        tape of every hard  disk in the company.  These  backup tapes are
  1374.        then taken  to another  building, where they  are stored  for six
  1375.        months.   If burglars  or hurricanes devastate  our office,  they
  1376.        will probably take all the software packages off the shelf  along
  1377.        with the  computers.  But our programmers  have their own PC's at
  1378.  
  1379.  
  1380.  
  1381.   18  BACKUPS
  1382.   ----------------------------------------------------------------------
  1383.  
  1384.        home, so with  the offsite backups of their  hard disks, they can
  1385.        be productive again by lunch time. 
  1386.  
  1387.  
  1388.  
  1389.                                                              BACKUPS  19
  1390.   ----------------------------------------------------------------------
  1391.  
  1392.   Backing Up A Diskette 
  1393.        The  easiest way to  make a  backup of a  diskette is to  make an
  1394.        identical  copy of it, using the DISKCOPY  program.  Put your DOS
  1395.        disk in drive A and on the command line type: 
  1396.  
  1397.                             DISKCOPY  A:  B: 
  1398.  
  1399.        A message  appears on  the screen telling  you to put  the source
  1400.        diskette in drive A and the destination diskette in drive B.   If
  1401.        you have only one diskette drive, type:
  1402.  
  1403.                               DISKCOPY A: A:
  1404.  
  1405.        Remove the DOS diskette from drive A.  Put a write-protect tab on
  1406.        the master diskette (the one to be copied) and put it in drive A.
  1407.        Put the  backup diskette  into drive B  (no write-protect  tab on
  1408.        this one;  it will  be written  on).   It doesn't  matter if  the
  1409.        diskette in drive B is formatted or not because DISKCOPY  formats
  1410.        as  it copies.   It's  OK if  the diskette  has  some data  on it
  1411.        already; the data will be written over. 
  1412.  
  1413.        Now  press a key, and the  copying begins.  This process normally
  1414.        takes two to three minutes.  Check the screen for  errors.  If an
  1415.        error has  occurred,  don't take  any chances:  throw the  backup
  1416.        diskette in the trash and try another  one.  Your data is worth a
  1417.        lot  more than  the cost  of  a new  diskette.   If the  copy was
  1418.        successful, DISKCOPY tells you so, then asks if  you want to copy
  1419.        another diskette.  If you have more  to copy, respond <Y> and put
  1420.        the next two diskettes into drives A and B. 
  1421.  
  1422.        Just because the  copy was successful does not  mean the diskette
  1423.        in drive B is readable.   To really be safe, make new labels  for
  1424.        both  diskettes and  make  the copy  your new  master.   Your old
  1425.        master diskette becomes the backup diskette.  If the copy is bad,
  1426.        you  will know  it as  soon as  you try  to use  your  new master
  1427.        diskette. 
  1428.  
  1429.        One  more step which  many of  us overlook  or forget:  label the
  1430.        backup diskette.   It's a backup of what?  When was it backed up?
  1431.        If you plan to re-use the diskette  later and don't want to stick
  1432.        a label on it,  then write a note on a piece of  paper and put it
  1433.        in  the disk  sleeve.   Or  stick a  yellow post-it  note  on the
  1434.        diskette.  Or put  all your backup diskettes in an  envelope with
  1435.        the date written on the outside. 
  1436.  
  1437.        Finally, put  the backups in a  safe place: maybe  an unused desk
  1438.        drawer  that is  now the  official backup  drawer; or  in  a file
  1439.        folder.  Keep the backup diskettes someplace where they will  not
  1440.        be  exposed  to excessive  heat,  cold, dust  or  physical abuse.
  1441.        Briefcases,  purses and glove  compartments are usually  not good
  1442.        storage areas. 
  1443.  
  1444.  
  1445.  
  1446.   20  BACKUPS
  1447.   ----------------------------------------------------------------------
  1448.                                       empty
  1449.  
  1450.  
  1451.  
  1452.                                                              BACKUPS  21
  1453.   ----------------------------------------------------------------------
  1454.  
  1455.   Backing Up Databases On A Hard Disk 
  1456.        These instructions  assume the databases to be backed up are in a
  1457.        subdirectory named \FE5.  If not, use your own subdirectory name.
  1458.  
  1459.  
  1460.        Databases on hard  disks are often too  large to fit on  a single
  1461.        diskette, so the simple  COPY command which  DOS provides is  not
  1462.        adequate.  Instead, use the DOS program called BACKUP.  Formatted
  1463.        diskettes are required,  so format several (using  the DOS FORMAT
  1464.        program) and set them aside.  It's  also OK to use diskettes with
  1465.        data on  them, either  from an earlier  backup or  something else
  1466.        (they are already formatted, so you can skip that step). 
  1467.  
  1468.  
  1469.  
  1470.   22  BACKUPS
  1471.   ----------------------------------------------------------------------
  1472.  
  1473.        To start the backup process, type this command at the DOS prompt:
  1474.  
  1475.  
  1476.                           BACKUP  C:\FE5\*.*  A:
  1477.  
  1478.        The backup program tells you to put a diskette in drive A.  Label
  1479.        one of the formatted diskettes:  BACKUP  C:\FE5\*.*  A:   1 OF __
  1480.        and put it into drive A.  The Backup program warns that all  data
  1481.        on the diskette in drive A will be destroyed.  Press  <Enter> and
  1482.        the backup begins.   As each file is copied to  diskette its name
  1483.        appears on  the screen.   If you don't  see some  files displayed
  1484.        with names of your databases, something is wrong. 
  1485.  
  1486.        If your databases are  small, they might all fit on one diskette.
  1487.        Probably not, though.   Soon the BACKUP program tells  you to put
  1488.        diskette #2  in drive A.  Label a second  diskette,  2 OF __, put
  1489.        it in drive  A, and press <Enter>.   As each diskette  is filled,
  1490.        label the next one and put it in drive A until the BACKUP program
  1491.        finally ends.  This process may require several diskettes.  
  1492.  
  1493.        Now fill in the  blanks on the diskettes (e.g.,  1 OF 5) and  put
  1494.        them in a safe place. 
  1495.  
  1496.        If you  find you need the data from these backups at some time in
  1497.        the future, the diskette label indicates they were produced  with
  1498.        the command  BACKUP C:\FE\*.*  A: which is important information.
  1499.        Since they were produced  with the BACKUP  program, they must  be
  1500.        restored to the hard disk with the DOS program named RESTORE.  If
  1501.        you  need to  retrieve  only one  file,  don't use  the  DOS COPY
  1502.        command to restore it to the hard disk.  Use the  RESTORE program
  1503.        to restore  any file  backed up with  BACKUP.   Another important
  1504.        piece of information on the diskette label is that the files were
  1505.        backed  up from the subdirectory \FE5.   Restore them to the same
  1506.        subdirectory. 
  1507.  
  1508.                              RESTORE A: C:*.*
  1509.  
  1510.        is the command  to use to put  the files from the  diskettes back
  1511.        onto your hard  disk.  They  will automatically be placed  in the
  1512.        \FE5 subdirectory.
  1513.  
  1514.   Backing Up A Complete Hard Disk 
  1515.        If you want  to periodically make  a backup  copy of your  entire
  1516.        hard disk, the procedure is similar to backing up a subdirectory.
  1517.        But start  by formatting lots of diskettes.   If your 10 meg hard
  1518.        disk is full, or your 20 meg drive is half full, you will need 29
  1519.        diskettes to back it up.  Then type the following commands at the
  1520.        DOS command line: 
  1521.  
  1522.                  C:                               
  1523.                  CD \                                
  1524.  
  1525.  
  1526.  
  1527.                                                              BACKUPS  23
  1528.   ----------------------------------------------------------------------
  1529.  
  1530.                  BACKUP  *.*  A:  /S 
  1531.  
  1532.        These  commands get you onto the root  directory of drive C, then
  1533.        the last command  backs up all  the files on  the root, plus  all
  1534.        subdirectories of the root (/S is for the subdirectories). 
  1535.  
  1536.        One word of caution on complete system backups: because they take
  1537.        so many diskettes, it is tempting to start erasing old files from
  1538.        the hard disk to reduce the amount of time and space  the backups
  1539.        take.   Take it  from a  computer veteran  who has  made all  the
  1540.        mistakes at least twice: don't erase anything prior to a  backup.
  1541.        Human error (erasing the wrong files) is the biggest single cause
  1542.        of lost  data.  Resist the temptation.  As  soon as the backup is
  1543.        completed, go in  and erase  all those old  files that have  been
  1544.        gathering dust for two years.  That way, they'll be gone when you
  1545.        do your  backups  next month,  and you  won't be  faced with  the
  1546.        temptation next month to erase before backing up. 
  1547.  
  1548.   Tape Backups
  1549.        At Expressware  we have many  computers with so  much information
  1550.        stored on them that it is not practical to make backups using the
  1551.        DOS  BACKUP program.    Instead, we  use  a tape  drive for  this
  1552.        purpose.   Backing up  many megabytes of  data takes  only a  few
  1553.        minutes  and doesn't  require anybody  sitting  at the  computers
  1554.        feeding  them  piles of  diskettes.   In  the end,  an  entire 40
  1555.        megabyte hard  disk gets backed  up on  a tape cartridge  that is
  1556.        about the size of a deck of cards.  
  1557.  
  1558.        We have found that convenience plays a big part in whether timely
  1559.        backups are  made of our  files.  If it  is a painful  process to
  1560.        make a  backup, it won't be done  as often as it should.   If the
  1561.        process is easy  and doesn't take much time, then the job will be
  1562.        done consistently.   If  you have a  hard disk  that is  about 30
  1563.        megabytes or  larger and  find that  you are  not making  regular
  1564.        backups, you  should consider purchasing  either a tape  drive or
  1565.        special backup  software.   They are  relatively inexpensive  and
  1566.        well worth the investment.
  1567.  
  1568.  
  1569.  
  1570.   24  KEYBOARD
  1571.   ----------------------------------------------------------------------
  1572.  
  1573.  
  1574.                           Keyboard Conventions 
  1575.  
  1576.        In this manual, and on many File  Express screens, when you see a
  1577.        letter, number or special key enclosed in <brackets>, it means to
  1578.        press the key enclosed in the brackets.  For example,  <F1> means
  1579.        the F1  key.    <Alt-F1>  means  hold  down  Alt  and  press  F1.
  1580.        Likewise, <Shift-F1>  means hold  down Shift  and  press F1,  and
  1581.        <Ctrl-F1> means hold down Ctrl and press F1.  
  1582.  
  1583.        When a  letter <A>  through <Z>  appears in  brackets, either  an
  1584.        upper-case (capital) or lower-case (small) letter may be entered.
  1585.        Sometimes at the bottom  of a screen, the first letter  of a word
  1586.        is  enclosed in brackets, such as <P>rint.   This is a short-hand
  1587.        way  to  indicate that  pressing  the  P  key selects  the  Print
  1588.        function. 
  1589.  
  1590.   The <Esc> Key 
  1591.        The Escape Key,  <Esc>, can be used  anywhere in File  Express to
  1592.        back out of a section of  the program and return to the  previous
  1593.        menu.  For  example, if you are  adding records and the  last one
  1594.        has been  added, press <Esc> to return to  the Main Menu.  If you
  1595.        are involved in a lengthy function, such as defining a report  or
  1596.        defining a new  database, and you press <Esc>,  File Express does
  1597.        not leave the work you are doing without first asking if you want
  1598.        to abandon it.  For example,  if you are defining a new  database
  1599.        and you press <Esc>, the following message appears: 
  1600.  
  1601.         Press  <Esc> for Main Menu,  <Enter> to resume  or 
  1602.              <Spacebar> to start over 
  1603.  
  1604.        File Express gives you a second chance,  just in case you pressed
  1605.        the <Esc> key unintentionally. 
  1606.  
  1607.        Sometimes the <Esc>  key backs up only to the beginning of a line
  1608.        or  the beginning of a logical sequence  of events, in which case
  1609.        pressing it a second time exits to the previous menu. 
  1610.  
  1611.        When a menu is displayed and you want to return to the Main Menu,
  1612.        press <Esc>.   In fact, pressing  <Esc> repeatedly always  brings
  1613.        you back to the Main Menu. 
  1614.  
  1615.   Single Keystroke Input 
  1616.        When a prompt requires only one key to be pressed, the command is
  1617.        carried out  immediately without  having to  press <Enter>.   All
  1618.        single-key commands make a  short "blip" sound (unless  the sound
  1619.        option has been turned off). 
  1620.  
  1621.        Whenever  an  incorrect  or inappropriate  key  is  pressed, File
  1622.        Express sounds a two tone warning and ignores the keystroke. 
  1623.  
  1624.  
  1625.  
  1626.                                                             KEYBOARD  25
  1627.   ----------------------------------------------------------------------
  1628.  
  1629.        The <F10> key is used in many places to indicate you are finished
  1630.        entering information and are ready  to move on to the  next step.
  1631.        For example, if  a new  database record has  ten fields, but  you
  1632.        only need to put  data into the first field, press  the <F10> key
  1633.        after entering the data in the first field.   <Ctrl-W> and <Ctrl-
  1634.        Enter> can also be used as the <F10> key.
  1635.  
  1636.   Input Fields Of Two Or More Characters 
  1637.        All questions  or entries that  let you  press more than  one key
  1638.        must be followed by an <Enter> before File Express processes  the
  1639.        keystrokes.  On any prompt or field letting you enter two or more
  1640.        characters, the following editing keys may be used: 
  1641.  
  1642.        <Backspace>    Erases the character to the left of the cursor. 
  1643.  
  1644.        <Del>          Erases the character the cursor is on. 
  1645.  
  1646.        <Ins>          Toggles Insert mode on and  off.  When Insert mode
  1647.                       is on, the cursor increases in  size.   Characters
  1648.                       are  inserted at the  cursor as they  are entered,
  1649.                       and  the characters to the right of the cursor are
  1650.                       shifted  toward  the end  of  the field.    If any
  1651.                       characters  are pushed off  the end of  the field,
  1652.                       File Express gives a short "blip" sound. 
  1653.  
  1654.        <Left>         Moves the cursor left, toward the beginning of the
  1655.                       field.  No characters are erased.  
  1656.  
  1657.        <Right>        Moves  the cursor  right, toward  the  end of  the
  1658.                       field.  No characters are erased. 
  1659.  
  1660.        <Home>         Moves  the cursor  to the  first  position of  the
  1661.                       field.   If  the cursor  is already  in the  first
  1662.                       position of the  field, <Home> moves to  the first
  1663.                       field on the screen. 
  1664.  
  1665.        <End>          Moves  the cursor  to the  position  following the
  1666.                       last non-blank character on the line. 
  1667.  
  1668.        <Ctrl-Home>    Erases the entire line and puts the cursor back at
  1669.                       the beginning of the field. 
  1670.  
  1671.        <Ctrl-End>     Erases all characters  from the cursor to  the end
  1672.                       of the field.  The cursor does not move. 
  1673.  
  1674.        <Enter>        Indicates all  the data  has been  entered in  the
  1675.                       field.  <Enter> may be pressed no matter where the
  1676.                       cursor  is within a field, and the entire field is
  1677.                       processed as input. 
  1678.  
  1679.  
  1680.  
  1681.   26  KEYBOARD
  1682.   ----------------------------------------------------------------------
  1683.  
  1684.        <PgDn>         When the information being displayed occupies more
  1685.                       than  one screen, this  key "scrolls" down  to the
  1686.                       next  full screen.  For example, the report writer
  1687.                       lets you  use up  to 200  lines, but only  sixteen
  1688.                       lines fit in  the window.  Pressing  <PgDn> causes
  1689.                       the   second  sixteen   lines  to   be  displayed.
  1690.                       Pressing  it  again  displays  the  third  sixteen
  1691.                       lines. 
  1692.  
  1693.        <PgUp>         This  key  is  the  opposite  of  <PgDn>.    On  a
  1694.                       multi-screen display  it causes the  previous full
  1695.                       screen of information to be displayed. 
  1696.  
  1697.        Characters may  not be  entered past  the end  of a  field.   Any
  1698.        attempt to enter further characters causes the  computer to beep.
  1699.        However, all control keys (<Enter>, <Backspace>, <F10>, etc.) may
  1700.        still be used. 
  1701.  
  1702.   Using a Mouse
  1703.        File  Express  supports  the  use  of  a  Mouse  for  many  input
  1704.        functions.    You can  use a  mouse to  select many  File Express
  1705.        features and  options.   Before  you  do so,  however,  you  must
  1706.        install your  mouse according  to the  instruction in  your mouse
  1707.        documentation.  This includes the installation of  a mouse driver
  1708.        telling your computer a  mouse device is available for use.  Once
  1709.        this is done, File  Express automatically enables your mouse  for
  1710.        use in the program.
  1711.  
  1712.        To File Express  the mouse is an  extension of the keyboard.   If
  1713.        you move  your mouse  up (toward  the back  of  the table),  File
  1714.        Express interprets the movement as an <Up> cursor key.  Likewise,
  1715.        if you move  the mouse down (toward  the front of your  table), a
  1716.        <Down>  cursor key  is  sent to  File  Express.   Left and  right
  1717.        movement translate  to <Left>  and  <Right> cursor  keys.   Since
  1718.        selections on all menu screens in File Express can be  controlled
  1719.        by using the cursor keys, the movement of a mouse  can be used to
  1720.        make the same selections.   Moving the mouse up and  down or left
  1721.        and right causes the  highlighted selection bar  on the menus  to
  1722.        move from one option to the next.
  1723.  
  1724.        Pressing the left  button on your mouse  is the same  as pressing
  1725.        the <Enter> key.  When you have highlighted the desired option on
  1726.        a menu screen, press the left mouse button to invoke it.
  1727.  
  1728.        Pressing the right  button on your mouse is  the same as pressing
  1729.        the <Esc> key.   If you want to go back one  menu level or cancel
  1730.        any  operation you  are  involved in,  pressing the  right button
  1731.        takes you back.
  1732.  
  1733.        Anywhere in File Express that a cursor key, <Enter> key, or <Esc>
  1734.        key is appropriate, you can use the mouse as an alternative.
  1735.  
  1736.  
  1737.  
  1738.                                                             KEYBOARD  27
  1739.   ----------------------------------------------------------------------
  1740.  
  1741.        If you have  a mouse driver installed in  your computer but don't
  1742.        want the mouse to work in  File Express, use the /I command  line
  1743.        option when starting the program.
  1744.  
  1745.  
  1746.  
  1747.   28  KEYBOARD
  1748.   ----------------------------------------------------------------------
  1749.  
  1750.   Context-Sensitive Help System
  1751.        File  Express offers you context-sensitive help that is available
  1752.        at any time.  Virtually every menu item, question, prompt,  error
  1753.        message, and option  in File Express has a  help screen connected
  1754.        to it.  There are well over 500 different help screens available.
  1755.        No matter where you are in the program, you can press  <Alt-H> to
  1756.        get more information.
  1757.  
  1758.        For  example, if you are  about to import a  file but you are not
  1759.        sure what kind  of file  you have,  you can  press <Alt-H>  while
  1760.        viewing the Import Menu and File Express tells you a little about
  1761.        each type of file format.
  1762.  
  1763.        If you are about to enter a calculated field, you can press <Alt-
  1764.        H> for  a  list  of  all  the  functions  available  and  helpful
  1765.        examples.
  1766.  
  1767.        If an error message is displayed on the screen, pressing  <Alt-H>
  1768.        tells you about the error and what to do to correct it.
  1769.  
  1770.        Help topics  can be from  one to several  pages in length.   If a
  1771.        topic occupies more than  one screen, you will see --  more -- at
  1772.        the bottom of  the window and you  can use the <PgDn>  to display
  1773.        additional information.  At the  very bottom of the last  page of
  1774.        each Help topic you will see -- end --.
  1775.  
  1776.        Many Help screens also refer  you to a particular section in  the
  1777.        User's Manual for additional information concerning the topic.
  1778.  
  1779.        To close the Help window, press any key other than the <PgUp> and
  1780.        <PgDn> keys.
  1781.  
  1782.        Help File
  1783.        The information  and index necessary to display  the Help screens
  1784.        are contained in the files FE5.HLP and FE5.HLI which are provided
  1785.        with  File Express.  If File Express  can't find these files when
  1786.        you press <Alt-H>, the window pops up with the message, Help File
  1787.        Not Found...press any key.   If this happens, make sure you  have
  1788.        copied FE5.HLP and FE5.HLI onto your hard disk or that  the files
  1789.        are on your default diskette drive.
  1790.  
  1791.  
  1792.  
  1793.                                                             KEYBOARD  29
  1794.   ----------------------------------------------------------------------
  1795.  
  1796.   Information Window
  1797.        Whenever  you  are  using  File  Express,  you  can  pop  up   an
  1798.        information  screen showing you  many things about  your computer
  1799.        system  and about  the current  conditions  inside File  Express.
  1800.        Pressing <Ctrl-V> displays the Version/Status Screen which  looks
  1801.        like this:
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.                  Registered Version has screen picture here
  1809.                
  1810.              
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.        As you can see, the  screen displays the version of  File Express
  1820.        you are using,  the amount of free memory  currently available to
  1821.        File Express,  the amount of free  disk space on the  Data Drive,
  1822.        and the Path to the  Data Drive.  Below this  is the name of  the
  1823.        database that is open, how many records you have added during the
  1824.        current  session and how many records you have changed.  The name
  1825.        of the  current index  and the  total number  of  records in  the
  1826.        database are  also shown.  The  last piece of information  at the
  1827.        bottom of the  window indicates whether or  not you have a  mouse
  1828.        driver installed that  File Express can use.   The version number
  1829.        of the mouse driver is shown along with the type of mouse:
  1830.  
  1831.             1 = bus mouse
  1832.             2 = serial mouse
  1833.             3 = InPort mouse
  1834.             4 = PS/2 mouse
  1835.             5 = Hewlett-Packard mouse
  1836.  
  1837.        Press any key to close the Version/Status Window.
  1838.  
  1839.  
  1840.  
  1841.   30  KEYBOARD
  1842.   ----------------------------------------------------------------------
  1843.  
  1844.   Pop up Calculator
  1845.        File  Express has  a  powerful, built-in  calculator that  can be
  1846.        popped up  at any  time by  pressing <Ctrl-K>.   This  calculator
  1847.        harnesses the full  power of the formula handler that  is part of
  1848.        File Express.  
  1849.  
  1850.        After popping up the calculator, which looks like this:
  1851.  
  1852.  
  1853.  
  1854.  
  1855.  
  1856.  
  1857.                  Registered Version has screen picture here
  1858.  
  1859.  
  1860.  
  1861.        You can enter simple mathematical formulas like:
  1862.  
  1863.                               23 * (34 + 45)
  1864.  
  1865.        and the  answer  appears below  the  input line  when  you  press
  1866.        <Enter>.  You can also use any of File Express' math functions:
  1867.  
  1868.                     SIN(45) + COS(30) * SQR(ATN(82.5))
  1869.  
  1870.        or even any of the string or date functions:
  1871.  
  1872.                           FutureDate(TODAY, 45)
  1873.  
  1874.        If  one of  the records  from the  database is  displayed on  the
  1875.        screen behind the calculator, you can refer  to any of the fields
  1876.        in the record:
  1877.  
  1878.                             TOTAL SALES * .118
  1879.  
  1880.        Whenever an answer has been displayed on the calculator, you  can
  1881.        have the answer played back to  File Express as if you had  typed
  1882.        it in  yourself.   To  do this,  press <Alt-C>.   The  calculator
  1883.        disappears and the  answer is played  back.  If  you want to  put
  1884.        away the calculator without remembering the answer, press <Esc>. 
  1885.  
  1886.  
  1887.  
  1888.                                                             TUTORIAL  31
  1889.   ----------------------------------------------------------------------
  1890.  
  1891.  
  1892.                          A File Express Tutorial
  1893.  
  1894.   Instructions
  1895.        The following tutorial  is provided to acquaint you  with many of
  1896.        the features of File Express and to give you practical experience
  1897.        in creating and maintaining databases.
  1898.  
  1899.        The  tutorial is  presented  in  two  sections,  each  containing
  1900.        several  lessons.   The  first  section,  A  Brief Tour  of  File
  1901.        Express, uses the TUTORIAL database included in the  File Express
  1902.        package to  show you some of the many  features and options.  The
  1903.        second section,  Defining a  New Database,  takes you though  the
  1904.        process of defining the  fields for a  database, adding a  couple
  1905.        records,and many other common procedures.
  1906.  
  1907.        The lessons in section one all begin from the Main Menu and leave
  1908.        you at the Main Menu at the end of the lesson.  No information in
  1909.        the  TUTORIAL  database is  changed  during the  lessons  in this
  1910.        section.   Because of  this, each  lesson is  independent of  the
  1911.        others and can  be followed at any time  without having completed
  1912.        any  of the  other  lessons in  the  section.   Just  start  File
  1913.        Express, open the TUTORIAL database and start the lesson of  your
  1914.        choice.  The lessons in section one include:
  1915.  
  1916.                       Opening a Database
  1917.                       Find a Record
  1918.                       Printing a Report
  1919.  
  1920.        The lessons in  section two are designed to  be followed step-by-
  1921.        step in  order.  Each lesson  assumes you have completed  all the
  1922.        previous lessons.  Because each  subsequent lesson depends on the
  1923.        information  entered in the  previous lesson, don't  skip around.
  1924.        The lessons in section two include:
  1925.  
  1926.                       Defining a New Database
  1927.                       Adding New Records
  1928.                       Painted Screens
  1929.                       Quick Scan
  1930.                       Create a Report
  1931.  
  1932.  
  1933.  
  1934.   32  TUTORIAL
  1935.   ----------------------------------------------------------------------
  1936.  
  1937.        As you go through  the tutorial, you  are asked to type  specific
  1938.        strings of characters and  to press specific  keys.  Each  string
  1939.        you are to type is highlighted  and is on a line by itself.   For
  1940.        example:  
  1941.                              Phone Directory
  1942.  
  1943.        Just type the two  words.  Don't press <Enter> at  the end unless
  1944.        it is part of the entry.  For example:
  1945.  
  1946.                          Phone Directory <Enter>
  1947.  
  1948.        Individual  control keys, such as the cursor keys, function keys,
  1949.        alt key combinations, etc. are enclosed in angle brackets and are
  1950.        either part of  a text  entry or are  presented by themselves  on
  1951.        their own line.  For example:
  1952.  
  1953.                              <Up><Up><Enter>
  1954.  
  1955.        means press the <Up> cursor key  twice and then the <Enter>  key.
  1956.        Sequential entries are presented as:
  1957.  
  1958.                       Jim            <Enter>
  1959.                       Smith          <Enter>
  1960.                       Acme Company   <Enter>
  1961.                       123 1st St.    <Enter>
  1962.                       Seattle        <Enter>
  1963.  
  1964.        The <Enter> keys are sometimes lined up to the right just to make
  1965.        them easier to read.  Don't  enter the spaces between the end  of
  1966.        the string and the <Enter>.
  1967.  
  1968.        Some commands have an explanation of what they do in parentheses.
  1969.  
  1970.             <Down> <Enter> (move to Last Name field and press <Enter>)
  1971.  
  1972.        Don't type the parentheses or what they contain.
  1973.  
  1974.        At various points in the  tutorial there are pictures of how  the
  1975.        screen should look at that point.
  1976.  
  1977.  
  1978.  
  1979.                                                             TUTORIAL  33
  1980.   ----------------------------------------------------------------------
  1981.  
  1982.                 Section One: A Brief Tour of File Express
  1983.  
  1984.  
  1985.   Starting the Tutorial
  1986.        The  tutorial begins  by showing  you  some of  the features  and
  1987.        options  of File Express  using the TUTORIAL  database that comes
  1988.        with  the package.    Before  starting,  make sure  the  TUTORIAL
  1989.        database is available.  If you are using a hard disk, the INSTALL
  1990.        program copied  the TUTORIAL  database into  a subdirectory  call
  1991.        TUTOR which  is  off your  program  subdirectory.   If  you  have
  1992.        deleted the TUTORIAL  files, you must either copy  them back onto
  1993.        your  hard disk or  use a diskette  containing them.   If you are
  1994.        using a diskette drive  system, the TUTORIAL  database is on  the
  1995.        diskette titled Help Disk.
  1996.  
  1997.  
  1998.   Lesson One: Opening A Database 
  1999.        This section  assumes the  File Express  program files  are in  a
  2000.        subdirectory  of  drive C,  called  FE5  which  is off  the  root
  2001.        directory or,  if  you are  using  a diskette  system,  that  the
  2002.        program files  are on the  Program Disk in  drive A.   It is also
  2003.        assumed that  the TUTORIAL  files are  in a  subdirectory of  FE5
  2004.        called TUTOR, or if you are  using a diskette system, are on  the
  2005.        Help Disk in drive B.  If your files are in a different place you
  2006.        will  have  to  change  the  start-up  commands  to  suite   your
  2007.        environment.
  2008.  
  2009.        We start the tutorial by starting File Express.  Type:
  2010.  
  2011.                                 FE <Enter>
  2012.  
  2013.        This brings up the Opening Screen which  prompts you to Press any
  2014.        key to continue.  Press:
  2015.  
  2016.                                 <Spacebar>
  2017.  
  2018.        File Express now asks  you to: Indicate the drive to  be used for
  2019.        Data.  Answer:
  2020.  
  2021.                                     C
  2022.  
  2023.        Remember, don't press the <Enter>  key.  Single letter  responses
  2024.        don't need  it.   If you  are using  a diskette  system, press  B
  2025.        instead.
  2026.  
  2027.        Now File Express  wants to know  path to your data.   If you  are
  2028.        using a hard disk, the default prompt should read C:\FE5 with the
  2029.        cursor blinking at the end of it.  Press:
  2030.  
  2031.                                  <Enter>
  2032.  
  2033.  
  2034.  
  2035.   34  TUTORIAL
  2036.   ----------------------------------------------------------------------
  2037.                                  empty
  2038.  
  2039.  
  2040.  
  2041.                                                             TUTORIAL  35
  2042.   ----------------------------------------------------------------------
  2043.  
  2044.        If you have a diskette system, the default was B:\ and you should
  2045.        just press <Enter>.
  2046.  
  2047.        Next the Open A Database screen displays.  It looks like this: 
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.  
  2054.                  Registered Version has screen picture here
  2055.  
  2056.  
  2057.  
  2058.  
  2059.  
  2060.  
  2061.  
  2062.  
  2063.  
  2064.  
  2065.  
  2066.        Before you can add records to  a database, or print a report,  or
  2067.        do anything  in File  Express, the  program needs  to know  which
  2068.        database you want  to work  with.  This  screen displays all  the
  2069.        databases on your disk, and asks which one is to be opened. 
  2070.  
  2071.        If you  have  just installed  File  Express, there  is  only  one
  2072.        database displayed;  it is called  TUTORIAL.  It  is the one  you
  2073.        copied onto your  disk during the installation process.   If your
  2074.        screen doesn't look like this, or if you get a message that there
  2075.        are no  databases on  the disk,  review the  installation process
  2076.        before proceeding with the tutorial. 
  2077.  
  2078.        The databases that are found  on the drive and path  selected are
  2079.        displayed on the screen alphabetically. 
  2080.  
  2081.  
  2082.        Since TUTORIAL  is  the only  database  on this  subdirectory  or
  2083.        diskette, it is the only name listed on the screen and the prompt
  2084.        at the bottom already defaults to TUTORIAL so just press:
  2085.  
  2086.                                  <Enter>
  2087.  
  2088.  
  2089.  
  2090.   36  TUTORIAL
  2091.   ----------------------------------------------------------------------
  2092.  
  2093.        Now that the database has been selected, File Express goes to its
  2094.        Main Menu screen, which looks like this: 
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.                  Registered Version has screen picture here
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.   The Main Menu
  2113.        Wherever you  are  in the  File  Express program,  it  is  always
  2114.        possible to return to the Main Menu by pressing the <Esc> key one
  2115.        or more times. 
  2116.  
  2117.  
  2118.  
  2119.                                                             TUTORIAL  37
  2120.   ----------------------------------------------------------------------
  2121.  
  2122.        Another option available  at any time is a  window describing the
  2123.        environment File  Express  finds itself  in.   To  pull  up  this
  2124.        window, press:
  2125.  
  2126.                                  <Ctrl-V>
  2127.  
  2128.        The Version/Status Screen appears:
  2129.  
  2130.  
  2131.  
  2132.  
  2133.  
  2134.  
  2135.                  Registered Version has screen picture here
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.        This screen displays  the version number,  amount of free  memory
  2147.        and disk space, the data drive path name, some information on the
  2148.        current database,  and whether  or not  a mouse  driver has  been
  2149.        installed.  To close the window press:
  2150.  
  2151.                                 <Spacebar>
  2152.  
  2153.  
  2154.  
  2155.   38  TUTORIAL
  2156.   ----------------------------------------------------------------------
  2157.  
  2158.  
  2159.   Context-Sensitive Help Screens
  2160.        If you have problems or questions about what you are doing at any
  2161.        time in File Express, you can pop up a help screen.  All the help
  2162.        screens are context-sensitive, meaning that the help  information
  2163.        displayed directly  applies to  what you are  doing.   Every menu
  2164.        option, prompt, field  input, and error  message in File  Express
  2165.        has its own help screen. 
  2166.  
  2167.        Let's  move  the highlight  bar  on  the Main  Menu  down  to the
  2168.        Find/Edit Records option by pressing:
  2169.  
  2170.                            <Spacebar><Spacebar>
  2171.  
  2172.        When the Find Records selection is highlighted, press:
  2173.  
  2174.                                  <Alt-H>
  2175.  
  2176.        to display the Help screen for this option:
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.                  Registered Version has screen picture here
  2184.  
  2185.  
  2186.  
  2187.  
  2188.  
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.        Press:
  2195.  
  2196.                                 <Spacebar>
  2197.  
  2198.        to restore the screen.
  2199.  
  2200.  
  2201.  
  2202.                                                             TUTORIAL  39
  2203.   ----------------------------------------------------------------------
  2204.  
  2205.   Lesson Two: Finding A Record 
  2206.        Let's  look at  some of the  records in the  TUTORIAL database by
  2207.        going  to  the  Find/Edit  Records  section.    There  are  three
  2208.        different ways you can select this  option.  You will notice that
  2209.        the first option on the Main  Menu is highlighted.  You can  move
  2210.        this  highlight  bar  down  to  each  successive menu  option  by
  2211.        pressing either the down cursor key, the spacebar or, if you have
  2212.        a mouse,  by moving the  mouse down.   It will also  move back up
  2213.        with  the up cursor key,  or by moving the  mouse up.  The second
  2214.        way to select a menu option is by pressing the number on the left
  2215.        side.  The  third way, and the  one we will use now,  is to press
  2216.        the first letter of the description: O for Open a Database, A for
  2217.        Add New Records, etc.   It is not necessary to  press the <Enter>
  2218.        key; menu choices are  single keystroke commands.   To select the
  2219.        Find/Edit Records option, press:
  2220.  
  2221.                                     F
  2222.  
  2223.        The Find Menu, appears: 
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.                  Registered Version has screen picture here
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.        The most  common choice on  this menu  is the first  one, labeled
  2242.        Find A Record.  Press:
  2243.                                     1
  2244.  
  2245.        to bring up  the Record Selection screen  so we can look  at some
  2246.        records in this tutorial database. 
  2247.  
  2248.  
  2249.  
  2250.   40  TUTORIAL
  2251.   ----------------------------------------------------------------------
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.                  Registered Version has screen picture here
  2263.  
  2264.  
  2265.  
  2266.  
  2267.  
  2268.  
  2269.  
  2270.        Although this screen has lots of information on it, there is only
  2271.        one line at the bottom for data; everything else is  information-
  2272.        al. 
  2273.  
  2274.        The left  side of  the screen  has a  list of  the fields in  the
  2275.        database for reference.  In a  database of your own, the list  of
  2276.        fields would  be  familiar, because  you  would have  created  it
  2277.        yourself.  For this  tutorial database, this is the first time we
  2278.        have seen the list of fields  the database contains.  As you  can
  2279.        see,  each record in  this database has a  first name, last name,
  2280.        company  name,  address,  date,  and  some  fields  for  entering
  2281.        numbers.
  2282.  
  2283.        The right side of the screen  is a brief "help screen" describing
  2284.        some of the  common ways to  find a  record and giving  examples.
  2285.        Take a moment to examine this screen, including the  notes on the
  2286.        right side.   If it is  not clear to  you what all of  them mean,
  2287.        that's OK.   This  tutorial will  help to  clarify the  concepts.
  2288.        Additional information can be read in the Formulas section.
  2289.  
  2290.        The database we are about to search contains 20 fictitious  names
  2291.        and addresses.   Let's  try finding the  record for  Penny Banks.
  2292.        Notice  that the cursor is positioned on the line that says: Find
  2293.        all the  records where:.   File  Express is  waiting  for you  to
  2294.        complete the sentence.  The default entry for the question is ALL
  2295.        but we are going  to type right over  it.  Since we want  to find
  2296.        Miss Banks' record, complete the sentence like this, type: 
  2297.  
  2298.                         last name is banks <Enter>
  2299.  
  2300.  
  2301.  
  2302.                                                             TUTORIAL  41
  2303.   ----------------------------------------------------------------------
  2304.  
  2305.        Immediately, the record for  Penny Banks displays on  the screen.
  2306.        (If you are using a diskette system, you are a patient person and
  2307.        know that "immediately" really means "a moment or two", right?)
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.  
  2315.  
  2316.                  Registered Version has screen picture here
  2317.  
  2318.  
  2319.  
  2320.  
  2321.  
  2322.  
  2323.  
  2324.  
  2325.        Once again, here are all the field names but they are arranged on
  2326.        a  Painted screen.  We  will show you how  to create this type of
  2327.        screen later in Section Two.
  2328.  
  2329.        Note the commands along  the bottom line.   Since these  commands
  2330.        are the only keys you can press at this point, they are a sort of
  2331.        one-line menu, listing the things  you can do, and asking you  to
  2332.        select one.  Let's  try pressing the letter N for  "Next" and see
  2333.        what happens.  Type:
  2334.  
  2335.                                     N
  2336.  
  2337.        Remember, no <Enter>.  File Express advances to the next  record.
  2338.        After  this tutorial  database  was  created,  it was  sorted  in
  2339.        alphabetic sequence by Last Name,  so when you press N,  the next
  2340.        record you see is the next one alphabetically.  Press 
  2341.  
  2342.                                    NNN
  2343.  
  2344.        again  a few times and notice how quickly File Express finds each
  2345.        record and displays it. 
  2346.  
  2347.        Now press 
  2348.  
  2349.                                    PPP
  2350.  
  2351.        a  few  times.    File  Express  displays  backward  through  the
  2352.        database.
  2353.  
  2354.        Now lets go back to the Main Menu.  Press:
  2355.  
  2356.  
  2357.  
  2358.   42  TUTORIAL
  2359.   ----------------------------------------------------------------------
  2360.  
  2361.                                 <Esc><Esc>
  2362.   Lesson Three: Print a Report
  2363.  
  2364.        The Report Writer is where you tell File Express what you want to
  2365.        print and  how you want  it to look.   With the Main  Menu on the
  2366.        screen, press:
  2367.  
  2368.                                     R
  2369.  
  2370.        to display the Report Menu:
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.                  Registered Version has screen picture here
  2378.  
  2379.  
  2380.  
  2381.  
  2382.  
  2383.  
  2384.  
  2385.  
  2386.  
  2387.  
  2388.        We have already  defined a nice report for  the TUTORIAL database
  2389.        so press:
  2390.  
  2391.                                     C
  2392.  
  2393.        to choose an  existing report format file.   Move the highlighted
  2394.        bar to the TUTORIAL file using the cursor keys and press:
  2395.  
  2396.                                  <Enter>
  2397.  
  2398.        When the Report Options Menu displays, press:
  2399.  
  2400.                                     P
  2401.  
  2402.        to print the report.  File Express asks where you want the report
  2403.        displayed.  Press:
  2404.  
  2405.                                     S
  2406.  
  2407.        to print the report to the screen:
  2408.  
  2409.  
  2410.  
  2411.                                                             TUTORIAL  43
  2412.   ----------------------------------------------------------------------
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.        When the report has printed, press:
  2419.  
  2420.                                <Esc> <Esc>
  2421.  
  2422.        to return to the Main Menu.
  2423.  
  2424.  
  2425.  
  2426.   44  TUTORIAL
  2427.   ----------------------------------------------------------------------
  2428.  
  2429.                    Section Two: Defining a New Database
  2430.  
  2431.  
  2432.   Start at the Main Menu
  2433.        The second section of the tutorial takes you through the  process
  2434.        of  defining a new  database and adding  records to it.   Then we
  2435.        show you  how to set  up custom input  screens, use the  powerful
  2436.        Quick Scan mode  where you can see  twenty records at a  time and
  2437.        edit them  right in the list.  We  also go through the process of
  2438.        creating indexes and reports.
  2439.  
  2440.        The first section of the tutorial left you at the Main  Menu with
  2441.        the TUTORIAL database open.  We will start from here.  If you are
  2442.        starting this  section  without  having  completed  Section  One,
  2443.        please follow Lesson  One of that section One to  the point where
  2444.        the Main Menu appears.
  2445.  
  2446.   Lesson One: Defining a New Database
  2447.        Defining a  new database  begins on the  Open a  Database screen.
  2448.        This screen is displayed  after the Drive  and Path Name  prompts
  2449.        when starting File Express  and it also  appears when you  select
  2450.        the Open a Database option  from the Main Menu.  If you have just
  2451.        completed  Section One  of the  tutorial,  the Main  Menu is  now
  2452.        displayed on  the screen.  To display the Open a Database screen,
  2453.        press:
  2454.  
  2455.                                     1
  2456.  
  2457.        If  you   are  starting  File   Express  from  DOS,   follow  the
  2458.        instructions in  Lesson  One of  Section  One until  the  Open  a
  2459.        Database screen appears:
  2460.  
  2461.  
  2462.  
  2463.  
  2464.  
  2465.  
  2466.                  Registered Version has screen picture here
  2467.  
  2468.  
  2469.  
  2470.  
  2471.  
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478.        The Database name prompt  at the bottom  of the screen  currently
  2479.        defaults to TUTORIAL.  To start a new database you must type in a
  2480.  
  2481.  
  2482.  
  2483.                                                             TUTORIAL  45
  2484.   ----------------------------------------------------------------------
  2485.  
  2486.        new name that  is not on the list in the window.  We will start a
  2487.        database called  EXAMPLE.    If  someone else  has  already  gone
  2488.        through this section  of the tutorial and has  created an EXAMPLE
  2489.        database,  you  can   either  erase  the  existing   database  by
  2490.        highlighting the  EXAMPLE line  and pressing  the <Alt-D>  key or
  2491.        select a different name for the new database, like EXAMPLE2.  The
  2492.        tutorial assumes  you are  creating EXAMPLE  so if  your name  is
  2493.        different, substitute your name wherever EXAMPLE is used.
  2494.  
  2495.        At the Database name prompt, type:
  2496.  
  2497.                         EXAMPLE <Spacebar><Enter>
  2498.  
  2499.        The <Spacebar> blanks  out any letters remaining on  the name you
  2500.        are typing over.
  2501.  
  2502.        The Define Database screen now appears and looks like this:
  2503.  
  2504.  
  2505.  
  2506.  
  2507.  
  2508.  
  2509.                  Registered Version has screen picture here
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.        The Example database we are  going to define is a  simple mailing
  2521.        list consisting  of date, name,  and address fields,  two numeric
  2522.        fields, a formula field, and a comment field.  
  2523.  
  2524.   Field Name
  2525.        Each field in a database must have a field name.  Field names can
  2526.        consist of  up to  twelve characters and  can include  spaces and
  2527.        other punctuation marks.
  2528.  
  2529.        Field number 1 will be the Date field.  Type:
  2530.  
  2531.                            When Entered <Enter>
  2532.  
  2533.   Field Type
  2534.        The cursor moves over to the -type-  column.  A field can be  one
  2535.        of  six  different   field  types  supported  by   File  Express,
  2536.        Character,  Numeric,   Formula,  Date,  User-defined,   and  Text
  2537.  
  2538.  
  2539.  
  2540.   46  TUTORIAL
  2541.   ----------------------------------------------------------------------
  2542.  
  2543.        Formula.  The default is Character.   A field type is selected by
  2544.        pressing its first letter.  Our When Entered field will be a Date
  2545.        type, so press:
  2546.  
  2547.                                     D
  2548.  
  2549.        Date fields have a set length and  format.  The default length is
  2550.        8 and the default format is MM-DD-YY.  This can be change to  any
  2551.        one of four different formats by using the Setup program included
  2552.        with File Express.   Since the length and format are  known, File
  2553.        Express automatically  fills in these  two columns on  the screen
  2554.        for you.
  2555.  
  2556.        The cursor is now at the -field name- column waiting for the next
  2557.        entry.  Type:
  2558.  
  2559.                             First Name<Enter>
  2560.  
  2561.        To accept the -type- default answer if C, press
  2562.  
  2563.                                  <Enter>
  2564.  
  2565.        Our First Name  field is to be twelve characters long.  This will
  2566.        accommodate most first names.  Type
  2567.  
  2568.                                 12<Enter>
  2569.  
  2570.        The word  Character is placed in the  -format- column and you are
  2571.        ready for field  three.  Type in the following entries to fill in
  2572.        the next five fields:
  2573.  
  2574.                  Last Name <Enter> <Enter> 20 <Enter>
  2575.                  Address <Enter> <Enter> 30 <Enter>
  2576.                  City <Enter> <Enter> 20 <Enter>
  2577.                  State <Enter> <Enter> 2 <Enter>
  2578.                  Zip Code <Enter> <Enter> 10 <Enter>
  2579.  
  2580.        Your screen should now look like this:
  2581.  
  2582.  
  2583.  
  2584.        The next two fields will be Numeric.  The first be a whole number
  2585.        field and the second will contain dollar amounts.  For the first,
  2586.        type:
  2587.  
  2588.                  How Many<Enter>N3<Enter>0<Enter>
  2589.  
  2590.        This  defines a field  with a name  of How Many  that is Numeric,
  2591.        three digits long,  with zero decimal places.   The ### in  the -
  2592.        format- column indicates this.  This field will later accommodate
  2593.        numbers from -99 to 999.  
  2594.  
  2595.  
  2596.  
  2597.                                                             TUTORIAL  47
  2598.   ----------------------------------------------------------------------
  2599.  
  2600.        For the second numeric field, actually field number 9, type:
  2601.  
  2602.                  How Much<Enter>N6<Enter><Enter>
  2603.  
  2604.        The last <Enter> accepted the default of two decimal places.  The
  2605.        -format- column shows ###.## to indicate the length and decimals.
  2606.  
  2607.        Now, for a  formula field to multiply  the How Many field  by the
  2608.        How Much field.  We will call it Balance Due.  Type:
  2609.  
  2610.                  Balance Due<Enter>F8<Enter><Enter>
  2611.  
  2612.        The F  in the -type- column  indicates a Formula  field.  Formula
  2613.        fields are  automatically calculated and  filled in for  you when
  2614.        you are later entering records into your database.
  2615.  
  2616.        The screen now looks like this:
  2617.  
  2618.        File Express is  now prompting for you  to enter the  formula for
  2619.        the field.  Type:
  2620.  
  2621.                        how many * how much <Enter>
  2622.  
  2623.        You could  have used  all capital  letters if you  wanted.   File
  2624.        Express ignores  the  case of  field  names.   Whenever  you  are
  2625.        referring to a field, you can either use the name of the field or
  2626.        an F followed  by the field number  (F8 for example).   Thus, the
  2627.        formula could be F8 * F9.   Using field names makes it  easier to
  2628.        later decipher  a  formula,  but if  you  have any  fields  in  a
  2629.        database  that have the same name, the F-field number alternative
  2630.        is the only way to refer to the second of the two fields.
  2631.  
  2632.  
  2633.        The last field will be a nice big comment field.  Type:
  2634.  
  2635.                  Comments<Enter><Enter>200<Enter>
  2636.  
  2637.        Your screen should look like this:
  2638.  
  2639.  
  2640.  
  2641.   48  TUTORIAL
  2642.   ----------------------------------------------------------------------
  2643.  
  2644.  
  2645.  
  2646.  
  2647.        File Express is  waiting for us to  type in a twelfth  field name
  2648.        but we only want the eleven we have defined.  Instead of entering
  2649.        another field name, just press:
  2650.  
  2651.                                  <Enter>
  2652.  
  2653.        File Express jumps out of input mode  and offers you some choices
  2654.        at the bottom of the screen:
  2655.  
  2656.  
  2657.  
  2658.  
  2659.  
  2660.  
  2661.                  Registered Version has screen picture here
  2662.  
  2663.  
  2664.  
  2665.  
  2666.  
  2667.  
  2668.  
  2669.  
  2670.  
  2671.  
  2672.  
  2673.        Looking at the database you have  just defined on the screen,  it
  2674.        is obvious you have forgotten something.  There is supposed to be
  2675.        a Company field  between the Last Name  and Address.  One  of the
  2676.        options at the bottom of the screen is <I>nsert.  Press:
  2677.                                     I
  2678.  
  2679.        Remember,  no <Enter>.    File Express  now  asks, "Insert  field
  2680.        before which number?".  We want to insert the Company field above
  2681.        the Address field which is number 4, so type:
  2682.  
  2683.                                 4 <Enter>
  2684.  
  2685.        File Express moves fields 4 through  11 down one line and inserts
  2686.        a new  blank line  where we  want to  put the  Company field  and
  2687.        prompts for the field name.
  2688.  
  2689.  
  2690.  
  2691.                                                             TUTORIAL  49
  2692.   ----------------------------------------------------------------------
  2693.  
  2694.  
  2695.  
  2696.  
  2697.  
  2698.  
  2699.  
  2700.  
  2701.  
  2702.  
  2703.        Type:
  2704.  
  2705.                     Company <Enter> <Enter> 30 <Enter>
  2706.  
  2707.        This fills in  the missing field and takes you back to the option
  2708.        prompt at the bottom of the screen.
  2709.  
  2710.        Let's change the  name of the  first field from  When Entered  to
  2711.        Date Entered.  Press:
  2712.  
  2713.                                     C
  2714.  
  2715.        to select the <C>hange option.  Answer the "Enter Field Number to
  2716.        Change" question with:
  2717.  
  2718.                                 1 <Enter>
  2719.  
  2720.        The cursor jumps back up to the name prompt on field one.  Type:
  2721.  
  2722.                                Date <Enter>
  2723.  
  2724.        over the When portion of the old field name and press:
  2725.  
  2726.                                  <Enter>
  2727.  
  2728.        to keep the  D in the  -type- column.  Now  were are back  to the
  2729.        options prompt again.  
  2730.  
  2731.        We forgot another  field, Phone Number.   We want to put  this at
  2732.        the end of the list.  Press:
  2733.  
  2734.                                     A
  2735.  
  2736.        for the <A>dd  option which put  us back  into adding new  fields
  2737.        mode.  Type:
  2738.  
  2739.                            Phone Number <Enter>
  2740.  
  2741.        For the -type- column press:
  2742.  
  2743.                                     U
  2744.  
  2745.  
  2746.  
  2747.   50  TUTORIAL
  2748.   ----------------------------------------------------------------------
  2749.  
  2750.        for a User-defined field.  For the -length- type:
  2751.  
  2752.                                 13 <Enter>
  2753.  
  2754.        File Express now  prompts for the edit  mask for this field.   An
  2755.        edit   mask  is  a   set  of   predefined  characters   that  are
  2756.        automatically filled into the field before you add information to
  2757.        it.   When you  do add  information, the  cursor  jumps over  the
  2758.        predefined characters  so you  don't have  to type  them.   Phone
  2759.        numbers are generally  in the format: "(    )   -     ", so it is
  2760.        natural for an edit mask.  Type:
  2761.  
  2762.                              (   )   -<Enter>
  2763.  
  2764.        (That  is   an  open   parenthesis,  three   spaces,  a   closing
  2765.        parenthesis, three more spaces,  a dash, and  then <Enter>.   Now
  2766.        press:
  2767.  
  2768.                                  <Enter>
  2769.  
  2770.        one more time to get back down to the options prompt.
  2771.  
  2772.        One  last change  before  we save  the  new database  definition,
  2773.        Let's move the Phone Number field up between the Zip Code and the
  2774.        How Many fields.  Press:
  2775.  
  2776.                                     M
  2777.  
  2778.        for the <M>ove option.   When prompted to "Enter  Field Number to
  2779.        Move", answer:
  2780.  
  2781.                                 13 <Enter>
  2782.  
  2783.        When asked which field to move it before, answer:
  2784.  
  2785.                                 9 <Enter>
  2786.  
  2787.        File Express  moves the  field into  its correct  position.   The
  2788.        screen should now look like this:
  2789.  
  2790.        Now we are ready to save the new format.  Press:
  2791.  
  2792.                                     S
  2793.  
  2794.        for the <S>ave option.
  2795.  
  2796.                                  <Enter>
  2797.  
  2798.        to accept it.  As a final question, File Express  asks for a file
  2799.        description.  Type:
  2800.  
  2801.  
  2802.  
  2803.                                                             TUTORIAL  51
  2804.   ----------------------------------------------------------------------
  2805.  
  2806.                   Example database for Tutorial <Enter>
  2807.  
  2808.        This description will be displayed on the Open a Database  screen
  2809.        in the future to remind you of the purpose of the database.
  2810.  
  2811.        File Express now saves your  new database definition and  returns
  2812.        you to the Main Menu.
  2813.  
  2814.   Lesson Two: Adding New Records
  2815.        If  you are not at the  Main Menu, press the  <Esc> key until the
  2816.        Main Menu screen is displayed.  Adding new records  is easy: just
  2817.        select menu choice 2 - Add New Records by pressing:
  2818.  
  2819.                                     2
  2820.  
  2821.        A screen  similar to  the one  used for  displaying and  changing
  2822.        records is displayed, except all the fields are empty:
  2823.  
  2824.  
  2825.  
  2826.  
  2827.  
  2828.  
  2829.                  Registered Version has screen picture here
  2830.  
  2831.  
  2832.  
  2833.  
  2834.  
  2835.  
  2836.  
  2837.  
  2838.  
  2839.  
  2840.        To add a new record  to the database, just enter the data in each
  2841.        field then press the <F10> key when you are done.   Let's fill in
  2842.        the first field of the first record.  Type:
  2843.  
  2844.                               061290 <Enter>
  2845.  
  2846.        Because this is a Date field, the cursor skips over the dashes as
  2847.        you enter the numbers.  Now fill in the name and address.  Type:
  2848.  
  2849.                       David          <Enter>
  2850.                       Berdan         <Enter>
  2851.                       Expressware    <Enter>
  2852.                       PO Box 1800    <Enter>
  2853.                       Duvall         <Enter>
  2854.                       WA             <Enter>
  2855.                       98019-1800     <Enter>
  2856.  
  2857.  
  2858.  
  2859.   52  TUTORIAL
  2860.   ----------------------------------------------------------------------
  2861.  
  2862.        The  cursor is now on the Phone  Number field.  Because this is a
  2863.        User-defined field,  the parenthesis  and dash are  automatically
  2864.        placed in the field.   To fill this type of field,  just type the
  2865.        numbers to fill the blanks:
  2866.  
  2867.                             2067880932 <Enter>
  2868.  
  2869.        For the How Many field, enter:
  2870.  
  2871.                                 10 <Down>
  2872.  
  2873.        Notice how  the <Down>  key works the  same as  the <Enter>  key.
  2874.        When entering  numbers into  a Numeric field,  the input  is left
  2875.        justified as  you enter it  but is formatted  and right-justified
  2876.        when you leave the field.
  2877.  
  2878.        Into the How Much field, type:
  2879.  
  2880.                                4.6 <Enter>
  2881.  
  2882.        Two things now happen.   First, the 4.6 you entered  is converted
  2883.        to  4.60 and redisplayed right-justified, and second, because the
  2884.        Balance Due field  is a formula field, its  answer is calculated,
  2885.        formatted and  printed in  its place  to the right  of the  field
  2886.        name.
  2887.  
  2888.        The last field on the input screen is the Comments field.  Notice
  2889.        the "+" sign at  the right end of the field.  This shows you that
  2890.        the field is longer  than will fit on the screen and  that as you
  2891.        enter information, the  field will scroll sideways to  make room.
  2892.        Enter:
  2893.  
  2894.             Expressware    publishes    File    Express,    ExpressCalc,
  2895.   ExpressCheck,       ExpressGraph, and On-Side <Enter>
  2896.  
  2897.        As you were  typing ExpressGraph, the field  started scrolling to
  2898.        the left to make room for the remainder of the sentence.
  2899.  
  2900.        After pressing <Enter>, the Comments field was reprinted from its
  2901.        left end and File Express asks if you would now like to save this
  2902.        record on disk.  Your screen should look like this:
  2903.  
  2904.        To save the record, press
  2905.  
  2906.                                  <Enter>
  2907.  
  2908.        The record is  saved on disk and a new, blank record is displayed
  2909.        and ready for your input.  
  2910.  
  2911.  
  2912.  
  2913.                                                             TUTORIAL  53
  2914.   ----------------------------------------------------------------------
  2915.  
  2916.        Since the second records information will be very similar to  the
  2917.        previous record, we would like to  start with a copy of the  last
  2918.        record we just entered.  To do this, press:
  2919.  
  2920.                                  <Alt-R>
  2921.  
  2922.        All the field entries from the previous record are duplicated and
  2923.        printed on the screen.  Make the following changes:
  2924.  
  2925.                  <Down> Ken <Spacebar> <Spacebar> <Enter>
  2926.                  McGinnis <Enter>
  2927.                  <Enter> <Enter> <Enter> <Enter> <Enter> <Enter>
  2928.                  20 <Enter>
  2929.                  8 <Enter>
  2930.  
  2931.        Your screen now looks like this:
  2932.  
  2933.        To save the record press:
  2934.  
  2935.                              <Enter> <Enter>
  2936.  
  2937.        The third record we will enter has  the same date as the previous
  2938.        record, but all the remaining information will be different.   To
  2939.        copy a field from the previous record, press:
  2940.  
  2941.                                  <Ctrl-R>
  2942.  
  2943.        The previous  date is placed into the  Date Entered field and the
  2944.        cursor  moves to  the First  Name field.   To complete  the third
  2945.        record fill the following:
  2946.  
  2947.                  Howard    <Enter>
  2948.                  Smith          <Enter>
  2949.                            <Enter>
  2950.                  789 West 3rd   <Enter>
  2951.                  Mill Creek     <Enter>
  2952.                  CA        <Enter>
  2953.                  90262          <Enter>
  2954.                            <Enter>
  2955.                  16        <Enter>
  2956.                  222.48    <Enter>
  2957.                  Does not have a phone <Enter>
  2958.  
  2959.        Note that nothing  was entered into the Company  and Phone Number
  2960.        fields.  Your screen looks like this:
  2961.  
  2962.  
  2963.        Did you  notice that when you  just pressed <Enter> on  the Phone
  2964.        Number field without entering a phone number, the parentheses and
  2965.        dash disappeared?  This is a feature of a User-defined,  and Date
  2966.        field. 
  2967.  
  2968.  
  2969.  
  2970.   54  TUTORIAL
  2971.   ----------------------------------------------------------------------
  2972.  
  2973.        Before you save the record, you notice that the How Much entry is
  2974.        supposed to  be 2.48,  not 222.48.   To  go back  and change  the
  2975.        field, press:
  2976.  
  2977.                                     C
  2978.  
  2979.        to get back into edit mode, and:
  2980.  
  2981.                  <Down><Down><Down><Down><Down>
  2982.                  <Down><Down><Down><Down><Down>
  2983.  
  2984.        to move back down to the How Much field.
  2985.  
  2986.        As an experiment, press the period key:
  2987.  
  2988.                                     .
  2989.  
  2990.        File  Express just  beeped because  you  were trying  to enter  a
  2991.        decimal into  the  first position  of  the field  and  there  was
  2992.        already  a decimal  in the  third  position.   Now type  (without
  2993.        pressing the <Enter> key):
  2994.  
  2995.                                    2.48
  2996.  
  2997.        The result is  248.48.  When  you typed 2.48  you actually got  2
  2998.        beep 48.  There are two special things to remember when editing a
  2999.        Numeric  field:  Only  one  decimal  point  is  allowed  and  the
  3000.        <Spacebar> blanks  from the  cursor position  to the  end of  the
  3001.        field.  With this information we can fix the entry by pressing:
  3002.  
  3003.                   <Left> <Left> <Spacebar> .48 <Enter> 
  3004.  
  3005.        Of course the easiest way to change 222.48 into 2.48 would  be to
  3006.        just press the <Del> key twice to delete the first two 2's.   But
  3007.        then you wouldn't have learned as much.
  3008.  
  3009.        Now press:
  3010.  
  3011.                              <Enter> <Enter>
  3012.  
  3013.        to save the third record.
  3014.  
  3015.        You can actually  save a  record at  any time  by pressing  <F10>
  3016.        while  the cursor is in any input field.   When you save a record
  3017.        this way, the Save window is not popped up.
  3018.  
  3019.        To return to the Main Menu, press:
  3020.  
  3021.                                   <Esc>
  3022.  
  3023.  
  3024.  
  3025.                                                             TUTORIAL  55
  3026.   ----------------------------------------------------------------------
  3027.  
  3028.        Important: when  you are  done adding  or changing  records in  a
  3029.        database, always  return to the  Main Menu  before removing  your
  3030.        diskettes or turning off your computer.  File Express runs  under
  3031.        the control of  your own DOS program, and sometimes  DOS does not
  3032.        write all your changes to disk until the data files are "closed".
  3033.        This occurs each time you return to the Main Menu and after every
  3034.        fifth record change. 
  3035.  
  3036.        By returning to the Main Menu after finishing with File  Express,
  3037.        you ensure that DOS  has written everything to disk.   If you are
  3038.        concerned  about  potential  loss  of  data,  it  is possible  to
  3039.        configure  File Express to  close the database  files after every
  3040.        update.   This  causes  a noticeable  slow-down  when  adding  or
  3041.        changing records on  a diskette system, but ensures  that data is
  3042.        immediately stored on disk by requiring DOS to write it. 
  3043.  
  3044.  
  3045.  
  3046.   56  TUTORIAL
  3047.   ----------------------------------------------------------------------
  3048.  
  3049.   Lesson Three: Painted Screens
  3050.        On  the input  screen you  used in  Lesson  Two, the  fields were
  3051.        arranged in  a simple  vertical column.   File  Express lets  you
  3052.        custom design input screens where you  can move the fields to any
  3053.        position  on the screen,  draw lines,  and add  text.   Using the
  3054.        Paint feature of File Express, you can  create visually appealing
  3055.        input screens that are  easier to fill in and  can actually mimic
  3056.        the layout from which you are entering the information.
  3057.  
  3058.        To create a new input screen, called a View, press:
  3059.  
  3060.                                     M
  3061.  
  3062.        from the Main Menu to display the Maintenance Menu.  Then press:
  3063.  
  3064.                                     P
  3065.        to display the View Menu:
  3066.  
  3067.  
  3068.  
  3069.  
  3070.  
  3071.  
  3072.                  Registered Version has screen picture here
  3073.  
  3074.  
  3075.  
  3076.  
  3077.  
  3078.  
  3079.  
  3080.  
  3081.  
  3082.  
  3083.        To design a new View, press:
  3084.  
  3085.                                     D
  3086.  
  3087.  
  3088.  
  3089.                                                             TUTORIAL  57
  3090.   ----------------------------------------------------------------------
  3091.  
  3092.        An empty painted screen appears:
  3093.  
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.                  Registered Version has screen picture here
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110.  
  3111.        Each Painted screen is 21 lines  high and 80 characters wide.   A
  3112.        View  can  consist of  up to  10 Painted  screens (also  known as
  3113.        Pages).  You can  move the cursor around the screen  by using the
  3114.        <Up>, <Down>,  <Left>, and  <Right> cursor keys.   As  the cursor
  3115.        moves, the  row and  column position of  the cursor  is displayed
  3116.        near the lower right corner of the screen.  In the screen picture
  3117.        above,  "p= 1:r= 1:c=  1" means the  cursor is on  page 1, row 1,
  3118.        column 1.  
  3119.  
  3120.        Now  we are going to place the input fields inside the box.  Move
  3121.        the cursor to row 4, column 10 by pressing:
  3122.  
  3123.                       <Down> three times 
  3124.                       <Right> nine times
  3125.  
  3126.        To place the first field on the screen, press:
  3127.  
  3128.                                  <Alt-F>
  3129.  
  3130.        This pops up a list window containing the name and length of each
  3131.        field you have define  for the EXAMPLE database.   Since the Date
  3132.        Entered field is highlighted and is the field we want to place on
  3133.        the screen, just press:
  3134.  
  3135.                                  <Enter>
  3136.  
  3137.        File Express  now gives  you three  choices on how  to place  the
  3138.        field on the screen.  You  can either put just the input  portion
  3139.        of  the field on  the screen, both  the field name  and the input
  3140.        portion on  the  screen, or,  if the  field is  40 characters  or
  3141.        longer,  you can  put the field  on the  screen in  a rectangular
  3142.  
  3143.  
  3144.  
  3145.   58  TUTORIAL
  3146.   ----------------------------------------------------------------------
  3147.  
  3148.        block.   We  will be  using the  Name &  Field option.   Move the
  3149.        highlight bar down to this choice and select it by pressing:
  3150.  
  3151.                               <Down> <Enter>
  3152.  
  3153.        Now  tell File Express  to place the  field as an  Input field by
  3154.        pressing:
  3155.  
  3156.                                  <Enter>
  3157.  
  3158.        to accept the  default answer of I.  File Express now places both
  3159.        the field name and its input portion on the screen.
  3160.  
  3161.        Move the cursor to row 6, column 10 by pressing:
  3162.  
  3163.                <Down> twice, <Home> and <Right> nine times
  3164.  
  3165.        The next field  we want to  put on the  screen is the First  Name
  3166.        field.  Press:
  3167.  
  3168.                                  <Alt-F>
  3169.  
  3170.        to pop up the field name list.  Notice that  the First Name field
  3171.        is already highlighted.  Press:
  3172.  
  3173.                          <Enter> <Enter> <Enter>
  3174.  
  3175.        to place the field with  its field name as  an input field.   The
  3176.        cursor  is left  one character  past the end  of the  field, just
  3177.        where we want to put the Last Name.  Press:
  3178.  
  3179.                      <Alt-F> <Enter> <Enter> <Enter>
  3180.  
  3181.        Now move the cursor to row 7, column 10 by pressing:
  3182.  
  3183.                       <Enter> and <Right> nine times
  3184.  
  3185.        (from here  on we  won't give  you the  exact keys  to move  to a
  3186.        specific row and  column location on  the screen.   We will  just
  3187.        tell  you want  row and  column to  move to  and you can  use the
  3188.        cursor keys to get there any way you like).
  3189.  
  3190.        Now, to put the Address and Company on the screen by pressing:
  3191.  
  3192.                      <Alt-F> <Enter> <Enter> <Enter>
  3193.                          move to row 8, column 10
  3194.                      <Alt-F> <Enter> <Enter> <Enter>
  3195.                          move to row 9, column 10
  3196.  
  3197.        Now for City, State, and Zip Code, press:
  3198.  
  3199.  
  3200.  
  3201.                                                             TUTORIAL  59
  3202.   ----------------------------------------------------------------------
  3203.  
  3204.                      <Alt-F> <Enter> <Enter> <Enter>
  3205.                      <Alt-F> <Enter> <Enter> <Enter>
  3206.                      <Alt-F> <Enter> <Enter> <Enter>
  3207.  
  3208.        Put the Phone Number field at row 11, column 10, How  Much at row
  3209.        13, column 10 and How Much at row 14, column 10 by pressing:
  3210.  
  3211.                         move to row 11, column 10
  3212.                      <Alt-F> <Enter> <Enter> <Enter>
  3213.                         move to row 13, column 10
  3214.                      <Alt-F> <Enter> <Enter> <Enter>
  3215.                         move to row 14, column 10
  3216.                      <Alt-F> <Enter> <Enter> <Enter>
  3217.  
  3218.        Now move to row 16,  column 10 and put  the Balance Due field  on
  3219.        the screen by pressing:
  3220.  
  3221.                         move to row 16, column 10
  3222.                          <Alt-F> <Enter> <Enter>
  3223.  
  3224.        Since  the  Balance Due  field  is  a  Formula field,  the  Input
  3225.        question was skipped because a formula field won't accept input.
  3226.  
  3227.  
  3228.  
  3229.   60  TUTORIAL
  3230.   ----------------------------------------------------------------------
  3231.  
  3232.        The screen should now look like this:
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  
  3239.                  Registered Version has screen picture here
  3240.  
  3241.  
  3242.  
  3243.  
  3244.  
  3245.  
  3246.  
  3247.  
  3248.  
  3249.  
  3250.  
  3251.        Before we proceed any further, lets line up some of the fields on
  3252.        the screen.  When a field name and field are placed on the screen
  3253.        there is  only one space  put between them.   Vertical columns of
  3254.        input fields  don't line  up if their  field names  are different
  3255.        lengths.  As you can  see, the First Name, Company,  Address, and
  3256.        City fields don't line up.  Neither do the three number fields at
  3257.        the bottom.
  3258.  
  3259.                          move to row 7, column 18
  3260.  
  3261.        Press:
  3262.                                  <Insert>
  3263.  
  3264.        to put the cursor into  insert mode.  When the cursor  is in this
  3265.        mode, it changes  from a blinking underline to  a blinking block.
  3266.        Now press:
  3267.  
  3268.                           <Spacebar> three times
  3269.  
  3270.        to  push the input  field three places  to the right.   Now let's
  3271.        line the remaining fields:
  3272.  
  3273.                          move to row 8, column 18
  3274.                           <Spacebar> three times
  3275.                          move to row 9, column 15
  3276.                            <Spacebar> six times
  3277.                         move to row 13, column 19
  3278.                           <Spacebar> eight times
  3279.                         move to row 14, column 19
  3280.                           <Spacebar> five times
  3281.  
  3282.  
  3283.  
  3284.                                                             TUTORIAL  61
  3285.   ----------------------------------------------------------------------
  3286.  
  3287.        Now press:
  3288.  
  3289.                                  <Insert>
  3290.  
  3291.        again to take the cursor out of insert mode and change it back to
  3292.        a blinking underline.
  3293.  
  3294.        We want  to put  the last  field, Comments,  on the  screen as  a
  3295.        window field.  Move to row 12, column 39:
  3296.  
  3297.                         move to row 12, column 39
  3298.                              <Alt-F> <Enter>
  3299.  
  3300.        to pop  up the  field name  list and  select the Comments  field.
  3301.        Move  the highlight  bar  to Field  in Window  and  select it  by
  3302.        pressing:
  3303.  
  3304.                               <Down> <Enter>
  3305.  
  3306.        File Express displays  a block of blinking squares  two rows high
  3307.        and twenty characters wide.  This is the minimum size of a window
  3308.        field.  We can now  use the cursor keys to increase the width and
  3309.        height of the block to the size we want.  Press:
  3310.  
  3311.              <Right> eleven times and then <Down> four times
  3312.  
  3313.        The block is now the size we want so press:
  3314.  
  3315.                              <Enter> <Enter>
  3316.  
  3317.        to set the block as an input field.
  3318.  
  3319.  
  3320.  
  3321.   62  TUTORIAL
  3322.   ----------------------------------------------------------------------
  3323.  
  3324.        The screen should look like this:
  3325.  
  3326.  
  3327.  
  3328.  
  3329.  
  3330.  
  3331.                  Registered Version has screen picture here
  3332.  
  3333.  
  3334.  
  3335.  
  3336.  
  3337.  
  3338.  
  3339.  
  3340.  
  3341.  
  3342.        Now, lets put a  box around it all using the  line drawing option
  3343.        of File Express.
  3344.  
  3345.                          move to row 3, column 7
  3346.  
  3347.        Turn on the Line Drawing option by pressing:
  3348.  
  3349.                                  <Alt-L>
  3350.  
  3351.        <L>ine:OFF changes to <L>ine:ON at the bottom of the screen.  The
  3352.        <B>ox:     option  indicates   we  will  be  using   double  line
  3353.        characters while we draw lines.  Now to draw a box; press:
  3354.  
  3355.                          <Right> sixty-six times
  3356.  
  3357.        until the column counter  reaches 73.  Be careful not  to go past
  3358.        column 73.   (If you do, move the  cursor back to column 73 using
  3359.        the <Left> key.  You  will have an extra line on your  box but it
  3360.        won't affect the rest of the tutorial).  Now press:
  3361.  
  3362.                  <Down> sixteen times     (to row 19, column 73)
  3363.                  <Left> sixty-six times   (to row 19, column 7)
  3364.                  <Up> sixteen times  (to row 3, column 7)
  3365.                  <Right> <Alt-L>
  3366.  
  3367.        to finish off the last corner of the box and to turn off the Line
  3368.        option.  
  3369.  
  3370.  
  3371.  
  3372.                                                             TUTORIAL  63
  3373.   ----------------------------------------------------------------------
  3374.  
  3375.        Your screen should now look like this:
  3376.  
  3377.  
  3378.  
  3379.  
  3380.  
  3381.  
  3382.                  Registered Version has screen picture here
  3383.  
  3384.  
  3385.  
  3386.  
  3387.  
  3388.  
  3389.  
  3390.  
  3391.  
  3392.  
  3393.        The finishing touch will be a little bit of text:
  3394.  
  3395.                          move to row 2, column 34
  3396.                               Customer List
  3397.                         move to row 11, column 39
  3398.                                 Comments:
  3399.                         move to row 15, column 22
  3400.                                  --------
  3401.  
  3402.        We are finished!  To save our creation, press:
  3403.  
  3404.                                   <F10>
  3405.  
  3406.        File Express asks: "Save all changes [Y/N]? Y".  Press:
  3407.  
  3408.                                  <Enter>
  3409.  
  3410.        When prompted to "Enter a name for this view", type:
  3411.  
  3412.                              CARDFILE <Enter>
  3413.  
  3414.        and for the description:
  3415.                     Example of Painted Screen <Enter> 
  3416.  
  3417.        File Express now  saves your  new View  and returns  to the  View
  3418.        Menu.  Press:
  3419.  
  3420.                                <Esc> <Esc>
  3421.  
  3422.        to return to the Maintenance Menu, and then to the Main Menu.
  3423.  
  3424.        Now, let's look at your new input screen.  Press
  3425.  
  3426.  
  3427.  
  3428.   64  TUTORIAL
  3429.   ----------------------------------------------------------------------
  3430.  
  3431.                                     A
  3432.  
  3433.        for the Add New Records option.  The new Painted input  screen is
  3434.        displayed:
  3435.  
  3436.  
  3437.  
  3438.  
  3439.  
  3440.  
  3441.                  Registered Version has screen picture here
  3442.  
  3443.  
  3444.  
  3445.  
  3446.  
  3447.  
  3448.  
  3449.  
  3450.  
  3451.  
  3452.  
  3453.        Let's try it out.  Enter the follow record:
  3454.  
  3455.             062390         <Enter>
  3456.             Mary                <Enter>
  3457.             Contrary       <Enter>
  3458.             Gardening is Us     <Enter>
  3459.             100 Primrose Ave    <Enter>
  3460.             Rose City           <Enter>
  3461.             WA             <Enter>
  3462.             98224               <Enter>
  3463.             2065551212          <Enter>
  3464.             3              <Enter>
  3465.             1.95                <Enter>
  3466.             This is an example of the word-wrap feature of a window 
  3467.             field.  You can always see the entire contents of the 
  3468.             field and you don't have to worry where the words break. 
  3469.  
  3470.  
  3471.        To exit a block field, press:
  3472.  
  3473.                                <Ctrl-Enter>
  3474.  
  3475.        (If you have  set the Block Field  Exit Key to be <Enter>  in the
  3476.        FE5SETUP  program, you  can also  use  <Enter> here  to exit  the
  3477.        field.)
  3478.  
  3479.        Now, to save the record, press:
  3480.  
  3481.                                  <Enter>
  3482.  
  3483.  
  3484.  
  3485.                                                             TUTORIAL  65
  3486.   ----------------------------------------------------------------------
  3487.  
  3488.        and finally:
  3489.  
  3490.                                   <Esc>
  3491.  
  3492.        to return to the Main Menu.
  3493.  
  3494.  
  3495.  
  3496.   66  TUTORIAL
  3497.   ----------------------------------------------------------------------
  3498.  
  3499.   Lesson Four: Create an Index
  3500.        An Index  keeps track  of  the information  in  a database  in  a
  3501.        certain order.    Each time  you  add a  new  record or  edit  an
  3502.        existing  one, all the associated  indexes are updated.  Whenever
  3503.        you create a new database,  two indexes are automatically defined
  3504.        to  go along  with it, the  Record Number  index and  the Deleted
  3505.        Record index.  The Record Number index keeps track of the records
  3506.        you enter  in the  order of their  assigned record numbers.   The
  3507.        Deleted Record index keeps track of any records that are  deleted
  3508.        so they can  be reused by File  Express when you add  new records
  3509.        later.
  3510.  
  3511.        Most of the time, you will want to access the information in your
  3512.        database in an order  different than by record  number.  For  the
  3513.        purposes of  this tutorial we will  create two new indexes.   The
  3514.        first will  track the  information in  Last Name  order, and  the
  3515.        second in Company order.
  3516.  
  3517.        To create a new  index, make sure the Main Menu  is displayed and
  3518.        press:
  3519.  
  3520.                                     S
  3521.  
  3522.        to  select  the Sort  Index  option.    The Select  Index  window
  3523.        appears:
  3524.  
  3525.  
  3526.  
  3527.  
  3528.  
  3529.  
  3530.                  Registered Version has screen picture here
  3531.  
  3532.  
  3533.  
  3534.  
  3535.  
  3536.  
  3537.  
  3538.  
  3539.  
  3540.        As you can  see, the Record Number (Record #)  and Deleted Record
  3541.        indexes are already  on the  list.   A defined index  can have  a
  3542.        Status of either ACTIVE, INACTIVE, or PRIMARY.  An INACTIVE index
  3543.        is  not updated  as records  are  added or  changed.   ACTIVE and
  3544.        PRIMARY indexes are updated.  The PRIMARY index is used  whenever
  3545.        records are displayed or  printed in sequence.  There can only be
  3546.        one index  specified as PRIMARY at  any given time.   The PRIMARY
  3547.        status can be  reassigned to any ACTIVE index.   Sound confusing?
  3548.        Be patient.
  3549.  
  3550.  
  3551.  
  3552.                                                             TUTORIAL  67
  3553.   ----------------------------------------------------------------------
  3554.  
  3555.        The current PRIMARY index is Record Number.  If you were to print
  3556.        a report right now, it  would be printed in record  number order,
  3557.        which  is the order  in which we  entered the records.   Since we
  3558.        want to  be able to  look at our records  in Last Name  order, we
  3559.        have  to create a new index to keep  track of them in that order.
  3560.        To create this  new index, move  the highlight bar  to the  first
  3561.        UNUSED entry just below the Record Number index by pressing:
  3562.  
  3563.                                   <Down>
  3564.  
  3565.        To define this new index, press:
  3566.  
  3567.                                     E
  3568.  
  3569.        to select the <E>dit option.  The Edit Index screen appears:
  3570.  
  3571.  
  3572.  
  3573.  
  3574.  
  3575.  
  3576.                  Registered Version has screen picture here
  3577.  
  3578.  
  3579.  
  3580.  
  3581.  
  3582.  
  3583.  
  3584.  
  3585.  
  3586.  
  3587.        Press:
  3588.  
  3589.                        <Down> <Down> <Down> <Enter>
  3590.  
  3591.        to select the Last Name field as  the first field to keep sorted.
  3592.        At the Position prompt, press:
  3593.  
  3594.                              <Enter> <Enter>
  3595.  
  3596.        to accept the default of keeping track of the entire field in the
  3597.        index (1:20), and to keep the field in Ascending order.
  3598.  
  3599.  
  3600.  
  3601.   68  TUTORIAL
  3602.   ----------------------------------------------------------------------
  3603.  
  3604.        For Sort  Level 2 we will  use the First  Name field.   This will
  3605.        mean that  any records  that  have the  same  Last Name  will  be
  3606.        further sorted into First Name order.  Select the full First Name
  3607.        field in ascending order by pressing:
  3608.  
  3609.                        <Up> <Enter> <Enter> <Enter>
  3610.  
  3611.        We are now finished, so press:
  3612.  
  3613.                                   <F10>
  3614.  
  3615.        to tell File Express  we want to  save the new index  definition.
  3616.        For the name of the index and its description, enter:
  3617.  
  3618.                              LASTNAME <Enter>
  3619.                    Sorted into Last Name order <Enter>
  3620.  
  3621.        The Select Index screens reappears with the new LASTNAME index in
  3622.        the list with  a Status of  ACTIVE and  a check mark  in the  TAG
  3623.        column indicating the  new index is tagged to be  created when we
  3624.        press the <F10> key.  Before we  do, however, lets create another
  3625.        index that keeps the  information in Company  field order.   Type
  3626.        the following:
  3627.  
  3628.        <Down> E                      (next UNUSED and <E>dit)
  3629.        <Down> <Down> <Down> <Down>   (move to the Company field)
  3630.        <Enter> <Enter> <Enter>            (use all the default answers)
  3631.        <F10>                         (finished and save)
  3632.        COMPANY <Enter>                    (index name)
  3633.        Sorted in Company order <Enter>         (description)
  3634.  
  3635.  
  3636.  
  3637.                                                             TUTORIAL  69
  3638.   ----------------------------------------------------------------------
  3639.  
  3640.        Now we  are  back to  the  Select Index  list  which should  look
  3641.        something like this:
  3642.  
  3643.  
  3644.  
  3645.  
  3646.  
  3647.  
  3648.                  Registered Version has screen picture here
  3649.  
  3650.  
  3651.  
  3652.  
  3653.  
  3654.  
  3655.  
  3656.  
  3657.  
  3658.  
  3659.  
  3660.        Now, lets build both our new indexes by pressing:
  3661.  
  3662.                                   <F10>
  3663.  
  3664.        As the  new  indexes are  being  built, File  Express  keeps  you
  3665.        informed of its progress with a percentage gauge on the screen:  
  3666.  
  3667.  
  3668.  
  3669.  
  3670.  
  3671.  
  3672.  
  3673.  
  3674.  
  3675.                  Registered Version has screen picture here
  3676.  
  3677.  
  3678.  
  3679.  
  3680.  
  3681.  
  3682.  
  3683.   When the indexes have been built, press any key to return  to the Main
  3684.   Menu.
  3685.  
  3686.  
  3687.  
  3688.   70  TUTORIAL
  3689.   ----------------------------------------------------------------------
  3690.  
  3691.   Lesson Five: Quick Scan
  3692.        The Quick Scan feature of File  Express is a great way to  view a
  3693.        lot of information  from multiple records on the  screen at once.
  3694.        All the data displayed can be edited right on the screen.
  3695.  
  3696.        From the Main Menu, press:
  3697.  
  3698.                                     FQ
  3699.  
  3700.        to  pull up the Find Menu  and select the Quick  Scan option.  At
  3701.        this point you  can either select up to eight specific field in a
  3702.        specific order, or  you can just press <Enter>  which selects the
  3703.        first eight fields in consecutive order.  Let's select the second
  3704.        choice.  Press:
  3705.  
  3706.                                  <Enter>
  3707.  
  3708.  
  3709.  
  3710.  
  3711.  
  3712.  
  3713.  
  3714.  
  3715.                  Registered Version has screen picture here
  3716.  
  3717.  
  3718.  
  3719.  
  3720.  
  3721.  
  3722.  
  3723.  
  3724.        The Quick  Scan  option displays  up  to twenty  records  on  the
  3725.        screen.  As you move  to each field, you can edit its contents if
  3726.        edit mode is turned on.  Let's turn it on now by pressing:
  3727.  
  3728.                                  <Alt-E>
  3729.  
  3730.        In the lower right  corner of the  screen, <E>dit:OFF changes  to
  3731.        <E>dit:ON. 
  3732.  
  3733.        Now move from the Date Entered field  in the first record, to the
  3734.        First Name field.  Press:
  3735.  
  3736.                                   <Tab>
  3737.  
  3738.        Now lets change David to Dave.  Type:
  3739.  
  3740.                          Dave <Spacebar> <Enter>
  3741.  
  3742.  
  3743.  
  3744.                                                             TUTORIAL  71
  3745.   ----------------------------------------------------------------------
  3746.  
  3747.        As the cursor left  the changed field  when you pressed  <Enter>,
  3748.        the record was saved to disk with the new change.
  3749.  
  3750.        Notice that  the records  are displayed  in record number  order.
  3751.        The current PRIMARY index is displayed in the upper left  corner;
  3752.        Index:RECORD#.  Let's change to our Last Name index by pressing:
  3753.  
  3754.             <Alt-P>   (pull up Select Primary Index screen)
  3755.             <Down>    (move highlight bar to LASTNAME)
  3756.             <Enter>   (select it)
  3757.  
  3758.        Now the Quick Scan screen is displayed in Last Name order.
  3759.  
  3760.        Move to the Last Name field on the bottom record, Smith, with:
  3761.  
  3762.                             <Ctrl-PgDn> <Tab>
  3763.  
  3764.        Now change Smith to Anderson, by typing:
  3765.  
  3766.                              Anderson <Enter>
  3767.  
  3768.        Because the  Last  Name field  was  part of  the  Primary  index,
  3769.        changing it caused File Express to rearrange the records into the
  3770.        proper order.
  3771.  
  3772.        The  cursor is  now in the  Berdan record.   To display  the full
  3773.        record, press:
  3774.  
  3775.                                  <Alt-R>
  3776.  
  3777.        You can now edit any of  the fields in the record.  To  return to
  3778.        Quick Scan mode, press:
  3779.  
  3780.                                   <F10>
  3781.  
  3782.        To return to the Main Menu, press:
  3783.  
  3784.                                <Esc> <Esc>
  3785.  
  3786.  
  3787.  
  3788.   72  TUTORIAL
  3789.   ----------------------------------------------------------------------
  3790.  
  3791.   Lesson Six: Create a Report
  3792.        One of the most important reasons for entering information into a
  3793.        database is to get  useful information back out later.  A printed
  3794.        reports can compile mountains of data and present it in a useable
  3795.        format.
  3796.  
  3797.        To define a report, make sure you  are viewing the Main Menu, and
  3798.        press:
  3799.  
  3800.                                     R
  3801.  
  3802.        to  select  the Report  Writer  option.    When the  Report  Menu
  3803.        appears, press:
  3804.  
  3805.                                     D
  3806.  
  3807.        to Design  a new Report.   The first  screen to appear  is titled
  3808.        Report Size and Spacing:  
  3809.  
  3810.  
  3811.  
  3812.  
  3813.  
  3814.  
  3815.  
  3816.                  Registered Version has screen picture here
  3817.  
  3818.  
  3819.  
  3820.  
  3821.  
  3822.  
  3823.  
  3824.  
  3825.  
  3826.        For  our  example report  format  we  will  use all  the  default
  3827.        answers, so press:
  3828.  
  3829.                                   <F10>
  3830.  
  3831.  
  3832.  
  3833.                                                             TUTORIAL  73
  3834.   ----------------------------------------------------------------------
  3835.  
  3836.        to move on to the Report Layout screen:
  3837.  
  3838.  
  3839.  
  3840.  
  3841.  
  3842.  
  3843.                  Registered Version has screen picture here
  3844.  
  3845.  
  3846.  
  3847.  
  3848.  
  3849.  
  3850.  
  3851.  
  3852.  
  3853.  
  3854.  
  3855.        The cursor is at the  left edge of the Detail  area.  To put  the
  3856.        Last Name field on the report in that position, press:
  3857.  
  3858.             <Alt-F>        (pop up the field list window)
  3859.             <Down> <Down>  (move the highlight to Last Name)
  3860.             <Enter>        (select it)
  3861.             <Enter>        (select field without field name)
  3862.  
  3863.        Now put the First Name field on the report by pressing:
  3864.  
  3865.             <Alt-F> <Up> <Up> <Enter> <Enter>
  3866.  
  3867.        Now the three numeric fields by typing:
  3868.  
  3869.        <Alt-F>                       (pop up field list)
  3870.        <Down> seven times <Enter> <Enter>      (select   the  How   Many
  3871.   field)
  3872.        <Alt-F> <Enter> <Enter>            (select the How Much field)
  3873.        <Alt-F> <Enter> <Enter>            (select the Balance Due field)
  3874.  
  3875.  
  3876.  
  3877.   74  TUTORIAL
  3878.   ----------------------------------------------------------------------
  3879.  
  3880.        The screen should look like this:
  3881.  
  3882.  
  3883.  
  3884.  
  3885.  
  3886.  
  3887.                  Registered Version has screen picture here
  3888.  
  3889.  
  3890.  
  3891.  
  3892.  
  3893.  
  3894.  
  3895.  
  3896.  
  3897.  
  3898.        Now, let's put  a title on  the report.   When the Report  Layout
  3899.        screen was first displayed, only the Detail area had a blank line
  3900.        already inserted.  All  the other areas are empty and  contain no
  3901.        lines at all.   The <Alt-I> key  is used to  insert a line  right
  3902.        above the  line the cursor is on.  To  insert a line in the Title
  3903.        area move the cursor up so it is on the     Headings     line and
  3904.        insert a line by typing:
  3905.  
  3906.             <Up> <Up> (to get to the Headings line)
  3907.             <Alt-I>   (to insert a line in the Title area)
  3908.             <Home>    (move cursor to column 1)
  3909.  
  3910.        Type in the following title:
  3911.  
  3912.                           Example Report Layout
  3913.  
  3914.        The title is  left justified but we  want to have it  centered on
  3915.        our report.   File  Express has a  feature called  Text Alignment
  3916.        that can be used to automatically format  the text on any line of
  3917.        a report.  To  demonstrate the Text  Alignment capability in  the
  3918.        Title press:
  3919.  
  3920.             <Alt-A>   (to select Text Alignment)
  3921.             <C>       (to select Centering)
  3922.  
  3923.        File  Express automatically centers  the title within  the Report
  3924.        Width  setting (which is  80 in this  case).  Although  the title
  3925.        looks off  center right  now, it is  actually centered  within 80
  3926.        characters and will print in the center of the page.  
  3927.  
  3928.  
  3929.  
  3930.                                                             TUTORIAL  75
  3931.   ----------------------------------------------------------------------
  3932.  
  3933.  
  3934.        The screen now looks like this:
  3935.  
  3936.  
  3937.  
  3938.  
  3939.  
  3940.  
  3941.                  Registered Version has screen picture here
  3942.  
  3943.  
  3944.  
  3945.  
  3946.  
  3947.  
  3948.  
  3949.  
  3950.  
  3951.  
  3952.        Now, we need some Headings.  Again, we can use Area Formatting to
  3953.        help us out.  The most commonly used format for a Heading area is
  3954.        to use the field names as column headings and a dashed line below
  3955.        them for the length of the field.  To automatically generate this
  3956.        style of Heading, type:
  3957.  
  3958.             <Down><Down>   (to move to the     Headings     line)
  3959.             <Alt-G>        (to Generate the Headings area format)
  3960.  
  3961.  
  3962.  
  3963.   76  TUTORIAL
  3964.   ----------------------------------------------------------------------
  3965.  
  3966.        The screen now looks like this:
  3967.  
  3968.  
  3969.  
  3970.  
  3971.  
  3972.  
  3973.                  Registered Version has screen picture here
  3974.  
  3975.  
  3976.  
  3977.  
  3978.  
  3979.  
  3980.  
  3981.  
  3982.  
  3983.        When putting the field names above the columns, only the  portion
  3984.        that fits is  used.   For example,  the How Many  column is  only
  3985.        three characters wide so only  How will fit above it.   To make a
  3986.        report look better, you can insert another line and make two line
  3987.        headings, or you can spread out the  fields in the Detail area so
  3988.        that longer column  headings can be used.   For our example here,
  3989.        however, we  will simply type over some of the column headings so
  3990.        they make more sense.  Do the following:
  3991.  
  3992.             move to the first How in line 1 of the Heading area
  3993.             type ### over the How
  3994.             move right one space and type $$$.$$ over the How Mu
  3995.  
  3996.        Now, let's format the Total area:
  3997.  
  3998.             move the cursor to the     Footer     line
  3999.             <Alt-I> <Alt-I> (to insert two lines in the Total area)
  4000.             move to Row 1, Col 35 in the Total area
  4001.             --- ------ --------
  4002.             move to Row 2, Col 35 in the Total area
  4003.             <Alt-F>        (pop up field list)
  4004.             move the highlight bar to the HOW MANY field
  4005.             <Enter>        (pop up the field type window)
  4006.             move the highlight bar to Field.TOTAL
  4007.             <Enter>        (to select it)
  4008.             QTY <Enter>    (for the field name)
  4009.             N              (make this a numeric field)
  4010.             <Enter>        (to confirm formula)
  4011.             <Enter>        (to confirm field length)
  4012.             <Enter>        (to confirm decimal places)
  4013.  
  4014.        Now we will repeat this for the next two fields:
  4015.  
  4016.             <Alt-F>
  4017.  
  4018.  
  4019.  
  4020.                                                             TUTORIAL  77
  4021.   ----------------------------------------------------------------------
  4022.  
  4023.             <Enter>
  4024.             <Enter>
  4025.             PRICE TOTAL <Enter>
  4026.             <Enter>
  4027.             <Enter>
  4028.             <Enter>
  4029.             <Enter>
  4030.  
  4031.             <Alt-F>
  4032.             <Enter>
  4033.             <Enter>
  4034.             TOTAL DUE <Enter>
  4035.             <Enter>
  4036.             <Enter>
  4037.             <Enter>
  4038.             <Enter>
  4039.  
  4040.  
  4041.        We are finished defining the layout for our report, so press:
  4042.  
  4043.             <F10>
  4044.  
  4045.  
  4046.  
  4047.   78  TUTORIAL
  4048.   ----------------------------------------------------------------------
  4049.  
  4050.        The Report Optional Specification screen appears:
  4051.  
  4052.  
  4053.  
  4054.  
  4055.  
  4056.  
  4057.                  Registered Version has screen picture here
  4058.  
  4059.  
  4060.  
  4061.  
  4062.  
  4063.  
  4064.  
  4065.  
  4066.  
  4067.  
  4068.        We will accept all the default answers on this screen, so press:
  4069.  
  4070.                                   <F10>
  4071.  
  4072.        again to bring up the Report Output Options screen:
  4073.  
  4074.  
  4075.  
  4076.  
  4077.  
  4078.  
  4079.                  Registered Version has screen picture here
  4080.  
  4081.  
  4082.  
  4083.  
  4084.  
  4085.  
  4086.  
  4087.  
  4088.  
  4089.  
  4090.        Again, accept all the default answers by pressing:
  4091.  
  4092.                                   <F10>
  4093.  
  4094.  
  4095.  
  4096.                                                             TUTORIAL  79
  4097.   ----------------------------------------------------------------------
  4098.  
  4099.        The Select Primary  Index screen pops up.   We want to  print our
  4100.        records in  Last Name  order, so  move the highlight  bar to  the
  4101.        LASTNAME line and press:
  4102.  
  4103.                                  <Enter>
  4104.  
  4105.        File  Express now asks if  you would like  to "Save all changes".
  4106.        Press:
  4107.  
  4108.                                     Y
  4109.  
  4110.        For the name and description of the report, enter:
  4111.  
  4112.                              EXAMPLE <Enter>
  4113.                       Example Report Layout <Enter>
  4114.  
  4115.        File Express  now confirms  where you  want  the report  printed.
  4116.        Press:
  4117.  
  4118.                                     S
  4119.  
  4120.        The report is printed to the screen and looks like this:
  4121.  
  4122.  
  4123.  
  4124.  
  4125.  
  4126.  
  4127.                  Registered Version has screen picture here
  4128.  
  4129.  
  4130.  
  4131.  
  4132.  
  4133.  
  4134.  
  4135.  
  4136.  
  4137.  
  4138.        Press:
  4139.  
  4140.                                 <Spacebar>
  4141.  
  4142.        to return to the Main Menu.
  4143.  
  4144.  
  4145.  
  4146.   80  TUTORIAL
  4147.   ----------------------------------------------------------------------
  4148.  
  4149.        You now  have a  basic understanding  of File  Express menus  and
  4150.        prompts, and  you know  how  to "find  your  way around"  in  the
  4151.        program.   There are  hundreds of other  options and  features of
  4152.        File Express which this tutorial did not discuss.  The  remainder
  4153.        of this  manual explains  all these features,  so you  can review
  4154.        them as you need them. 
  4155.  
  4156.  
  4157.  
  4158.                                                   OPENING A DATABASE  81
  4159.   ----------------------------------------------------------------------
  4160.  
  4161.  
  4162.                            Opening a Database 
  4163.  
  4164.        Before you can add  records to a database, or print  a report, or
  4165.        do anything  in File  Express, the  program needs  to know  which
  4166.        database you want  to work with.   When File Express  is started,
  4167.        there are three ways to identify the database to be used: 
  4168.  
  4169.             1) From the command line. 
  4170.             2) From the Setup program. 
  4171.             3) If  neither of  the other methods  is used,  File Express
  4172.             goes  directly to the Open        A Database screen and asks
  4173.             you to select a database from the list. 
  4174.  
  4175.        Option  number  1  was described  previously  under  Command Line
  4176.        Options.  Option  2 is described in the  Customizing File Express
  4177.        section.  The following description pertains to option 3:
  4178.  
  4179.        After starting File Express and answering  the database drive and
  4180.        path questions, a list  is presented.   This screen displays  all
  4181.        the databases  on your  data disk, and  asks which  one is  to be
  4182.        opened. 
  4183.  
  4184.        If you  have  just installed  File  Express, there  is  only  one
  4185.        database displayed; it  is called  TUTORIAL.  It  is the one  you
  4186.        copied onto your disk  during the installation  process.  If  you
  4187.        have created additional databases, they are displayed in the list
  4188.        as well.  If you get a message telling you there are no databases
  4189.        on the disk, please refer to the Defining a New Database section.
  4190.  
  4191.  
  4192.  
  4193.   82  OPENING A DATABASE
  4194.   ----------------------------------------------------------------------
  4195.  
  4196.        The databases found on the drive and path selected are  displayed
  4197.        on  the screen  alphabetically.   The  database selection  screen
  4198.        looks like this: 
  4199.  
  4200.  
  4201.  
  4202.  
  4203.  
  4204.  
  4205.                  Registered Version has screen picture here
  4206.  
  4207.  
  4208.  
  4209.  
  4210.  
  4211.  
  4212.  
  4213.  
  4214.  
  4215.  
  4216.  
  4217.        Several  functions may be  performed from the  database selection
  4218.        screen: 
  4219.  
  4220.        *    An  existing database  can be chosen,  by either  moving the
  4221.             highlighted bar  to the desired  database name or  by typing
  4222.             the database  name directly  into the input  field.   As you
  4223.             move the highlighted bar up and down using the cursor  keys,
  4224.             <PgUp> and <PgDn> keys,  or your mouse if you  have one, the
  4225.             name of  the currently highlighted database is automatically
  4226.             filled  into the  input field  for  you.   When the  correct
  4227.             database name is in the  input field, pressing <Enter> tells
  4228.             File Express to go ahead and open that file.
  4229.  
  4230.        *    A new database can be  defined by typing in a  database name
  4231.             not already in use.   The screen for defining a new database
  4232.             is displayed  and explained  below.   If you  end up  at the
  4233.             Define  Screen  because  of  misspelling  a  database  name,
  4234.             pressing <Esc> returns  you to the database name  list where
  4235.             you can try again.
  4236.  
  4237.        *    An existing database can be deleted by highlighting its name
  4238.             in  the list  and pressing <Alt-D>.   File  Express confirms
  4239.             your intention  for the database  to be destroyed  before it
  4240.             continues.    Erasing  a database  eliminates  all  its data
  4241.             records and indexes  plus any report  and label formats  and
  4242.             keyboard macro file associated with the database.  
  4243.  
  4244.        *    An existing database can be renamed (given a different name)
  4245.             by pressing <Alt-R>  when the database name  is highlighted.
  4246.             File Express prompts for the new name and description.   The
  4247.  
  4248.  
  4249.  
  4250.                                                   OPENING A DATABASE  83
  4251.   ----------------------------------------------------------------------
  4252.  
  4253.             new name may  be any valid DOS  file name from one  to eight
  4254.             characters, and may not already be in use as a database name
  4255.             on the same drive and subdirectory. 
  4256.  
  4257.        *    If you  want  to display  a list  of database  files from  a
  4258.             different path, press <Alt-P>.  File Express  takes you back
  4259.             to the Drive and Path prompts.
  4260.  
  4261.        *    You can make a copy of an existing database by  highlighting
  4262.             it name and pressing <Alt-C>.  File Express asks you for the
  4263.             name and description of the new database and which parts you
  4264.             want to copy.
  4265.  
  4266.        *    When you  define a  new database and  save it,  File Express
  4267.             prompts you to enter a description up to 40 characters long.
  4268.             This  description is  saved  in  the  header file  for  that
  4269.             database.   If you  want to  change  the description,  press
  4270.             <Alt-E> while the database line is highlighted.
  4271.  
  4272.        If you are running File Express from diskettes, and you  discover
  4273.        your database is not on the diskette  currently in drive B, press
  4274.        <Esc> to return to the Main Menu or the Path prompt, then put the
  4275.        new diskette in  drive B and select Open A Database from the Main
  4276.        Menu or press <Enter> on the Path prompt again. 
  4277.  
  4278.        After  File  Express  opens  your  database,  the  Main  Menu  is
  4279.        displayed:
  4280.  
  4281.  
  4282.  
  4283.   84  DEFINE A DATABASE
  4284.   ----------------------------------------------------------------------
  4285.  
  4286.    
  4287.                          Defining A New Database
  4288.  
  4289.  
  4290.   Database Definition Screen
  4291.        When the  database  name entered  does  not already  exist,  File
  4292.        Express displays the Database Definition screen: 
  4293.  
  4294.  
  4295.  
  4296.  
  4297.  
  4298.  
  4299.                  Registered Version has screen picture here
  4300.  
  4301.  
  4302.  
  4303.  
  4304.  
  4305.  
  4306.  
  4307.  
  4308.  
  4309.  
  4310.        The  fields of your new database are  entered on this screen, one
  4311.        per line.   A database may have  as many as 200  fields, provided
  4312.        the total  combined length  of the  fields does  not exceed  4000
  4313.        characters. 
  4314.  
  4315.        In addition to a name, each field has various attributes, such as
  4316.        type,  length,  and format,  which  are entered  on  this screen.
  4317.        Since there are several rules and considerations for each of  the
  4318.        columns  on this screen,  each column is  discussed separately in
  4319.        the following sections: 
  4320.  
  4321.  
  4322.   Field Name 
  4323.        When defining a  new database, you first need  to determine which
  4324.        pieces of  data (fields) are necessary.  If  need be, make a list
  4325.        of the fields on  paper before starting, then review  them to see
  4326.        if they should be broken down into smaller pieces.  For  example,
  4327.        if you have  the first and last  name together in a  field called
  4328.        "NAME",  there  is no  way  to sort  the records  into  last name
  4329.        sequence.   Likewise, if the CITY,  STATE and ZIP are together in
  4330.        one continuous field,  there is no way  to sort or select  by zip
  4331.        code. 
  4332.  
  4333.        Each field must  be given a name, from one  to twelve characters.
  4334.        The field name usually describes the data the  field holds.  Here
  4335.        are examples of some typical field names: 
  4336.  
  4337.  
  4338.  
  4339.                                                    DEFINE A DATABASE  85
  4340.   ----------------------------------------------------------------------
  4341.                                  empty
  4342.  
  4343.  
  4344.  
  4345.   86  DEFINE A DATABASE
  4346.   ----------------------------------------------------------------------
  4347.  
  4348.                  First Name          Invoice No.
  4349.                  Last Name      Account No.
  4350.                  Company Name   Part Number
  4351.                  Customer       Price
  4352.                  Address        Cost
  4353.                  Department          Amount
  4354.                  Phone Number   Quantity
  4355.                  City           Tax
  4356.                  State               Total
  4357.                  Zip Code       Mo-Day-Yr
  4358.                  Country        Date
  4359.  
  4360.        From the  examples above  you can  see that  spaces, periods  and
  4361.        dashes are allowed in  field names.  Just about any other special
  4362.        character may be  used too, but we  suggest you limit the  use of
  4363.        special characters,  because they can occasionally cause problems
  4364.        later when File Express is processing formulas.  For example,  if
  4365.        you  have fields  named  PRICE and  PRICE+1,  when you  reference
  4366.        PRICE+1 in a  report, File Express assumes  you want the  value 1
  4367.        added  to  the field  called  PRICE  instead.   To  prevent  such
  4368.        ambiguities, it  is a  good idea to  avoid special  characters in
  4369.        field names. 
  4370.  
  4371.        It is  also best  to avoid field  names made  up of  only numeric
  4372.        characters.  If you try to do  arithmetic on a field called 5280,
  4373.        the report writer is not sure  if you are referring to the  field
  4374.        named 5280 or the  number 5280.  Using a number with letters in a
  4375.        field name, such as PRICE3, is acceptable. 
  4376.  
  4377.        The  field name  usually appears  on  the screen  when adding  or
  4378.        changing records (field  names can be omitted by  making a custom
  4379.        input screen called a View), so for appearance sake, you may want
  4380.        to use  upper- and lower-case  characters in the  name.   This is
  4381.        acceptable, and does  not create any  problems when referring  to
  4382.        the field names in reports and in formulas, because File  Express
  4383.        ignores case in those instances. 
  4384.  
  4385.        Two fields may  have the same name.   However, if you  refer to a
  4386.        field by name in a report, File Express uses the first occurrence
  4387.        of the  name.   Another method of  identifying the  precise field
  4388.        which you want to use is to reference it  by field number such as
  4389.        F32 for Field 32.
  4390.  
  4391.        It is easy to change one or more field names later, even if there
  4392.        is data in the  database, by using  a selection from the  Mainte-
  4393.        nance Menu.   If reports have already been created which refer to
  4394.        the old field  name, they must be changed as well before they can
  4395.        be printed.  
  4396.  
  4397.  
  4398.  
  4399.                                                    DEFINE A DATABASE  87
  4400.   ----------------------------------------------------------------------
  4401.  
  4402.   Field Type 
  4403.        After  you have  entered the field  name at the  beginning of the
  4404.        line, the  cursor moves to the Type column.   A prompt displays a
  4405.        list of the valid field types.  They are: 
  4406.  
  4407.   <C> Character  Field: This  is  the most  common field  type.   Names,
  4408.        addresses, abbreviations, even  zip codes are usually  defined as
  4409.        character fields.    Character fields  may  be as  short  as  one
  4410.        character or as  long as 1000 characters.   Any character, number
  4411.        or special symbol  you can enter on  your keyboard is valid  in a
  4412.        character field, including the special foreign character set (see
  4413.        the  section  titled  Advanced  Features  for  more information).
  4414.        Character fields longer  than the screen width can  be defined as
  4415.        either Scrolling fields or Window fields.  These two features are
  4416.        described later in the Paint section.
  4417.  
  4418.   <N>  Numeric Field:  Use this field  type for  numbers such  as dollar
  4419.        amounts, unit quantities, etc.  If you intend to do arithmetic or
  4420.        print subtotals with a field, it must be Numeric.  Numeric fields
  4421.        may be from 1 to 14 characters and may have up to 13 decimals. 
  4422.     
  4423.   <F>  Formula  (Numeric):  A  formula  field  contains  a  mathematical
  4424.        calculation or function.  When a record is added or changed, each
  4425.        formula is  evaluated.  Its result  is displayed in  its field on
  4426.        the screen, and  is saved in the  database file.  Data  cannot be
  4427.        entered into a  formula field; it is display-only.   Formulas can
  4428.        perform arithmetic on other fields, such as: 
  4429.  
  4430.                            PRICE * UNITS + TAX 
  4431.  
  4432.        For a detailed  explanation of formulas,  and more examples,  see
  4433.        the section titled Formulas. 
  4434.  
  4435.   <I> Increment Field: A type I field is an increment field.  This  type
  4436.        of  field automatically increments  the numeric contents  of this
  4437.        field from the  last record entered by  one and places it  as the
  4438.        default entry for the field in the current record.  
  4439.  
  4440.   <T> Text Formula: A type T field contains a formula whose result  is a
  4441.        string of text instead of a number.  For example: 
  4442.  
  4443.                          FIRST NAME & LAST NAME 
  4444.  
  4445.        places  the two  fields together  with a single  space separating
  4446.        them.   Other  text formulas  display information  such as  date,
  4447.        time, bar graphs, etc.  For example, this formula: 
  4448.  
  4449.                               TODAY & TIME 
  4450.  
  4451.  
  4452.  
  4453.   88  DEFINE A DATABASE
  4454.   ----------------------------------------------------------------------
  4455.  
  4456.        places the current date and time in the formula field, indicating
  4457.        the last time the record was updated.  For a detailed explanation
  4458.        of formulas, and more examples, see the section titled Formulas. 
  4459.  
  4460.   <D> Date Field: Dates are handled in a special manner by File Express.
  4461.        In the Setup  program you can  specify the global  format of  the
  4462.        Date field.   This can be either  MM-DD-YY, MM-DD-YYYY, DD-MM-YY,
  4463.        or  DD-MM-YYYY.   For example,  January  2nd, 1990  in the  first
  4464.        format type  appears in a type "D" field  as 01-02-90.  The third
  4465.        date style would be  entered as 02-01-90.  The dashes  are placed
  4466.        in the date  field automatically by File Express;  you only enter
  4467.        the  six or eight  numeric digits.   Date fields have  only these
  4468.        four formats.  Later, in reports, you  can print the date in many
  4469.        different formats, such as Tuesday January 2, 1990.
  4470.  
  4471.        Date fields are  also checked for  validity.  If  any one of  the
  4472.        digits is entered, then all must be entered and the date will not
  4473.        be accepted if it is not valid.   The year may be any number from
  4474.        00 to 99 or 0000 to 9999. 
  4475.  
  4476.        Date fields may  be left blank, in  which case the dashes  do not
  4477.        appear on reports. 
  4478.  
  4479.   <U> User-Defined Field: This is a variant of the Character field.   It
  4480.        is treated  the same  in every  respect, except  it has an  "edit
  4481.        mask" which forces fixed  characters into one or more  positions.
  4482.        For example, a social security number field might be given a mask
  4483.        of 
  4484.                            "    -    -     "  
  4485.        When  data is  entered into  the  field, the  dashes are  already
  4486.        filled in, and  cannot be changed or  moved.  When you  enter the
  4487.        nine numeric digits, the cursor bounces over the dashes. 
  4488.  
  4489.        The edit  mask may  contain  any alphabetic,  numeric or  special
  4490.        character in  any position  of the  field.  Leave  spaces in  the
  4491.        positions where data will later be entered.  If the edit  mask is
  4492.        left  completely  blank,  then  the  field acts  exactly  like  a
  4493.        Character field.    A space  may  be indicated  as an  edit  mask
  4494.        character by  entering a  @ character in  the position  where the
  4495.        space is to be.  When entering data, the @ displays on the screen
  4496.        as a space, and cannot have data entered into  it.  When saved to
  4497.        disk, the @ position contains a space. 
  4498.  
  4499.        If empty, the User-Defined field is saved to disk  as spaces; the
  4500.        edit mask characters are not saved, but they are remembered. 
  4501.  
  4502.  
  4503.   When Is A Number Not Numeric? 
  4504.        Since a character field can contain numeric digits, a number  can
  4505.        be  entered  into a  character  field just  as  easily as  into a
  4506.        numeric field.  In fact, we recommend that some numbers be placed
  4507.  
  4508.  
  4509.  
  4510.                                                    DEFINE A DATABASE  89
  4511.   ----------------------------------------------------------------------
  4512.  
  4513.        in a Character field rather than a  Numeric field.  Zip codes are
  4514.        a  prime example.   If a  zip code is  a character field  (with a
  4515.        length of 10) it can accommodate Canadian postal codes as well as
  4516.        the  dash  in  Zip+4  codes.   A  numeric  field,  even  one  ten
  4517.        characters long, can handle neither.  Another reason for defining
  4518.        zip code  fields as  Character  is that  they will  not lose  the
  4519.        leading zeros.   02415 would  become 2415 if  the field type  was
  4520.        Numeric.
  4521.  
  4522.        Character fields are  also sorted and displayed  differently than
  4523.        numeric fields.  Character fields are sorted from left to  right,
  4524.        a character at a time, so 9.1 sorts after 88888.8 because 9 comes
  4525.        after 8.  Sorting a numeric field with the same two numbers would
  4526.        do an arithmetic comparison and determine 88888.8 is much larger.
  4527.  
  4528.  
  4529.        When a  number is  entered into  a numeric  field, the  specified
  4530.        number  of decimal places  is added to  it.  For  example, if the
  4531.        numeric field  is supposed  to have  two decimal  places and  you
  4532.        enter 123 then the number is redisplayed as 123.00 in the numeric
  4533.        field.  If  the operator enters  123.456 in  the same field,  the
  4534.        extra decimal place  is rounded, leaving 123.46.   An empty field
  4535.        with decimals is left empty, however, unless the Zero Fill option
  4536.        has been specified in the Setup program. 
  4537.  
  4538.        Character fields are left-justified on the screen and in reports,
  4539.        while numeric fields are right-justified.  It is possible in  the
  4540.        report writer  to  change  justification,  but  to  automatically
  4541.        left-justify a number, define it as a character field. 
  4542.  
  4543.        One final  difference between  numeric and  character fields:  We
  4544.        mentioned  numeric fields are right-justified when they appear on
  4545.        the screen.  But when  editing a record, as soon as  you move the
  4546.        cursor to a numeric  field, the number slides to the  left to let
  4547.        it be edited easily without having to arrow across the field.  As
  4548.        soon as you leave the field, the number moves back to  the right.
  4549.        Numeric fields are stored right-justified on disk. 
  4550.  
  4551.  
  4552.   Field Length 
  4553.        After you select the names for  the fields in your new  database,
  4554.        you must  determine how  long each  field should  be.   A field's
  4555.        length should be long enough to accommodate the longest string of
  4556.        data the field  might need to hold.   It is possible  to increase
  4557.        the size  of a  field later,  so start  out by  taking your  best
  4558.        guess.  Here are some common field lengths we use at Expressware:
  4559.  
  4560.  
  4561.  
  4562.   90  DEFINE A DATABASE
  4563.   ----------------------------------------------------------------------
  4564.  
  4565.             First name:         10
  4566.             Last name:          15
  4567.             Company name:       30
  4568.             Address:            30
  4569.             City:               15
  4570.             State:               2   (postal state abbreviation)
  4571.             Zip:                10   (handles zip+4 and Canadian)
  4572.             Dollar Amounts:     10   (9999999.99 to -999999.99)
  4573.             Quantities:         6    (999999 to -99999)
  4574.             Dates:              8    (nn-nn-nn)
  4575.  
  4576.        If you  press  <Enter> without  indicating  a field  length,  you
  4577.        discover File Express defaults  to a length  of 30 for  character
  4578.        fields and  10 for  numeric fields.   Although  these are  common
  4579.        lengths, it  is not advisable to  use the default on  every field
  4580.        you  define.    Your records will  be considerably  larger if the
  4581.        defaults are used, which causes your disk to fill up  faster, and
  4582.        slows down processing.
  4583.  
  4584.  
  4585.   Field Format 
  4586.        The column on the screen labeled "-format-" is treated different-
  4587.        ly for each of the five field types: 
  4588.  
  4589.        <C>  (character)  fields:  The word  Character  appears,  and the
  4590.        column is skipped. 
  4591.  
  4592.        <N> (numeric) fields: You are prompted for the number of  decimal
  4593.        places.    After  entering  the  number,  the  column displays  a
  4594.        representation  of the  numeric  field  using  #  characters  for
  4595.        digits.  For example,  a numeric field  with four decimal  places
  4596.        specified and length of ten appears in this column as  #####.####
  4597.        and a  numeric field with  no decimal places  and length  of five
  4598.        appears as ##### in the format column. 
  4599.  
  4600.        <F> (numeric formula) fields: You are prompted for the number  of
  4601.        decimal places.  The column displays  just as it does for Numeric
  4602.        fields. 
  4603.  
  4604.        <T> (text formula)  fields: The word  Character appears, and  the
  4605.        column is skipped. 
  4606.  
  4607.        <D> (date)  fields: The current date format  style (mm-dd-yy, dd-
  4608.        mm-yy,  mm-dd-yyyy,  or  dd-mm-yyyy) appears  and  the  column is
  4609.        skipped. 
  4610.  
  4611.        <U> (user-defined) fields: You are prompted for the Edit Mask  to
  4612.        be used when  entering this field.   The mask is  as long as  the
  4613.        field  length specified earlier, although only the first fourteen
  4614.        characters are displayed on the screen in the format column. 
  4615.  
  4616.  
  4617.  
  4618.                                                    DEFINE A DATABASE  91
  4619.   ----------------------------------------------------------------------
  4620.  
  4621.   Is The Sequence Of The Fields Significant? 
  4622.        If  the fields  in the database  will be entered  directly from a
  4623.        document or  form, the  sequence of the  fields on  your database
  4624.        should match  the sequence  on the form  as closely  as possible.
  4625.        When data has been entered  into a field and <Enter> is  pressed,
  4626.        the cursor moves  to the next  consecutive field number   so  the
  4627.        closer the field sequence matches the input document, the  easier
  4628.        it is  to  enter data.   The  input sequence  for  fields can  be
  4629.        rearranged on  the screen with  the Paint  option.  More  on this
  4630.        later.
  4631.  
  4632.        Placement  of  formula  fields  on  the  database  requires  some
  4633.        planning too.   By placing a formula field in the proper sequence
  4634.        within the database, you can control when it is evaluated as data
  4635.        is  entered.   Formulas are  display-only  fields, so  it is  not
  4636.        possible to enter data into them.  But when the cursor moves past
  4637.        them,  they are  evaluated  (computed)  and  their  new  contents
  4638.        displayed.  
  4639.  
  4640.        Consequently, formulas with  date and time information  should be
  4641.        at the beginning of the database so they are immediately evaluat-
  4642.        ed.  If a formula (such as Units * Price) immediately follows the
  4643.        unit and price fields,  it is evaluated  as soon as both  numbers
  4644.        have been  entered.   A  formula such  as  a grand  total,  which
  4645.        requires all the data  on the screen to be entered  first, can go
  4646.        at the end of the record so it gets calculated  last.  It is also
  4647.        possible  to define "temporary"  calculated fields that  are only
  4648.        displayed on  the screen and not stored  in the database on disk.
  4649.        This is described in the Paint section.
  4650.  
  4651.  
  4652.   Changing And Saving The Definition 
  4653.        After you have  entered all the field names  and their associated
  4654.        types, lengths and formats, your screen might look something like
  4655.        this:
  4656.  
  4657.  
  4658.  
  4659.   92  DEFINE A DATABASE
  4660.   ----------------------------------------------------------------------
  4661.  
  4662.        T  h  e
  4663.        cursor
  4664.        i      s
  4665.        waiting
  4666.        for   you
  4667.        to   type
  4668.        in    the
  4669.        name   of
  4670.        the  next
  4671.        field.
  4672.        Since
  4673.        you   are
  4674.        through,
  4675.        press
  4676.        <Enter>
  4677.        without
  4678.        typing in any characters.  When  you do, a prompt appears at  the
  4679.        bottom of the screen:
  4680.  
  4681.           <S>ave  <A>dd  <C>hange  <I>nsert  <D>elete  <M>ove  <Esc>
  4682.  
  4683.        <S> Save: If your definition is exactly as you want it, Press <S>
  4684.        to save it.  The database  is created and the Main Menu  appears,
  4685.        with the new database selected and ready to add records. 
  4686.  
  4687.        <A>  Add:  To continue  adding  new  fields  at  the end  of  the
  4688.        definition, press <A>.  The cursor moves to the next empty field.
  4689.  
  4690.  
  4691.        <C> Change: If one of the fields needs a change made to its field
  4692.        name or specifications, press <C>.  File Express asks which field
  4693.        number  is  to be  changed,  and then  moves the  cursor  to that
  4694.        field's name and lets you re-type the line. 
  4695.  
  4696.        <I> Insert: If you decide  to add a new field, but you don't want
  4697.        it  at the  end of  the  record, press  <I>.   File  Express asks
  4698.        "Insert field  before which  number?"   Enter the  number of  the
  4699.        field you  want  to precede  with a  new field  and File  Express
  4700.        inserts  a  new field  and  prompt you  for  the name,  type, and
  4701.        length.  If  you type a  number 1 higher  than the highest  field
  4702.        number, File Express places the field at the end of the database.
  4703.  
  4704.        <D> Delete: To delete an existing field, press <D>.  File Express
  4705.        asks "Delete  which field  number?"   Enter the  field number  to
  4706.        delete and File Express removes it from the database.
  4707.  
  4708.        <M> Move: To  move a field to  a different location in  the list,
  4709.        press <M>.  File Express asks you to: "Enter Field Number to Move
  4710.        __".  Enter the number of the field you want to reposition.  Then
  4711.        File Express asks  "Move Field Number x before  Field Number __".
  4712.        You should now enter the number of a field where you want to move
  4713.  
  4714.  
  4715.  
  4716.                                                    DEFINE A DATABASE  93
  4717.   ----------------------------------------------------------------------
  4718.  
  4719.        your field  to.  The field  is placed above  this field.   If you
  4720.        type a  number  1 higher  than  the highest  field  number,  File
  4721.        Express places the field at the end of the database.
  4722.  
  4723.  
  4724.  
  4725.   94  DEFINE A DATABASE
  4726.   ----------------------------------------------------------------------
  4727.  
  4728.        <Esc> As always,  the <Esc>  key cancels  the current  operation.
  4729.        Before  abandoning your work, however, File Express verifies your
  4730.        intention to exit by prompting:
  4731.  
  4732.  
  4733.  
  4734.  
  4735.  
  4736.  
  4737.                  Registered Version has screen picture here
  4738.  
  4739.  
  4740.  
  4741.  
  4742.  
  4743.  
  4744.  
  4745.  
  4746.  
  4747.  
  4748.        If you really want  to abandon your  changes, press <Esc>  again.
  4749.        To resume adding fields or changing, press <Enter>.   If you want
  4750.        to start over with a clean slate, press <Spacebar>.
  4751.  
  4752.  
  4753.   Changing Database Specifications 
  4754.        It  is common to  define a database, start  putting data into it,
  4755.        then suddenly realize a field is missing, or is too short, or has
  4756.        the wrong format.  When this happens it is not necessary to start
  4757.        all over.  Every aspect of a  database can be changed at any time
  4758.        in the future. 
  4759.  
  4760.        If data has already been entered into the database, or if reports
  4761.        or labels have  already been designed,  some changes become  more
  4762.        difficult.   For example, if you  have a field  called Name which
  4763.        you  want to separate into two fields  called First Name and Last
  4764.        Name, there  is more involved than  simply adding a field.   File
  4765.        Express has no  way of determining which part of the old field is
  4766.        the first name  and which is the last  name, so you must  do that
  4767.        yourself,  one record at a  time or using  the Search and Replace
  4768.        option in  Find/Edit  Records.   If  any reports  or  labels  are
  4769.        defined  which  refer  to  the  field  called  Name,  the  report
  4770.        specifications must  be changed.    Some changes  cannot be  done
  4771.        automatically; they require  you to go through the  file and make
  4772.        the change manually. 
  4773.  
  4774.        Most other  changes  are  considerably  easier.   Here  are  some
  4775.        examples of changes  you may want to make, and  an explanation of
  4776.        how to make them: 
  4777.  
  4778.  
  4779.  
  4780.                                                    DEFINE A DATABASE  95
  4781.   ----------------------------------------------------------------------
  4782.  
  4783.        CHANGING FIELD NAME: Select  Item 1 (Change Database  Specs) from
  4784.        the Maintenance Menu, and use the <C>hange option.  (Also  change
  4785.        any formulas in reports which refer to the field by name.) 
  4786.  
  4787.        CHANGING FIELD TYPE:  Select Item 1 (Change  Database Specs) from
  4788.        the Maintenance  Menu,  and use  the <C>hange  option.   Changing
  4789.        field types to <C>haracter is easiest, because anything is  valid
  4790.        in a character field.  Before  changing a field to <N>umeric,  go
  4791.        through  the  database and  make  sure  the field  contains  only
  4792.        numeric  digits, spaces, optional minus sign and optional decimal
  4793.        point with the correct number of decimal places.  After  changing
  4794.        a  field to <F>ormula, select Item 6, Recalculate Entire Database
  4795.        from the Maintenance Menu.
  4796.  
  4797.        CHANGING FIELD LENGTH: Select Item 1 (Change Database Specs) from
  4798.        the Maintenance Menu, and use the <C>hange option.   When all the
  4799.        changes have been  made, File Express reads all  the data records
  4800.        in your file  and writes them back  to disk with the  new length.
  4801.        Small databases take  just a few seconds, but large ones can take
  4802.        several  minutes.   Before reducing  the  length of  a field,  go
  4803.        through the  database and  make sure none  of the  fields contain
  4804.        information  past  the  new  desired  length.    Otherwise,  this
  4805.        information  will be lost.   Also make  a backup of  the database
  4806.        before starting, because if the process is  interrupted before it
  4807.        completes, the database becomes unreadable. 
  4808.  
  4809.        CHANGING  NUMBER  OF  DECIMALS: Select  Item  1  (Change Database
  4810.        Specs) from the  Maintenance Menu, and  use the <C>hange  option.
  4811.        No  other steps  are necessary.   When a  record is  displayed or
  4812.        printed, the new number of decimals is used. 
  4813.  
  4814.        CHANGING THE CUSTOM INPUT SCREEN: Select Item 2 (Paint) from  the
  4815.        Maintenance Menu. 
  4816.  
  4817.        CHANGING A  FORMULA: Select Item  1 (Change Database  Specs) from
  4818.        the Maintenance Menu, and use the <C>hange option.
  4819.  
  4820.        ADDING A NEW FIELD: To add a field into the database, select Item
  4821.        1 (Change Database Specs) from the Maintenance Menu, and use  the
  4822.        <I>nsert option.
  4823.  
  4824.        DELETING A  FIELD: To  delete a field  from the  database, select
  4825.        Item 1 (Change Database Specs) from the Maintenance Menu, and use
  4826.        the <D>elete option.
  4827.  
  4828.  
  4829.        MOVING A FIELD: To  move a field within the database, select Item
  4830.        1 (Change Database Specs) from the Maintenance Menu, and use  the
  4831.        <M>ove option.
  4832.  
  4833.  
  4834.  
  4835.   96  DEFINE A DATABASE
  4836.   ----------------------------------------------------------------------
  4837.  
  4838.        Technical Note:  
  4839.        Several  features  of  File  Express  such  as  report and  label
  4840.        formats,   index  specifications  and   some  types   of  formula
  4841.        references are kept track of using field numbers.  
  4842.  
  4843.        If you  define  a  report  or  label  using  a  particular  field
  4844.        sequence,   and  then  change  the  database  format  by  adding,
  4845.        deleting, or moving fields, some or  all of the report and  label
  4846.        definitions may  have to be changed.  For  example, if you have a
  4847.        database defined with three fields:
  4848.  
  4849.                       FIRST NAME 
  4850.                       LAST NAME
  4851.                       ADDRESS
  4852.  
  4853.        and make a report using these three fields, the report will print
  4854.        as expected.  If you later add  a new field between the LAST NAME
  4855.        and ADDRESS fields called COMPANY so that your definition is now:
  4856.  
  4857.                       FIRST NAME
  4858.                       LAST NAME
  4859.                       COMPANY
  4860.                       ADDRESS
  4861.  
  4862.        loading and printing the same report will print FIRST NAME,  LAST
  4863.        NAME, and  COMPANY instead  of printing  FIRST  NAME, LAST  NAME,
  4864.        ADDRESS  as it did  previously.  To correct  the report, you must
  4865.        edit it to remove the third field and replace it with the ADDRESS
  4866.        field again which is now the fourth field instead of the third.
  4867.  
  4868.        If you do want to add new  fields to a database it is best  to do
  4869.        at the end of the field list so they don't effect the field order
  4870.        of existing fields above them.  Since you can set the field input
  4871.        order, this does not cause a problem with the desired field entry
  4872.        order when adding or editing records.
  4873.  
  4874.        Since index files are expected to track the specific fields  they
  4875.        were designed to, whenever you add, delete, or move fields,  File
  4876.        Express  deletes all  existing index  files  and requires  you to
  4877.        rebuild them.
  4878.  
  4879.        Field references in formulas can be affected by the rearrangement
  4880.        of fields in the definition list.   If fields are referenced in a
  4881.        formula by their number, such as F3, the fields they refer to may
  4882.        change if the original field is moved around.  Fields  referenced
  4883.        by field name are not affected by position.  SUBTOTAL * SALES TAX
  4884.        is better than F12 * F13 and much easier to read later on.
  4885.  
  4886.  
  4887.  
  4888.                                                   ADDING NEW RECORDS  97
  4889.   ----------------------------------------------------------------------
  4890.  
  4891.  
  4892.                            Adding New Records 
  4893.  
  4894.        To add records  to a File Express  database, press <2> or  <A> on
  4895.        the Main  Menu.   File Express  immediately displays  the current
  4896.        input screen for  the database with  all the fields  empty.   For
  4897.        example, adding records to the TUTORIAL database looks like this:
  4898.  
  4899.  
  4900.  
  4901.  
  4902.  
  4903.  
  4904.                  Registered Version has screen picture here
  4905.  
  4906.  
  4907.  
  4908.  
  4909.  
  4910.  
  4911.  
  4912.  
  4913.  
  4914.  
  4915.  
  4916.        The tutorial  example above  is an  example of  a Painted  screen
  4917.        containing the 15 fields.   Much more  complex input layouts  are
  4918.        possible, containing up to 200 input fields on up to ten separate
  4919.        screens, or pages.  The number  of fields on the input layout  is
  4920.        determined by the number of fields  in the database.  The  number
  4921.        of pages (1 to 10) varies with the number of fields, and can also
  4922.        be changed using a custom screen layout.  
  4923.  
  4924.  
  4925.   Filling In The Blanks 
  4926.        To add a new record to the  database, just fill in the blanks  on
  4927.        the screen, then press  <F10> to save the record.   If you change
  4928.        your mind before pressing <F10> and decide not to add the record,
  4929.        press <Esc>  to return  to the  Main Menu  after confirming  your
  4930.        intention to abandon the record. 
  4931.  
  4932.        Fields may be left  blank by pressing  <Enter>, <Tab> or  <Down>.
  4933.        As the cursor moves to a field,  the total length of the field is
  4934.        indicated  by the  space  characters you  selected  in the  Setup
  4935.        program.  (The  default is an underline character.)   These space
  4936.        characters disappear when the cursor moves to the next field.  Of
  4937.        course, if  the field  is completely filled  with data,  no space
  4938.        characters appear. 
  4939.  
  4940.        The  special keys described  in the Keyboard  Conventions section
  4941.        operate as described when adding new records.  If the <Up> key is
  4942.  
  4943.  
  4944.  
  4945.   98  ADDING NEW RECORDS
  4946.   ----------------------------------------------------------------------
  4947.  
  4948.        pressed while the cursor is at the first field, the cursor  moves
  4949.        to the last field.  When the <Down> or  <Enter> key is pressed on
  4950.        the last field, File Express pops up a window:
  4951.  
  4952.                           Save changes (Y/N)? Y
  4953.                        or <C> to continue editing 
  4954.  
  4955.        Pressing <Y> or <Enter>, saves the current record.  Pressing  <C>
  4956.        resumes editing.  You can also press <L> at this point to print a
  4957.        Quick Label if you have one or more defined.
  4958.  
  4959.        When the  cursor moves to a numeric field,  the data in the field
  4960.        shifts to the left, to make it easier to change.  When the cursor
  4961.        leaves the field, the numeric  data resumes its normal right-jus-
  4962.        tified position.  Only  selected characters may  be entered in  a
  4963.        numeric field:  numeric digits  <0> to  <9>, minus  sign <->  and
  4964.        decimal point <.>.   The minus  sign, when present,  must be  the
  4965.        first character in the  field.  The decimal point  and minus sign
  4966.        may appear only once in a numeric field. 
  4967.  
  4968.        After pressing <Enter>, File Express puts the specified number of
  4969.        decimal places on the number and re-displays it.  However, if the
  4970.        resulting data is too  large to fit  in the field, fewer  decimal
  4971.        places  are displayed.   For example,  if a numeric  field is six
  4972.        characters long with two decimal places, and you enter 1234,  the
  4973.        resulting 1234.00 string does  not fit within six characters,  so
  4974.        the  field contains 1234.0  instead.  If 12345  is entered, it is
  4975.        displayed in the  field with no decimal places,  because there is
  4976.        no room  for decimals  to be  displayed.   12.345  is rounded  to
  4977.        12.35.
  4978.  
  4979.  
  4980.   Formulas Are Display-Only 
  4981.        Formulas are  display-only fields, whose contents  are determined
  4982.        by evaluating  the formula.  As  the cursor moves  past a formula
  4983.        field,  the formula  is evaluated  (computed) and  its result  is
  4984.        displayed on the screen.   Also, when a record is  saved, all the
  4985.        formulas in  the record  are re-evaluated  in case  any were  not
  4986.        calculated.
  4987.  
  4988.  
  4989.   New Records Go On The End 
  4990.        When a new record is added to  the database, it is usually placed
  4991.        at the  end of  the data  file, and  any active  index files  are
  4992.        updated.  However, if you have recently deleted any records  from
  4993.        your database, File Express attempts to re-use the space occupied
  4994.        by those deleted records, by putting new records in their place. 
  4995.  
  4996.  
  4997.   Record Numbers Are Not Data 
  4998.  
  4999.  
  5000.  
  5001.                                                   ADDING NEW RECORDS  99
  5002.   ----------------------------------------------------------------------
  5003.  
  5004.        File Express assigns a  unique record number  to every record  in
  5005.        the database.  Since this number is unique, it is tempting to use
  5006.        it as  a reference  number, customer  number, etc.   This is  not
  5007.        recommended.  As  you will discover the first  time your database
  5008.        gets cloned or appended, all the record numbers are changed.  And
  5009.        when a record is deleted, the record number is re-used for  a new
  5010.        record. 
  5011.  
  5012.        If  you  need a  reference  number  or  customer number  in  your
  5013.        database, set up  a field called Reference  or Cust Number.   You
  5014.        can enter  the record number into it if you like.  This way, when
  5015.        the time comes that the record number is no longer accurate, your
  5016.        reference number field is still intact and unchanged. 
  5017.  
  5018.  
  5019.   Multiple Pages (Screens) 
  5020.        When adding a record, there may be  too many fields to fit on the
  5021.        first page  (screen).  When  this happens, a  "1" appears in  the
  5022.        upper right  corner of  page 1, indicating  this is the  first of
  5023.        multiple pages.   There are three ways to get to the second page.
  5024.        The fastest way  is to press the  <PgDn> key.  Moving  the cursor
  5025.        off the bottom of the screen with the <Down> key also advances to
  5026.        the second and  subsequent pages.  And pressing  <Enter> or <Tab>
  5027.        on the last field of a page advances to the next page. 
  5028.  
  5029.        Likewise, if  you are  on the  second page,  <PgUp> moves  to the
  5030.        first  page.  When the <Up> key  moves off the top of the screen,
  5031.        the previous page is  also displayed.   <Shift-Tab> on the  first
  5032.        field of a page moves to the previous page. 
  5033.  
  5034.        If you find it  awkward to work with multiple pages,  it is often
  5035.        possible to  fit all your  data onto a  single page by  using the
  5036.        Paint  option.  See  the Maintenance  section for  information on
  5037.        painting custom screens. 
  5038.  
  5039.  
  5040.   Selecting Alternate Input Screens
  5041.        If you have defined one or  more Views for input, you can  change
  5042.        from one to another at any time while adding or  editing records.
  5043.        To make a change,  press <Alt-V> to bring up the View List.  From
  5044.        here you can move the highlighted bar to the View you want to use
  5045.        and press <Enter>.  The new input screen is displayed and you can
  5046.        continue  adding records.   If you  had entered  information into
  5047.        some fields  before changing Views,  the information is  still in
  5048.        the corresponding fields in the new View.
  5049.  
  5050.  
  5051.   The Flip-Field-Contents Mark 
  5052.        On character fields  the tilde <~>  character performs a  special
  5053.        function.   The tilde  acts as  a Flip-Field-Contents-Here  mark.
  5054.        When you  print reports  or mailing labels,  the contents  of the
  5055.  
  5056.  
  5057.  
  5058.   100  ADDING NEW RECORDS
  5059.   ----------------------------------------------------------------------
  5060.  
  5061.        field  are reversed  at the  tilde  mark and  the two  halves are
  5062.        printed with one space between them. 
  5063.  
  5064.        A common use of the tilde is to combine first and last names into
  5065.        a  single  field,  yet  let the  field  be  sorted  in  last name
  5066.        sequence.  For example, if a field  contains Washington~George it
  5067.        sorts  alphabetically  by last  name  but prints  on  reports and
  5068.        labels as George Washington. 
  5069.  
  5070.        The first tilde  encountered within a character field  is used as
  5071.        the flip character.  Additional tildes are ignored, and print  as
  5072.        data. 
  5073.  
  5074.        A recommended alternative to  the tilde, at  least for first  and
  5075.        last names, is to make them two separate fields.  This  lets them
  5076.        be sorted either first/last or last/first, and makes it  possible
  5077.        to search on either field separately.  The separate fields can be
  5078.        combined  on  reports  with  a   single  space  between  them  by
  5079.        concatenating them with  a <&> operator  (see the section  titled
  5080.        Formulas for more information). 
  5081.  
  5082.        Separate  first  and last  name  fields  also  aid  in  duplicate
  5083.        checking.   Last names  are the most  reliable data  to use  when
  5084.        locating duplicates in a database.  People don't abbreviate their
  5085.        last name or use a nickname for it.  A person named William Smith
  5086.        might sometimes write his name Bill Smith, sometimes W. Smith, or
  5087.        sometimes only  Mr. Smith.  The last name  is constant, and is an
  5088.        excellent field for searching or finding  duplicates, but only if
  5089.        it is in a field by itself. 
  5090.  
  5091.  
  5092.   The Repeat Keys
  5093.        Field by Field 
  5094.        If the contents of  a field are the same  from one record to  the
  5095.        next,  it is  not  necessary  to  completely  re-type  the  field
  5096.        contents each time  you add a record.   Pressing <Ctrl-R> repeats
  5097.        the field  data from  the previous  record, placing  it into  the
  5098.        field on the current record.   For example, if three new  records
  5099.        have the same city type the city name on the first record.   Then
  5100.        when you come to  the city name on the second  and third records,
  5101.        just press <Ctrl-R>.   The city is  filled in automatically,  and
  5102.        the cursor advances to the next field. 
  5103.  
  5104.        Entire Record
  5105.        Pressing <Alt-R> copies  all the fields from  the previous record
  5106.        into the current one.  You can then move around the record making
  5107.        any needed changes to individual fields.
  5108.  
  5109.  
  5110.   Quick Labels 
  5111.  
  5112.  
  5113.  
  5114.                                                  ADDING NEW RECORDS  101
  5115.   ----------------------------------------------------------------------
  5116.  
  5117.        If you have  defined a label  format and assigned  it to a  Quick
  5118.        Label key, a quick label can be printed using the data on the Add
  5119.        New Records screen.   Press <Ctrl-L> after  the data is  entered,
  5120.        but before pressing <F10>.  A quick label is immediately printed.
  5121.        For more information on defining and using quick labels, see  the
  5122.        Label Setup section in the chapter titled Printing Labels.
  5123.  
  5124.        When you  are finished  adding records  to  your database,  press
  5125.        <Esc>.  After confirmation, File Express returns you to the  Main
  5126.        Menu.
  5127.  
  5128.  
  5129.  
  5130.   102  FINDING RECORDS
  5131.   ----------------------------------------------------------------------
  5132.                                   empty
  5133.  
  5134.  
  5135.  
  5136.                                                     FINDING RECORDS  103
  5137.   ----------------------------------------------------------------------
  5138.  
  5139.                        Finding and Changing Records
  5140.  
  5141.        The information in  your database may require updating  from time
  5142.        to time.  Sometimes the  changes are simple,  such as an  address
  5143.        change  on  a single  record.   Sometimes  the changes  are  more
  5144.        complex,  such as  replacing the  field  contents in  a group  of
  5145.        related records.  Before a record can be edited, it must first be
  5146.        found  and  displayed  on the  screen.   This  screen  display is
  5147.        identical to the Add Records screen used to create the record, so
  5148.        changing it is just  a matter of moving the cursor  to each field
  5149.        and typing over the old data.
  5150.  
  5151.        To find records in  a database, and  optionally change or  delete
  5152.        them, select Item 3 from the Main Menu: Find/Edit Records.   This
  5153.        menu displays:
  5154.  
  5155.  
  5156.  
  5157.   104  FINDING RECORDS
  5158.   ----------------------------------------------------------------------
  5159.  
  5160.  
  5161.   Finding A Record 
  5162.        Type  <1>  or <F>  on the  Find  Menu, and  the  following screen
  5163.        appears: 
  5164.  
  5165.    
  5166.  
  5167.  
  5168.  
  5169.  
  5170.  
  5171.                  Registered Version has screen picture here
  5172.  
  5173.  
  5174.  
  5175.  
  5176.  
  5177.  
  5178.  
  5179.  
  5180.  
  5181.        The Record  Selection screen  is used to  tell File  Express what
  5182.        records you want to search for.
  5183.  
  5184.        The window you see  at the left of the screen  contains a list of
  5185.        all the  fields in your database  for reference. You can  use the
  5186.        <PgUp> and  <PgDn> keys to move  up and down  in the list  if you
  5187.        have  more than ten  fields.  The  right side of the  screen is a
  5188.        brief  "help screen" describing some of the common ways to find a
  5189.        record.  You can press <Alt-H> to get more helpful information if
  5190.        you need  it.  Doing so in this case brings up a complete list of
  5191.        all the functions, operators, and techniques that can be used  to
  5192.        search for records.  (For more detailed information and examples,
  5193.        refer to the Formula section of this manual).
  5194.  
  5195.  
  5196.   Viewing The Record 
  5197.        As soon as the selection criteria has been entered, File  Express
  5198.        begins searching for  records which match the criteria  using the
  5199.        current index.  The searches are usually very fast. 
  5200.  
  5201.        The first record  matching the criteria is displayed.   There are
  5202.        several options you may now select, depending on whether this  is
  5203.        the record you were looking for or not.  Most of  the options are
  5204.        displayed across the bottom of the screen: 
  5205.  
  5206.        <PgDn> If the current view of your database has more than 1 page,
  5207.        you  can use  the <PgDn>  and <PgUp>  keys to  display the  other
  5208.        pages.
  5209.  
  5210.  
  5211.  
  5212.                                                     FINDING RECORDS  105
  5213.   ----------------------------------------------------------------------
  5214.  
  5215.        <F>  Continue Searching  (Forward): When File Express  displays a
  5216.        record, there  may be  other records  further down  in the  index
  5217.        which also match the search criteria.  If this is not  the record
  5218.        you are looking for,  press <F> to  continue searching the  index
  5219.        for the next matching record.  The <Spacebar> key also  continues
  5220.        the search.
  5221.  
  5222.        <B>  Search (Backward): It is possible to search backward through
  5223.        the  index as  well as  forward.   Press <B>  to search  backward
  5224.        through the index  for another  record which  matches the  search
  5225.        criteria. 
  5226.  
  5227.        <E>  Edit: To make changes to the record, press <E>.   The cursor
  5228.        moves to the first field on the screen.  At this point, the arrow
  5229.        keys, <Enter>  key and <Tab>  key operate  just as they  did when
  5230.        adding the  record, letting  you change any  field.   For further
  5231.        information  on  entering  data, moving  around  the  screen, and
  5232.        handling multiple pages (screens), see the Add Records section. 
  5233.  
  5234.        Once the  changes have been  made to  the record, press  <F10> to
  5235.        save it to disk or <Esc> to continue without saving the changes. 
  5236.  
  5237.        <D>  Delete:  To remove the record from  the database, press <D>.
  5238.        File Express asks "Are you sure you want to destroy this record?"
  5239.        Reply <Y> to delete the record or  <N> to leave it alone.  If you
  5240.        reply <Y>, the data on the record disappears from the screen, the
  5241.        words  "Deleted  Record" begin  flashing  at  the bottom  of  the
  5242.        screen.  
  5243.  
  5244.        Technical note:   When  you delete a  record from  your database,
  5245.        reference to  it is removed  from all  the active indexes.   File
  5246.        Express  then  places the  deleted  record  number in  a  special
  5247.        Deleted  Record Index  file  so that  it can  be used  later when
  5248.        adding  new  records to  your  database.    This way,  the  space
  5249.        occupied by deleted records  can be reclaimed.   Until a  deleted
  5250.        record is reused, you  can select the  Deleted Record Index  from
  5251.        the Index  List  as the  Primary  Index and  view,  edit,  print,
  5252.        export, and undelete any of the remaining deleted records.  While
  5253.        the  Deleted Record  Index is  active,  all <D>elete  prompts are
  5254.        changed to <U>ndelete.
  5255.  
  5256.        <N>  Next:  Pressing <N> advances the display to  the next record
  5257.        in the current  index.  By  pressing <N>  several times, you  can
  5258.        "walk" through  the database looking at consecutive records.  The
  5259.        records are displayed in sorted index sequence. 
  5260.  
  5261.        <P>  Previous: Pressing  <P> backs up to  the previous record  in
  5262.        the current  index.   Use the <N>  key to  "walk" forward  in the
  5263.        database,  and the <P>  key to "walk" backward.   For example, if
  5264.        you press <N> three times, the next three records are  displayed.
  5265.  
  5266.  
  5267.  
  5268.   106  FINDING RECORDS
  5269.   ----------------------------------------------------------------------
  5270.  
  5271.        Pressing <P> three times returns you to the original record.  The
  5272.        records are displayed in sorted index sequence. 
  5273.  
  5274.        <L> or <Ctrl-L> Label: Pressing <L>  prints a Quick Label for the
  5275.        record currently  displayed.   Up to  nine different  Quick Label
  5276.        formats  may  be  defined.    See  the  Label  Section  for  more
  5277.        information on setting up Quick Labels.
  5278.  
  5279.        <R>  Re-search: Pressing <R> returns you to the Record  Selection
  5280.        screen so you can enter new search criteria.
  5281.  
  5282.        <Esc>  As always, pressing <Esc> cancels the current operation --
  5283.        in this case, returning you to the Find Menu. 
  5284.  
  5285.  
  5286.   Changing Display Order
  5287.        When the  records  you are  searching  for are  found,  they  are
  5288.        displayed in  the order of  the current Primary  index.  You  can
  5289.        change the Primary index  before starting the search  by pressing
  5290.        <Alt-P> when the Record Selection screen is displayed.
  5291.  
  5292.  
  5293.  
  5294.   Natural Language 
  5295.        As you go  through the  list of  options which may  be used  when
  5296.        selecting records, you  will notice there is often  more than one
  5297.        way to accomplish the same purpose.  For example, State is WA and
  5298.        State=WA are the same, as are State  equals WA and State is equal
  5299.        to WA. 
  5300.  
  5301.        The program  also lets you  use words  like equals and  less than
  5302.        instead of special  symbols like = and <.  This technique is used
  5303.        by  some computer programs to understand instructions phrased the
  5304.        way people talk  instead of the way computers  talk.  It's called
  5305.        "natural language".
  5306.  
  5307.        For example, in  the comparison above  we completed the  sentence
  5308.        "Find all the records where" with "state is WA".  But suppose you
  5309.        knew there were multiple records with a  state code of WA, and it
  5310.        seemed more  natural to say  "the states are  WA." It would  have
  5311.        worked. 
  5312.  
  5313.        If  it's the  way people  talk,  even if  it's not  grammatically
  5314.        correct, we want File Express to understand it.  If you give File
  5315.        Express instructions it doesn't understand or  misinterprets, and
  5316.        you feel it  should have understood them,  let us know.   We will
  5317.        periodically  give  the  software  some  grammar  lessons  so  it
  5318.        understands plain English. 
  5319.  
  5320.  
  5321.   General Rules Of Syntax 
  5322.  
  5323.  
  5324.  
  5325.                                                     FINDING RECORDS  107
  5326.   ----------------------------------------------------------------------
  5327.  
  5328.        The sentence on the screen begins: "Find all the records where:".
  5329.        To find a  record, simply complete the sentence  (adhering to the
  5330.        rules in the Formula  section).  File Express is expecting you to
  5331.        complete the sentence with a "comparison", such as Company = Acme
  5332.        or last name  sounds like smith.  In both these examples there is
  5333.        a  field  name  (company,  last name)  followed  by  a comparison
  5334.        operator  (equals,  sounds  like) and  finally  a  constant value
  5335.        (acme, smith).   This is the usual  pattern of a  search although
  5336.        not the  only pattern.   You  can also  make comparisons  between
  5337.        fields like MAIL ADDRESS  = SHIP ADDRESS  which displays all  the
  5338.        records where these two fields are the same.   Or the comparisons
  5339.        can be  more complex: STATE  = "WA" and CUST  TYPE = "D"  and TAX
  5340.        NUMBER  is blank",  to find  all  the dealers  in Washington  who
  5341.        haven't given you their tax exempt number yet.  
  5342.  
  5343.                               COMPANY = CAT 
  5344.  
  5345.        only displays records where the COMPANY field is CAT and  nothing
  5346.        else.  If you want to search  for records where the COMPANY field
  5347.        begins with CAT use:
  5348.  
  5349.                              COMPANY = CAT..
  5350.  
  5351.        The two  dots  (..) mean  anything.   A  search  for  CATanything
  5352.        displays  records   where  the   COMPANY  equals   cat,  catalog,
  5353.        catamarans,  Cat and  Dog  Clinic, Catheter  Supplies,  etc.   To
  5354.        search  for companies  ending in  a  certain string,  put the  ..
  5355.        before it:
  5356.  
  5357.                             COMPANY = ..stand
  5358.  
  5359.        displays stand, plant stand, magazine stand, understand, etc.
  5360.  
  5361.  
  5362.        If you want to view every record, simply type in the word ALL.
  5363.  
  5364.        If you want  to view all  the tagged or  untagged records in  the
  5365.        database, use the words TAGGED or UNTAGGED.
  5366.  
  5367.        As you  may  have noticed  in  the examples  above,  it  normally
  5368.        doesn't matter if  you use upper, lower or mixed case when typing
  5369.        your comparisons.   File Express treats it all  the same.  If you
  5370.        want to find records  with a specific pattern of upper  and lower
  5371.        case letters, use the EXACTLY key word.  name  is exactly "Smith"
  5372.        , only displays  records where the name field  is Smith and skips
  5373.        records with SMITH or smith or SmItH.
  5374.     
  5375.        If File  Express doesn't  understand your  instructions for  some
  5376.        reason, an error message is displayed.  If  it's not obvious what
  5377.        the message  means,  press <Alt-H>  for  a help  screen  with  an
  5378.  
  5379.  
  5380.  
  5381.   108  FINDING RECORDS
  5382.   ----------------------------------------------------------------------
  5383.  
  5384.        explanation, or see  the Troubleshooting  section for  additional
  5385.        information. 
  5386.  
  5387.  
  5388.  
  5389.                                                          QUICK SCAN  109
  5390.   ----------------------------------------------------------------------
  5391.  
  5392.  
  5393.                              Quick Scan Mode 
  5394.  
  5395.        Although  the  <N>ext and  <P>revious  keys  let  you  "walk"  or
  5396.        "browse" through a database,  they only display  one record at  a
  5397.        time.  Sometimes it is useful to see several records displayed at
  5398.        once and be able to scan them as if they were on a report.  Press
  5399.        <2> or <Q> from the Find Menu and the Quick Scan screen displays:
  5400.  
  5401.  
  5402.  
  5403.  
  5404.  
  5405.  
  5406.                  Registered Version has screen picture here
  5407.  
  5408.  
  5409.  
  5410.  
  5411.  
  5412.  
  5413.  
  5414.  
  5415.  
  5416.  
  5417.  
  5418.        Quick Scan lets you  look at your  database in columnar  fashion,
  5419.        much  like a  spreadsheet, and  you  can move  around the  screen
  5420.        editing any fields displayed.   As you edit fields  that are part
  5421.        of one or more indexes, File Express automatically keeps them  in
  5422.        order and updates the order on the screen.  
  5423.  
  5424.        You can either select up to eight specific fields to be displayed
  5425.        on the screen or you can select all the fields.  To indicate  the
  5426.        fields,  enter each  field number in  the order you  want to have
  5427.        them displayed.  To  include all the  fields, just press  <Enter>
  5428.        instead of selecting individual fields.  For example, if you want
  5429.        to display fields 6, 7, 9, and 2, in that order, you would press:
  5430.  
  5431.              <6><Enter><7><Enter><9><Enter><2><Enter><Enter> 
  5432.  
  5433.        Note the two  <Enter>'s at the  end.  The  second one is  to tell
  5434.        File Express you are finished entering field numbers and want  to
  5435.        view them  on  the  screen.   As  you  enter  numbers,  they  are
  5436.        displayed on the screen above the input line:
  5437.  
  5438.                                  /6/7/9/2
  5439.  
  5440.  
  5441.  
  5442.   110  QUICK SCAN
  5443.   ----------------------------------------------------------------------
  5444.  
  5445.        When you have  finished entering the field numbers,  the first 20
  5446.        records are displayed on the screen:
  5447.  
  5448.  
  5449.  
  5450.  
  5451.  
  5452.  
  5453.                  Registered Version has screen picture here
  5454.    
  5455.  
  5456.  
  5457.  
  5458.  
  5459.  
  5460.  
  5461.  
  5462.        When the screen is displayed, the records are listed in the order
  5463.        of the  current index which is shown in  the upper left corner of
  5464.        the screen.  Several options may be used when viewing and editing
  5465.        the Quick Scan screen: 
  5466.  
  5467.  
  5468.        <Up> <Down> Move The Cursor: The  <Up> and <Down> arrows keys may
  5469.        be used to move up  and down from one record  to the next on  the
  5470.        screen.    When the  cursor  reaches the  top  or  bottom of  the
  5471.        display,  the screen  scrolls more  records  from that  direction
  5472.        until the top or bottom of the  database is reached.  As you move
  5473.        up and down, the cursor stays in the same column.  
  5474.  
  5475.        <Alt-E>   Edit mode: Pressing <Alt-E> toggles  you in and out  of
  5476.        edit mode on the  Quick Scan screen.  When  you are in edit  mode
  5477.        you may  edit the  contents  of any  regular  field you  are  on.
  5478.        Formula fields are skipped over.
  5479.  
  5480.        <Alt-R>   Record  display: Use  the arrow  keys  to position  the
  5481.        cursor to a  line, then press <Alt-R>  to view the record  in its
  5482.        entirety.  The record  is displayed on the same  data screen used
  5483.        to Add Records and  Find/Edit Records.   When you press  <Alt-E>,
  5484.        the  record displays and  you are put  into edit mode.   When you
  5485.        want to save  the record and  return to  the Quick Scan  display,
  5486.        press <F10>.   Note that  if you  change information  in a  field
  5487.        included in  the current index,  the record is  repositioned into
  5488.        the correct order  when you save it.   This may affect  the Quick
  5489.        Scan display when you return to it.
  5490.  
  5491.  
  5492.  
  5493.                                                          QUICK SCAN  111
  5494.   ----------------------------------------------------------------------
  5495.  
  5496.  
  5497.        <PgDn> Advances the display to the next 20 records. 
  5498.  
  5499.        <PgUp> Backs up to the previous 20 records. 
  5500.  
  5501.        <Ctrl-PgDn> Advances to the last 20 records of the database.
  5502.  
  5503.        <Ctrl-PgUp>Backs up to the first 20 records of the database.
  5504.  
  5505.        <Esc> Pressing <Esc> returns to the Find Menu. 
  5506.  
  5507.        <Tab> or <Ctrl-Right>  Moves the cursor to the  next field to the
  5508.        right.  If  all the  fields you  selected do not  fit across  the
  5509.        screen it will scroll sideways.
  5510.  
  5511.        <Backtab>  and  <Ctrl-Left> Moves  the  cursor left  to  the next
  5512.        field.  
  5513.  
  5514.        <Alt-W> Change Field  Display Width: You  can change the  display
  5515.        width of the column the cursor  is in by pressing <Alt-W>.   File
  5516.        Express prompts  for a  new width, from  1 to  the length  of the
  5517.        field, and re-displays the  screen using the  new width.   Fields
  5518.        that  are displayed  narrower  than  their  actual  width  scroll
  5519.        sideways when edited.
  5520.  
  5521.        <Alt-P> Change the current primary index.  When this is done, the
  5522.        records are redisplayed on the screen in the new sort order.
  5523.  
  5524.  
  5525.   Editing Records in Quick Scan Mode
  5526.        It  is often  much  more convenient  to edit  a  large amount  of
  5527.        related data from many different records while in Quick Scan mode
  5528.        than  it  is on  a  record-by-records  basis  where each  one  is
  5529.        displayed  separately.   For  example,  if you  are  updating the
  5530.        membership status  of most of the records in your database, it is
  5531.        much  faster to  move down  the  column of  the Membership  field
  5532.        updating the entries than it is  to display the full record, move
  5533.        to the Membership field,  make the change,  save the record,  and
  5534.        move to the next record and repeat the process.
  5535.  
  5536.        As you are  moving the cursor around  the screen using  the <Up>,
  5537.        <Down>, <Tab>, and <Backtab> keys, you will notice as the  cursor
  5538.        moves to each field,  it is put into input mode  and you can edit
  5539.        its contents.   The  full editing  features of  File Express  are
  5540.        available at  all times.  If you change  the contents of a field,
  5541.        the  record  is automatically  saved when  the cursor  leaves the
  5542.        record line.   After saving the record, File  Express updates all
  5543.        active indexes  and then checks  to see  if the field  changed is
  5544.        part of the current  index.  If it is, the record is moved to its
  5545.        correct position in  the list and the screen  is redisplayed with
  5546.        the  changed record at  the top of  the screen.   Because of this
  5547.  
  5548.  
  5549.  
  5550.   112  QUICK SCAN
  5551.   ----------------------------------------------------------------------
  5552.  
  5553.        automatic movement to  re-index the record,  it can sometimes  be
  5554.        annoying when  editing a  column of  fields that is  part of  the
  5555.        current index.  We suggest that when you are doing this  that you
  5556.        temporarily change  the current  index to  some other index  that
  5557.        does not include the field you are working on or change it to the
  5558.        Record Number  order index.  This way, as  you edit the fields in
  5559.        the  column, the  display won't rearrange  itself after  you make
  5560.        each change.
  5561.  
  5562.  
  5563.  
  5564.                                                  SEARCH AND REPLACE  113
  5565.   ----------------------------------------------------------------------
  5566.                                 empty
  5567.  
  5568.  
  5569.  
  5570.   114  SEARCH AND REPLACE
  5571.   ----------------------------------------------------------------------
  5572.  
  5573.  
  5574.                            Search And Replace 
  5575.  
  5576.        Sometimes it  is necessary  to make  the same  change to  a large
  5577.        number  of records.   Use the Search and  Replace option to avoid
  5578.        the drudgery  of making the change by hand  on every record.  For
  5579.        example, a  department store owner has a  database which contains
  5580.        all the products sold by her store.  Each record contains an item
  5581.        number, description, price, current  inventory, annual sales  for
  5582.        this year, annual  sales for last year,  and the state where  the
  5583.        item was purchased. 
  5584.  
  5585.                  1 - Item Number
  5586.                  2 - Description
  5587.                  3 - Price
  5588.                  4 - Current Cnt
  5589.                  5 - ThisYr Sales
  5590.                  6 - LastYr Sales
  5591.                  7 - State
  5592.  
  5593.        At the  end of  the year  the store  owner is  confronted with  a
  5594.        problem:  since the year has ended,  all the amounts in the field
  5595.        called "ThisYr Sales"  need to be moved to  "LastYr Sales".  Then
  5596.        "ThisYr Sales" needs to be set to zero so it can start accumulat-
  5597.        ing sales for the new year. 
  5598.  
  5599.        To  do a Search  and Replace,  press <3>  while viewing  the Find
  5600.        Menu.  On  the Record Selection screen enter  the search criteria
  5601.        to select  the  records you  want to  make changes  to.   In  the
  5602.        example above, the  store owner wants to make  the replacement in
  5603.        every record so  she enters ALL.   If she wanted to  make changes
  5604.        for only  the  records  in  Florida,  she  would  enter  STATE  =
  5605.        "Florida".  For more information on the search criteria entry see
  5606.        the Finding a Record section.
  5607.  
  5608.         
  5609.  
  5610.  
  5611.  
  5612.                                                  SEARCH AND REPLACE  115
  5613.   ----------------------------------------------------------------------
  5614.  
  5615.        After  entering  the search  criteria,  the  Replacement Criteria
  5616.        screen appears:
  5617.  
  5618.  
  5619.  
  5620.  
  5621.  
  5622.  
  5623.                  Registered Version has screen picture here
  5624.  
  5625.  
  5626.  
  5627.  
  5628.  
  5629.  
  5630.  
  5631.  
  5632.  
  5633.  
  5634.        On this  screen, select each  field you  want to change  and tell
  5635.        File Express what  to replace it with.   For example, two  fields
  5636.        are to be changed on the records of the store manager's database,
  5637.        and she  recognizes  that  she  must  change  them  in  an  exact
  5638.        sequence: she must first move ThisYr Sales to LastYr Sales,  then
  5639.        set  ThisYr  Sales  to zero.    If  she did  it  in  the opposite
  5640.        sequence, she would be putting zero in both fields. 
  5641.  
  5642.        She first selects the "LastYr Sales" field by typing in its field
  5643.        number and  pressing <Enter>.   The prompt at  the bottom of  the
  5644.        screen changes to "Replace LastYr Sales with:_____________".  The
  5645.        store owner now  indicates the "ThisYr  Sales" field by  entering
  5646.        either its name or an "F"  followed by its field number, (F5  for
  5647.        example).
  5648.  
  5649.        Then she selects field number 5, ThisYr Sales, enters a 0 for the
  5650.        replacement value, and presses <F10>.  A window appears asking: 
  5651.  
  5652.                     Tag all changed records (Y/N)?  N
  5653.  
  5654.        File Express gives you  the option to place a tag  on each record
  5655.        that  has  changes made  to  it  during  the Search  and  Replace
  5656.        process.   This lets  you later  search for  or print  reports or
  5657.        labels for all the records changed.   To tag the records changed,
  5658.        press <Y>.  To skip the tagging process, press <N> or <Enter>.
  5659.  
  5660.        The next question is:
  5661.  
  5662.            Print to <S>creen only, <D>isk, <P>rinter, <A>ll   S
  5663.  
  5664.        As the records are  selected and changed,  they are displayed  on
  5665.        the screen so you  can see what they look like  and decide if the
  5666.  
  5667.  
  5668.  
  5669.   116  SEARCH AND REPLACE
  5670.   ----------------------------------------------------------------------
  5671.  
  5672.        changes are what  you actually intended.  If  you would also like
  5673.        to  have a  printed copy of  the records  changed or a  disk file
  5674.        containing this information, press <P> or <D> accordingly.
  5675.  
  5676.        Now the searching begins, and the first record is displayed.  The
  5677.        screen shows the  changed version of  the record.  The  prompt at
  5678.        the bottom of the screen is:
  5679.  
  5680.     <Y>es  <N>o  <G>o  <S>how original  <D>isplay is on  <Esc> to quit
  5681.  
  5682.        If you would like to see  what the record looked like before  the
  5683.        changes were  applied  to it,  press  <S> to  show  the  original
  5684.        version.  Pressing <S> toggles back and forth between the changed
  5685.        version  and the  original.   If  the record  displayed has  been
  5686.        changed correctly, press <Y> to tell File Express to go ahead and
  5687.        save the change and go to the next record.  If you  don't want to
  5688.        change the record shown on the screen, press <N> and File Express
  5689.        skips this record and moves on to the next.  
  5690.  
  5691.        When  you  are  changing  every  record  selected  by the  search
  5692.        criteria, it is  good practice to  look at  the first few  record
  5693.        changes  to ensure  the replacements  are  being made  correctly.
  5694.        When you confirm  the accuracy and want to go ahead and have File
  5695.        Express make  the  replacements automatically  in  the  remaining
  5696.        records, press <G>. 
  5697.  
  5698.        While you are in <G>o mode, each record displays on the screen as
  5699.        it is changed.  If you would like to turn off the screen display,
  5700.        press <D>.  Repeated  pressing of <D> toggles the  display on and
  5701.        off.   Pressing  any other  key  while in  <G>o  mode pops  up  a
  5702.        message:  <Esc> to quit or  <Spacebar> to continue.  Pressing the
  5703.        <Spacebar>   key  puts   you  back   into  the   record-by-record
  5704.        confirmation mode again.
  5705.  
  5706.         
  5707.   Formulas In Search And Replace 
  5708.  
  5709.        The most  common  usage of  Search  and Replace  is to  move  the
  5710.        contents of one  field to another or move  a value to a  field on
  5711.        selected records.  In the store manager example above we saw both
  5712.        of those: a field was moved to another field, and a value of zero
  5713.        was placed in a  field.  If you are putting text into a field, it
  5714.        must be surrounded by quotes, such as: "Past Due".  (Don't forget
  5715.        the quote marks.)
  5716.  
  5717.        Much more complex  manipulations can also be  accomplished, using
  5718.        formulas to  define  the output  of  Search and  Replace.    This
  5719.        section  uses some  examples  of  formulas, functions,  If...Then
  5720.        statements, etc. but  for a complete explanation of formulas, see
  5721.        the chapter titled Formulas.  The following paragraphs describe a
  5722.  
  5723.  
  5724.  
  5725.                                                  SEARCH AND REPLACE  117
  5726.   ----------------------------------------------------------------------
  5727.  
  5728.        complex manipulation of a database using  Search and Replace with
  5729.        formulas. 
  5730.     
  5731.        We recently  acquired a  mailing list  of several thousand  names
  5732.        which we  wanted  to combine  with  our own  list for  a  special
  5733.        mailing.  We knew there would be a large number of  duplicates in
  5734.        the two lists, and did not want to  send two mailings to the same
  5735.        person if we could avoid it.  Since the mailing was costing about
  5736.        seventy-five  cents   per  piece,  eliminating   several  hundred
  5737.        duplicates would save several hundred dollars. 
  5738.  
  5739.        But there was a  problem: Our own  list separated first and  last
  5740.        name into two separate fields,  but the new list we  had acquired
  5741.        put the first and  last names together in the same field.  As you
  5742.        will learn in the Find Duplicates section, the two best fields to
  5743.        use for  finding duplicates  in mailing lists  are Last  Name and
  5744.        City Name.  But the new list had a field called Name with "Smith,
  5745.        James" and "Doe, John" in it. 
  5746.  
  5747.        This looked  like a job  for Search and  Replace.  Since  we were
  5748.        going to be "playing" with every record in the database, we first
  5749.        made a backup of it, labeled it and  set it aside.  Then we added
  5750.        two new fields called First Name and Last Name (using the  Change
  5751.        Database Specs option of the Maintenance Menu). 
  5752.  
  5753.        Then we selected Search and Replace  from the Find Menu.  On  the
  5754.        screen asking "Select all the records where" we replied: 
  5755.  
  5756.              Select all the records where: NAME contains "," 
  5757.  
  5758.        As you will  find in the chapter on formulas,  this statement is,
  5759.        in  effect,  saying: give  me  all  the  records having  a  comma
  5760.        somewhere in  the name  field, and skip  all the  records without
  5761.        commas.   
  5762.  
  5763.        Then  on the Replacement Screen we told  File Express to make the
  5764.        following substitutions: 
  5765.  
  5766.        In the field called Last Name: left(name, instr(name, ",")-1)    
  5767.  
  5768.        In  the field  called First  Name:   ltrim(mid(name,  instr(name,
  5769.        ",")+1)) 
  5770.  
  5771.        The first formula  found the comma, and took  everything from the
  5772.        left end of the string to the character up to, but not including,
  5773.        the  comma.   The second formula  found the comma  again and than
  5774.        took everything from  one character  after it to  the end of  the
  5775.        string.   When File Express was done, we  used Quick Scan to look
  5776.        at the three  fields called Name, First  Name and Last Name.   In
  5777.        all  but about  ten  cases, the  substitution  worked exactly  as
  5778.        planned. If the Name field said "Smith, James", the new Last Name
  5779.  
  5780.  
  5781.  
  5782.   118  SEARCH AND REPLACE
  5783.   ----------------------------------------------------------------------
  5784.  
  5785.        field contained "Smith"  and the new  First Name field  contained
  5786.        "James". There were a few that needed to be handled manually, but
  5787.        only  because the  commas had  been  left out  of them.    It was
  5788.        several hundred times faster than trying to do it by hand. 
  5789.  
  5790.  
  5791.  
  5792.                                               SEARCH AND DELETE/TAG  119
  5793.   ----------------------------------------------------------------------
  5794.  
  5795.                             Search And Delete 
  5796.  
  5797.        The Search and Delete routines work just like Search and Replace,
  5798.        except  that instead  of changing  field  contents, File  Express
  5799.        deletes the matching records. 
  5800.  
  5801.        The  only screen that appears when doing Search and Delete is the
  5802.        Select Records  screen.  After  the selection criteria  have been
  5803.        entered, each record to  be deleted is  displayed on the  screen.
  5804.        Just  as  in Search  and  Replace, you  are given  the  option of
  5805.        confirming the deletion  of each record individually  by pressing
  5806.        <Y> or <N>  or automatically by pressing <G>.   These options are
  5807.        displayed on the screen.  
  5808.  
  5809.                              Search And Tag 
  5810.  
  5811.        The Search and Tag  routines work just  like Search and  Replace,
  5812.        except that instead of changing field contents, File Express tags
  5813.        the matching records. 
  5814.  
  5815.        The only screen  which appears when doing  Search And Tag is  the
  5816.        Select Records  screen, which  has been  described thoroughly  in
  5817.        other sections of this manual.  After the selection criteria have
  5818.        been  entered, each  record to  be  deleted is  displayed on  the
  5819.        screen.  Just as in Search and  Replace, you are given the option
  5820.        of confirming the tagging of each record individually by pressing
  5821.        <Y> or <N> or automatically  by pressing <G>.  These options  are
  5822.        displayed on the screen.  
  5823.  
  5824.  
  5825.  
  5826.   120  SEARCH AND DELETE/TAG
  5827.   ----------------------------------------------------------------------
  5828.                               empty
  5829.  
  5830.  
  5831.  
  5832.                                                     FIND DUPLICATES  121
  5833.   ----------------------------------------------------------------------
  5834.  
  5835.                            Finding Duplicates 
  5836.  
  5837.        Mailing  list  databases  are probably  the  most  susceptible to
  5838.        duplicate records.  A customer uses the name Bill Smith one time,
  5839.        then  uses the name W. Smith  the next.  Or  he uses his P.O. Box
  5840.        once and his street address another time--or his business address
  5841.        then his home address. 
  5842.  
  5843.        Some duplicates are  easy to identify because  they are virtually
  5844.        identical.  It is probably safe to  delete one of the two records
  5845.        for W.  Smith and Bill Smith  if they are both at the same street
  5846.        address.   It's not  quite so easy  to determine two  records are
  5847.        duplicates  if they have  different addresses, unless  the person
  5848.        has a very unique  name.  Or sometimes there may be other data in
  5849.        the database  which indicates  that it's  the same  person.   For
  5850.        example,  one record  shows the  customer  ordering File  Express
  5851.        Version 4; another record  shows the same  customer name, in  the
  5852.        same  city, but  at a  different  address, ordering  a Version  5
  5853.        upgrade.  They are probably the same. 
  5854.  
  5855.        File Express can help you identify some of the easy duplicates in
  5856.        your  databases,  but you  will  likely  have  to  manually  make
  5857.        decisions about some of the records. 
  5858.  
  5859.        The best  time to  start planning for  duplicates is  before your
  5860.        database is even set up.   What fields will you want to  compare?
  5861.        Last names  and city  names are  good duplicate  matching fields.
  5862.        First names  and zip  codes are  not as  good.   As we  mentioned
  5863.        earlier, people  don't usually abbreviate  or use a  nickname for
  5864.        their last name.  But the same person may use Bill Smith, William
  5865.        Smith, William C. Smith, W. C. Smith,  Wm. Smith or Dr. W. Smith.
  5866.        The one constant in all these is Smith. 
  5867.  
  5868.        Consequently,  when  you  plan  your  database,  plan  ahead  for
  5869.        duplicate matching.   If you will be searching  for duplicates in
  5870.        the future, make the last name a separate field.  Keeping it in a
  5871.        separate field can simplify record searches  too.  Likewise, keep
  5872.        the city name separate from the state and zip code.  Separate zip
  5873.        codes also make it possible to do zip code sorts, which are often
  5874.        desirable on mailing lists. 
  5875.  
  5876.        Look for any other fields you  might use to find duplicates, such
  5877.        as company name, and  consider their future use.  If  the company
  5878.        name is sometimes in the address, sometimes in the customer name,
  5879.        and sometimes non-existent, it can't  be used to find duplicates.
  5880.        If it is always in a field called Company Name, it can be used. 
  5881.  
  5882.        Once the database is set up, the work does not end.  The data  in
  5883.        the database must  be entered consistently to keep it well-suited
  5884.        for  finding duplicates.   It  works  best when  only one  person
  5885.        maintains a  database.   That way,  abbreviations, spacing,  etc.
  5886.  
  5887.  
  5888.  
  5889.   122  FIND DUPLICATES
  5890.   ----------------------------------------------------------------------
  5891.  
  5892.        will  be  consistent. File  Express treats  upper and  lower case
  5893.        letters the same, so the last names DEYOUNG, Deyoung and  DeYoung
  5894.        would be identified as duplicates.  De Young (with a space) would
  5895.        not.  Fort Worth and Ft. Worth would not either. 
  5896.  
  5897.        If you  anticipate doing  a lot  of duplicate  matching, then  be
  5898.        careful when entering Last  Name and City fields.   If city names
  5899.        must be  abbreviated, decide on a standard abbreviation, and post
  5900.        a list  alongside the  computer so everyone  who enters  data can
  5901.        refer to it. 
  5902.  
  5903.        If  a name  has "PhD",  "M.D.",  "Jr." etc.  following it,  avoid
  5904.        putting this suffix with the last name in the same field.  Either
  5905.        set up a special field called Suffix or Title for these, or leave
  5906.        them out of the database.  Another technique is to set up a field
  5907.        called Formal Name  with the person's name exactly  as it appears
  5908.        on  correspondence, and  then  set up  separate  name fields  for
  5909.        searching and duplicate matching.  That way, the formal name  can
  5910.        contain a  name like  "Colonel M.  Charles Smith,  Jr., PhD,  CPA
  5911.        (Ret.)" while the last name contains only Smith (for sorting  and
  5912.        duplicate matching). 
  5913.  
  5914.  
  5915.  
  5916.                                                     FIND DUPLICATES  123
  5917.   ----------------------------------------------------------------------
  5918.  
  5919.   Duplicates In One Database 
  5920.  
  5921.        To  find duplicates  within a  single  database, first  determine
  5922.        which  fields to  match to  identify duplicates,  then  select an
  5923.        index  with those fields.   For example, to  find all the records
  5924.        which contain  the same last name and  same city name, select (or
  5925.        create), an index that  keeps the database in Last  Name and City
  5926.        Name order.   Then select the item  on the Find Menu  called Find
  5927.        Duplicates in One Database.   When the following screen displays,
  5928.        select the same two fields, last name and city name. 
  5929.  
  5930.  
  5931.  
  5932.  
  5933.  
  5934.  
  5935.  
  5936.  
  5937.  
  5938.                  Registered Version has screen picture here
  5939.  
  5940.  
  5941.  
  5942.  
  5943.  
  5944.  
  5945.  
  5946.        If the database is sorted by other fields than those specified in
  5947.        the  comparison,  the  Find  Duplicates  routine  does  not  work
  5948.        properly.  It may find some duplicates, and it may appear to work
  5949.        fine, but  it is  unlikely that  most of  the duplicates  will be
  5950.        identified. 
  5951.  
  5952.        File Express finds duplicates by comparing each record to the one
  5953.        before it  in the index.  If there are two Smith/Seattle records,
  5954.        but  they  are   not  contiguous  (side-by-side),  no   match  is
  5955.        recognized.  To put  them side-by-side, the  database must be  in
  5956.        Last  Name/City  or  City/Last  Name  sequence.    (If the  whole
  5957.        database was searched  by comparing each record with  every other
  5958.        record, the search could take hours, days, or even years.)
  5959.  
  5960.        When you select a field to be compared, File Express asks for the
  5961.        length  to  be compared.   Most  of  the time  you don't  need to
  5962.        compare fields  for their entire  length.  In fact,  you may find
  5963.        that the  more characters  you compare,  the more  duplicates you
  5964.        miss.  Consider the following two records as an example.  
  5965.  
  5966.                       125 Wildwood Pl NE
  5967.                       125 Wildwood Pl. N.E.
  5968.  
  5969.  
  5970.  
  5971.   124  FIND DUPLICATES
  5972.   ----------------------------------------------------------------------
  5973.  
  5974.        If you are comparing these two ADDRESS  fields for a length of 15
  5975.        characters, a  match is found. If you compare them for their full
  5976.        length, the two fields are different because of the periods found
  5977.        in the second record.  Of course,  you must compare enough of the
  5978.        fields to uniquely identify them.
  5979.  
  5980.                       125 Wildwood Pl NE
  5981.                       125 Wildberry Lane
  5982.  
  5983.        These  two  records  are  displayed  as   duplicates  if  only  8
  5984.        characters are compared.
  5985.  
  5986.        After you  have entered all the  field numbers and  lengths to be
  5987.        compared,  press <F10>.    File Express  gives  one more  prompt,
  5988.        asking:
  5989.  
  5990.            Print to <S>creen only, <D>isk, <P>rinter, <A>ll  S
  5991.  
  5992.        As  File  Express  is  displaying  the duplicates  found  in  the
  5993.        database, you  have the option  of deleting,  tagging or  editing
  5994.        either or both of the records displayed.  If you delete or tag  a
  5995.        record, you can  have a report printed  to either a disk  file or
  5996.        your printer indicating  which records were affected.   Press <D>
  5997.        or <P> as needed.  Pressing <A> sends the report to both the disk
  5998.        and the printer.  
  5999.         
  6000.        When  File Express  finds  two records  matching  the fields  you
  6001.        selected, it displays them side-by-side on the screen.
  6002.  
  6003.  
  6004.  
  6005.                                                     FIND DUPLICATES  125
  6006.   ----------------------------------------------------------------------
  6007.  
  6008.        When  you  start  a  duplicate  search, File  Express  begins  in
  6009.        "delete" mode as indicated by the "DELETE" at the left end of the
  6010.        bottom line.  This  means the <L>eft,  <R>ight, <B>oth, <N>o  and
  6011.        <G>o keys work with deleting in mind.  If you want to place a tag
  6012.        on a record  instead of deleting it, you can tell File Express to
  6013.        switch to "TAG" mode by pressing <M>, which changes the  "DELETE"
  6014.        to  "TAG" on  the prompt  line.   Now  pressing <L>eft,  <R>ight,
  6015.        <B>oth, <N>o and <G>o keys work  with tagging in mind.   Repeated
  6016.        pressing of <M> toggles between DELETE and TAG modes.
  6017.  
  6018.        After examining the  two records to determine if  they are indeed
  6019.        duplicates, one of several commands may be entered: 
  6020.  
  6021.        <PgDn> and <PgUp> scroll  up and down through  the fields in  the
  6022.        record on the right side.
  6023.  
  6024.        <Up>  and <Down>  scroll up and  down through  the fields  in the
  6025.        record on the left side.
  6026.  
  6027.        <L> Delete or tag  the record on the left.  If  you are in DELETE
  6028.        mode,  the  record  is  flagged  as  deleted  (it  may  later  be
  6029.        <U>ndeleted), and File Express  goes on to  compare the next  two
  6030.        records. 
  6031.  
  6032.        <R> Delete or tag the record on  the right.  If you are in DELETE
  6033.        mode,  the  record  is  flagged  as  deleted  (it  may  later  be
  6034.        <U>ndeleted), and File Express  goes on to  compare the next  two
  6035.        records. 
  6036.  
  6037.        <B> Delete or tag  both of the displayed records.   If you are in
  6038.        DELETE mode, both records are flagged as deleted (either or  both
  6039.        may later be <U>ndeleted),  and File Express  goes on to  compare
  6040.        the next two records. 
  6041.  
  6042.        <N> Leave both the  records intact.   Neither record is  deleted.
  6043.        File Express goes on to compare the next two records. 
  6044.  
  6045.        <G> Automatically delete  or tag the record on  the right without
  6046.        asking  for confirmation  and continue  doing  the same  to every
  6047.        duplicate found in the remainder of the database.
  6048.  
  6049.        <E> Edit a record.  Pressing <E> prompts further for which record
  6050.        to edit.
  6051.                     Edit the <L>eft or <R>ight record?
  6052.        Pressing <L>  or <R>  puts you in  edit mode  where you  can make
  6053.        changes to any fields in the record.  When you are editing one of
  6054.        the records, the following commands available:
  6055.  
  6056.             <PgUp> and  <PgDn> can  be used  to display  any fields  not
  6057.             currently shown in the window of the record being edited.  
  6058.  
  6059.  
  6060.  
  6061.   126  FIND DUPLICATES
  6062.   ----------------------------------------------------------------------
  6063.  
  6064.             <Ctrl-R> copies the contents  from the same field  number in
  6065.             the other record.
  6066.             <Ctrl-U>  restores  the  current  field  with  its  original
  6067.             contents.
  6068.  
  6069.             <Alt-U> restores the entire record to its original contents.
  6070.  
  6071.        Press <F10>  to  save the  changes  and return  to  the  previous
  6072.        prompt.
  6073.  
  6074.        <M> Mode  change.   Pressing <M> toggles  between DELETE  and TAG
  6075.        mode as indicated at the left end  of the bottom prompt line.  In
  6076.        some cases,  it  is more  desirable  to just  tag  the  duplicate
  6077.        records instead of  deleting them.  Later, when  you are printing
  6078.        reports or mailing labels, you can choose to print just TAGGED or
  6079.        UNTAGGED records.
  6080.  
  6081.        <Esc> Exit  from the  deletion process,  and return  to the  Find
  6082.        Menu. 
  6083.  
  6084.        If there is  more than one  duplicate for  the same record,  File
  6085.        Express finds each  of them, and displays them  one after another
  6086.        so they can be  deleted.  When  duplicate matching is  completed,
  6087.        File Express returns to the Find Menu.  
  6088.  
  6089.  
  6090.  
  6091.                                                     FIND DUPLICATES  127
  6092.   ----------------------------------------------------------------------
  6093.  
  6094.  
  6095.   Duplicates In Two Databases 
  6096.  
  6097.        At times,  you may  want to  compare two  separate databases  for
  6098.        duplicate records.  For  example, you may  have occasion to  swap
  6099.        mailing lists with another person or company.  You know that most
  6100.        of the names are different but you  don't want to send two pieces
  6101.        of mail to the people who are on both lists.
  6102.  
  6103.        It is possible  to compare two databases for  duplicates, even if
  6104.        the fields being compared have different field names and lengths.
  6105.        Before starting the comparison process, make sure the indexes for
  6106.        both databases are in order by the fields to be compared.
  6107.  
  6108.        When you select the Find Duplicates In Two Databases menu option,
  6109.        File Express assumes  that the currently open database  is one of
  6110.        the two databases to be compared.  
  6111.  
  6112.        A screen displays  asking you to select the second database.  The
  6113.        screen  is similar  to the one  used to  Open A Database.   After
  6114.        selecting the database, File Express prompts for the index to use
  6115.        from the second database.  Highlight the correct index and  press
  6116.        <Enter>.   The index  from the second  database should  match the
  6117.        index from the current database.
  6118.  
  6119.  
  6120.  
  6121.   128  FIND DUPLICATES
  6122.   ----------------------------------------------------------------------
  6123.  
  6124.        As  soon  as the  second  file  has  been selected,  this  screen
  6125.        displays: 
  6126.  
  6127.  
  6128.  
  6129.  
  6130.  
  6131.  
  6132.                  Registered Version has screen picture here
  6133.  
  6134.  
  6135.  
  6136.  
  6137.  
  6138.  
  6139.  
  6140.  
  6141.  
  6142.  
  6143.        The field names in both databases are displayed side-by-side, and
  6144.        you are  prompted to  enter a field  number from  both databases.
  6145.        For example,  if you  selected LAST NAME  in the  first database,
  6146.        select the LAST  NAME field in the second  database (or the field
  6147.        which has  last names in it,  if it has a different  name).  File
  6148.        Express then asks for the length of  the fields to compare.  (See
  6149.        Duplicates in  One Database  for a  discussion on  the length  to
  6150.        compare).
  6151.  
  6152.        Continue entering  field numbers  and lengths  for each  database
  6153.        until  all your comparison fields are entered, then press <Enter>
  6154.        to continue to the  next prompt, which asks if you  want a report
  6155.        printed to the screen, printer or disk. 
  6156.  
  6157.  
  6158.  
  6159.                                                     FIND DUPLICATES  129
  6160.   ----------------------------------------------------------------------
  6161.  
  6162.        When File Express  finds matching records  from each database  it
  6163.        displays them side-by-side on the screen.
  6164.  
  6165.  
  6166.  
  6167.  
  6168.  
  6169.  
  6170.  
  6171.                  Registered Version has screen picture here
  6172.  
  6173.  
  6174.  
  6175.  
  6176.  
  6177.  
  6178.  
  6179.  
  6180.  
  6181.        After examining the  two records to determine if  they indeed are
  6182.        duplicates, one of several commands may be entered: 
  6183.  
  6184.        <PgDn> and <PgUp> scroll  up and down  through the fields in  the
  6185.        record on the right side (from the second database).
  6186.  
  6187.        <Up> and  <Down> scroll  up and  down through  the fields  in the
  6188.        record on the left side (from the current database).
  6189.  
  6190.        <L> Delete the record  on the left.  This is the  record from the
  6191.        current database.  The record is flagged as deleted (it may later
  6192.        be <U>ndeleted), and File Express goes on to compare the next two
  6193.        records. 
  6194.  
  6195.        <R> Delete the record on the right.  This is the record from  the
  6196.        second database.   The record is flagged as deleted (it may later
  6197.        be <U>ndeleted), and File Express goes on to compare the next two
  6198.        records.
  6199.  
  6200.        <B> Delete both of the displayed records.  Both records, one from
  6201.        each database, are  flagged as deleted (either or  both may later
  6202.        be <U>ndeleted), and File Express goes on to compare the next two
  6203.        records. 
  6204.  
  6205.        <N> Leave both the  records intact.   Neither record is  deleted.
  6206.        File Express goes on to compare the next two records. 
  6207.  
  6208.        <G>  Automatically delete the record on  the right without asking
  6209.        for confirmation and  continue doing the same to  every duplicate
  6210.        found in the remainder of  the databases.  The record deleted  is
  6211.        from the second database, which is displayed on the right.
  6212.  
  6213.  
  6214.  
  6215.   130  FIND DUPLICATES
  6216.   ----------------------------------------------------------------------
  6217.  
  6218.        <E> Edit a record.  Pressing <E> prompts further for which record
  6219.        to edit.
  6220.                     Edit the <L>eft or <R>ight record?
  6221.        Pressing <L> or  <R> puts  you in  edit mode where  you can  make
  6222.        changes to any fields in the  record.  The <L>eft record is  from
  6223.        the current database and  the <R>ight record  is from the  second
  6224.        database.  When you are editing one of the records, the following
  6225.        commands available:
  6226.  
  6227.             <PgUp> and  <PgDn> can  be used  to display  any fields  not
  6228.             currently shown in the window of the record being edited.  
  6229.  
  6230.             <Ctrl-PgUp> and <Ctrl-PgDn> scrolls the fields in the window
  6231.             of the record not being edited.
  6232.  
  6233.             <Ctrl-R> copies  the contents from the same  field number in
  6234.             the other record.
  6235.             <Ctrl-U>  restores  the  current  field  with  its  original
  6236.             contents.
  6237.  
  6238.             <Alt-U> restores the entire record to its original contents.
  6239.  
  6240.  
  6241.             <T> Tag a record.   Pressing <T>  prompts further for  which
  6242.             record(s) to tag.
  6243.  
  6244.                  Tag <L>eft, <R>ight, or <B>oth records.
  6245.  
  6246.        In  some cases  it is  more desirable to  just tag  the duplicate
  6247.        records instead of  deleting them.  Later, when  you are printing
  6248.        reports or mailing labels, you can choose to print just  untagged
  6249.        or tagged records.
  6250.  
  6251.        <Esc> Exit  from the  deletion process,  and return  to the  Find
  6252.        Menu. 
  6253.  
  6254.        If there  is more than  one duplicate  for the same  record, File
  6255.        Express finds each  of them, and displays them  one after another
  6256.        so  they  can be  deleted,  tagged  or  edited.   When  duplicate
  6257.        matching is complete, File Express returns to the Find Menu.  
  6258.  
  6259.        This process compares the records of one database to the  records
  6260.        of another.   It  does not  identify any  duplicates which  might
  6261.        exist within each  of the individual databases.   That process is
  6262.        performed  on each database  using the previously  discussed menu
  6263.        item, Find Duplicates In One Database. 
  6264.  
  6265.  
  6266.  
  6267.                                                     SORTING RECORDS  131
  6268.   ----------------------------------------------------------------------
  6269.  
  6270.  
  6271.                              Sorting Records 
  6272.  
  6273.        When  accessing  your  database you  often  want  the information
  6274.        presented in some kind of order.  If you are printing a telephone
  6275.        directory,  you  probably  want  the  records  to be  printed  in
  6276.        alphabetical order by the Last and First Name fields.  If you are
  6277.        printing a  mailing list to  be sent out  by bulk mail,  you will
  6278.        want the records printed in Zip Code order.
  6279.  
  6280.        File  Express lets you define up  to five indexes for a database.
  6281.        Each index  can consist of up to ten  different sort levels.  For
  6282.        example:  If  you sort by  CITY then LAST  NAME then FIRST  NAME,
  6283.        File Express  first sorts all  the CITY fields  into alphabetical
  6284.        order, then  looks at all  the LAST  NAMEs connected to  the same
  6285.        city and sorts those and then looks  at each group of FIRST NAMEs
  6286.        having the same LAST NAME and sorts those.  The results might be:
  6287.  
  6288.  
  6289.  
  6290.             CITY           LAST NAME FIRST NAME
  6291.             -------------- --------- ----------
  6292.             Los Angeles    Jones     Jack
  6293.             Los Angeles    Jones     James
  6294.             Los Angeles    Jones     Zack
  6295.             Los Angeles    Larson    Kevin
  6296.             Los Angeles    Larson    Mary
  6297.             Los Angeles    Simonson  Heidi
  6298.             Los Angeles    Simonson  Larry
  6299.             Seattle        Hunt      Albert
  6300.             Seattle        Hunt      Ken
  6301.             Seattle        Jacobs    Chris
  6302.             Seattle        Keller    Helen
  6303.             Spokane        Anderson  Dawn
  6304.             Spokane        Anderson  Graydon
  6305.             Spokane        Smith     Don
  6306.  
  6307.  
  6308.  
  6309.        As you add new records File Express automatically updates all the
  6310.        active indexes with  the new information.   At any time,  you can
  6311.        change the Primary index to be used for displaying, printing  and
  6312.        searching for records.
  6313.  
  6314.        File  Express  also  keeps  two  internal indexes  automatically.
  6315.        These are a record number index and a deleted record index.
  6316.  
  6317.        As records are added to a database, each is given a record number
  6318.        corresponding to its physical position in the data  file.  If you
  6319.        want to access the records in this order, make the  record number
  6320.        index the PRIMARY index.
  6321.  
  6322.  
  6323.  
  6324.   132  SORTING RECORDS
  6325.   ----------------------------------------------------------------------
  6326.  
  6327.        When you delete a  record from a  database, File Express  removes
  6328.        the  record reference  from all the  active indexes so  it is not
  6329.        included  in any displays,  searches, reports, labels,  etc.  The
  6330.        information that was contained in the deleted record is still  on
  6331.        disk, however, until  it is overwritten by a  newly added record.
  6332.        File Express keeps track of the locations of all deleted  records
  6333.        in your database  in a deleted record  index.  If you  change the
  6334.        PRIMARY  index to  the  deleted record  index,  all displays  and
  6335.        searches will  only use  the deleted  records.   Because all  the
  6336.        information  in  a  deleted   record  is  still  on   disk  until
  6337.        overwritten  by an added record, you  can undelete any of them at
  6338.        will.
  6339.  
  6340.  
  6341.   What Is An Index? 
  6342.        An index is simply a file containing some information about  each
  6343.        record in  your database according  to the way  it is to  be kept
  6344.        sorted.   File Express uses a balanced B-Tree format to keep this
  6345.        information.   B-Tree  indexes are  a  very fast  way  to  access
  6346.        records within a database and easily allows new information to be
  6347.        inserted at any time.
  6348.  
  6349.        When you  ask File Express  to find all  the records with  a last
  6350.        name of Smith, it is  much faster to look in the Last  Name index
  6351.        for Smith than it is to read every record in the database looking
  6352.        for the name.   Once File Express finds Smith in the index, which
  6353.        can be almost instantaneous, the record can then be displayed  on
  6354.        the screen. 
  6355.     
  6356.        The indexes are actually separate files on disk.  Their names are
  6357.        made up  of the  database name  with extensions  of .IX0  through
  6358.        .IX6.  There  is also an index  header file with an  extension of
  6359.        ".IXH" that  keeps track  of the status  and description  of each
  6360.        index. 
  6361.  
  6362.  
  6363.  
  6364.                                                     SORTING RECORDS  133
  6365.   ----------------------------------------------------------------------
  6366.  
  6367.   Defining or Changing an Index 
  6368.        To  define an  index for  the current  database  or to  change an
  6369.        existing  index definition, press <4> or <S>  on the Main Menu to
  6370.        display the Select Index screen.
  6371.  
  6372.    
  6373.  
  6374.    
  6375.  
  6376.    
  6377.  
  6378.  
  6379.  
  6380.  
  6381.  
  6382.  
  6383.  
  6384.  
  6385.  
  6386.  
  6387.  
  6388.        The Record Number index, Deleted Record index, and the five user-
  6389.        defined indexes are listed  in the window  along with their  Tag,
  6390.        Status and Description.
  6391.  
  6392.   Tagging An Index
  6393.        The TAG  column indicates  which indexes are  to be  rebuilt when
  6394.        <F10> is pressed.   Any index  that is not  marked UNUSED can  be
  6395.        tagged  for  rebuilding  by  pressing  <T>  while  the  index  is
  6396.        highlighted.  Pressing <T> places a check mark in the TAG column.
  6397.        If there is  already a check mark, pressing <U>  erases the mark,
  6398.        removing the index from the rebuild list.
  6399.  
  6400.        The  Status  column indicates  whether  an index  is  the PRIMARY
  6401.        index, an ACTIVE index, an INACTIVE index or an UNUSED index. 
  6402.  
  6403.   Primary Index
  6404.        A  status of  PRIMARY means  the  index is  used when  searching,
  6405.        displaying, or printing records from the current database.  There
  6406.        can only be one  index marked as PRIMARY  at any given time.   To
  6407.        change  an index  to PRIMARY,  move  the highlighted  bar to  the
  6408.        desired index and press <P>.  The Status changes to PRIMARY.  The
  6409.        Status of the previous  PRIMARY index changes  to ACTIVE.   Note:
  6410.        You can't change an UNUSED index to PRIMARY.
  6411.  
  6412.   Active Indexes
  6413.        An ACTIVE index is  kept updated by File  Express as new  records
  6414.        are added or existing records are changed.  To change an INACTIVE
  6415.        index to ACTIVE, press <A>  while it is highlighted.  The  Status
  6416.        changes to "ACTIVE"  and a check mark is placed in the TAG column
  6417.        indicating this index mustbe rebuilt beforebeing put intoservice.
  6418.  
  6419.  
  6420.  
  6421.   134  SORTING RECORDS
  6422.   ----------------------------------------------------------------------
  6423.  
  6424.   Inactive Indexes 
  6425.        An INACTIVE index is one  that has been defined but  is currently
  6426.        not being kept updated by File Express as changes are made in the
  6427.        database.  To retire an ACTIVE index, move the highlighted bar to
  6428.        it and press <I>.  The  Status changes to "INACTIVE".  A  PRIMARY
  6429.        index can't  be changed  directly to  INACTIVE.   You must  first
  6430.        select some  other index  to be PRIMARY  and then  inactivate the
  6431.        index.
  6432.  
  6433.        INACTIVE  indexes retain their definitions and can be reactivated
  6434.        and rebuilt at any time in the future.
  6435.  
  6436.   Unused Indexes
  6437.        An UNUSED index is one that has never been defined.
  6438.  
  6439.        From this screen you can do several  things with indexes.  If you
  6440.        are just  starting a new database, you  should define one or more
  6441.        indexes to  go with it.  If  you want to edit  an existing index,
  6442.        this is where you come.  
  6443.  
  6444.   Record Number Index
  6445.        File  Express automatically  keeps an  internal  index in  record
  6446.        number order.  This index is always up to date and never needs to
  6447.        be rebuilt.   Set  this index  to PRIMARY  any time  you want  to
  6448.        access or print records in record number order.
  6449.  
  6450.   Deleted Record Index
  6451.        As records are deleted from your database, their location is kept
  6452.        in a special index called the Deleted Record Index.  File Express
  6453.        always  looks in  this index  to see  if it  can use  one of  the
  6454.        abandoned records for storing new records.  If you set this index
  6455.        to PRIMARY, you can  view, print and undelete these records.   If
  6456.        the Deleted Record Index  is deleted from  your disk, or  becomes
  6457.        corrupted  for  some  reason,  File  Express  will  automatically
  6458.        rebuild it for you.
  6459.  
  6460.  
  6461.  
  6462.                                                     SORTING RECORDS  135
  6463.   ----------------------------------------------------------------------
  6464.  
  6465.   Defining A New Index
  6466.        To create  a  new  index  for  the  current  database,  move  the
  6467.        highlighted bar  using the  <Up> and  <Down> cursor  keys to  the
  6468.        first UNUSED  index entry and  press <E>  to edit and  define the
  6469.        index.  When you do, the Index Edit Screen  appears:
  6470.  
  6471.  
  6472.  
  6473.  
  6474.  
  6475.  
  6476.                  Registered Version has screen picture here
  6477.  
  6478.  
  6479.  
  6480.  
  6481.  
  6482.  
  6483.  
  6484.  
  6485.  
  6486.  
  6487.        On this screen, you tell File Express which fields to keep sorted
  6488.        in this index.  You can also indicate which part of the field you
  6489.        want to use and which order you want the fields sorted in.  
  6490.  
  6491.        The  window displayed on the left is  a list of all the fields in
  6492.        the current database along with their lengths.  The window on the
  6493.        right is  where  you  indicate  the  fields  to  be  sorted,  the
  6494.        positions within each field, and the order of the sort.   You can
  6495.        define up to ten different sort levels for each index.
  6496.  
  6497.        The process begins as you tell File Express the name of the first
  6498.        field you  want to sort  on.  The  field name window  on the left
  6499.        contains a highlighted bar that  can be moved using the  <Up> and
  6500.        <Down> arrow keys.   As you do  this the name of  the highlighted
  6501.        field appears in the  Name column of the right window.   When the
  6502.        desired  field is displayed, press <Enter>  to select that field.
  6503.        You can  also type  in the name  of the  field you want  to sort.
  6504.        File  Express searches  quickly through  the field  name  list to
  6505.        confirm the spelling and accepts the  name if correct.  If  there
  6506.        are  two  or more  fields  with  the  same  name, the  first  one
  6507.        encountered in the field name list is used.  To select the second
  6508.        or  later field with the same  name you must move the highlighted
  6509.        bar to that field and press <Enter> as described above.
  6510.  
  6511.  
  6512.        If the field  you select is a Character type  field, File Express
  6513.        asks for the Position  of the field to be sorted  with the entire
  6514.        length shown  as the default answer.   Just press <Enter> to sort
  6515.        the entire field.   To use only  a portion of the  field, specify
  6516.  
  6517.  
  6518.  
  6519.   136  SORTING RECORDS
  6520.   ----------------------------------------------------------------------
  6521.  
  6522.        the starting and ending character position  separated by a colon.
  6523.        For example,  to sort only the first three characters of a field,
  6524.        enter  1:3 (indicating  characters 1  through  3).   To sort  the
  6525.        seventh through the tenth characters of a field, enter 7:10. 
  6526.  
  6527.        If  the  field  you  select  is  a  numeric  type,  File  Express
  6528.        automatically  fills in  the  Position  column  for  you  because
  6529.        numeric fields must be sorted on their entire length.  
  6530.  
  6531.        Technical note: The number  of digits that  File Express uses  to
  6532.        sort a numeric field is equal to the length of the field plus the
  6533.        number of decimal places plus two.  If you are sorting  a numeric
  6534.        field that  is 10  digits long  and has two  decimal places,  the
  6535.        Position  column reads  1:14.   To  make the  sorting of  numbers
  6536.        faster,  File Express keeps  a specially  aligned version  in the
  6537.        indexes.    This  alignment  process  requires  some  extra  room
  6538.        depending on the number of decimal places involved.
  6539.  
  6540.        The next prompt is: 
  6541.  
  6542.                 Sort into <A>scending or <D>escending order:
  6543.  
  6544.        <A>scending means the records are sorted from smallest to largest
  6545.        or lowest to highest (for example, names are sorted A through Z).
  6546.        <D>escending  means  the  records  are  sorted  from  largest  to
  6547.        smallest or highest to  lowest (for example,  names are sorted  Z
  6548.        through A). 
  6549.  
  6550.        After responding to the three prompts, File Express asks for  the
  6551.        next field to  sort on.  If you  don't want to sort  on any other
  6552.        fields,   press  <F10>.     Otherwise,  continue  specifying  the
  6553.        additional fields (up to  10 total) and  press <Enter> when  they
  6554.        have all  been specified.   When you  are finished,  press <F10>.
  6555.        File  Express  asks,  "Save  index  format  (Y/N)?    or  <C>  to
  6556.        continue".  Press <Y> or <Enter> if everything looks all right or
  6557.        <C> to go back and make some changes to the definition.
  6558.  
  6559.        Most sorts are done on only one  field, using all the data in the
  6560.        field, and sorting  in ascending order.   In these cases,  all it
  6561.        takes to start the  sort is to indicate the field  name and press
  6562.        <Enter> two or three  times, (depending on  the field type),  and
  6563.        then <F10>. 
  6564.  
  6565.  
  6566.  
  6567.                                                     SORTING RECORDS  137
  6568.   ----------------------------------------------------------------------
  6569.  
  6570.   Editing An Existing Index Definition
  6571.        If you  want  to change  an  existing index  definition  or  make
  6572.        changes to  a new  index you  are just  defining, there are  some
  6573.        commands to make this easy.  
  6574.  
  6575.        <Tab>, <BackTab> When the cursor is in the Name column,  pressing
  6576.        <Tab> moves down to the next field name and <BackTab> moves up to
  6577.        the previous field name.
  6578.  
  6579.        <Alt-I> To insert  a sort level, make  sure the cursor is  in the
  6580.        Name column of  the level you want  to have moved down  and press
  6581.        <Alt-I>.  All the levels from the cursor position and below  move
  6582.        down and a  new level is inserted.   The new level  is pre-filled
  6583.        with the information  below it but you  can change it to  any new
  6584.        information.
  6585.  
  6586.        <Alt-D> To delete  a sort level, make  sure the cursor is  in the
  6587.        Name  column of the level  you want to  delete and press <Alt-D>.
  6588.        All sort levels below move up one line.
  6589.  
  6590.        When you have made the desired changes, press <F10> to save them.
  6591.  
  6592.  
  6593.   Saving The Index Definition
  6594.  
  6595.        After pressing  <F10> and indicating that you are finished making
  6596.        entries and changes, File Express prompts for an Index Name which
  6597.        can be up to eight characters long and a  description of up to 50
  6598.        characters.    After  entering these  and  pressing  <Enter>, you
  6599.        return to the Select Index screen with the index you were working
  6600.        on highlighted and tagged with a check mark.
  6601.  
  6602.  
  6603.   Building Or Rebuilding An Index
  6604.        When you have defined  your indexes or  made changes to  existing
  6605.        indexes,  you  must go  through  the  process that  rebuilds  the
  6606.        indexes.  This makes  them active so  they will be  automatically
  6607.        updated by File Express when records are added or changed.
  6608.  
  6609.        To  begin  the rebuild  process,  press <F10>  while  viewing the
  6610.        Select Index screen.  File Express displays a percentage scale on
  6611.        the screen showing the  progress of the  index rebuilding.   When
  6612.        the job is  finished, you  return to  the Main Menu.   Once  your
  6613.        indexes are  defined and initially built, File Express keeps them
  6614.        up to date at all times.  The rebuilding process is not generally
  6615.        needed  again unless  you want  to  change the  definition of  an
  6616.        index, add a new index or if an index becomes corrupted due to  a
  6617.        power failure, bad disk, etc.
  6618.  
  6619.    
  6620.  
  6621.  
  6622.  
  6623.   138  SORTING RECORDS
  6624.   ----------------------------------------------------------------------
  6625.  
  6626.   Sort Precedence 
  6627.        The concept of precedence is somewhat technical in nature.   It's
  6628.        not necessary to fully  understand this section  in order to  run
  6629.        File Express. 
  6630.  
  6631.        For  character fields,  File  Express  uses  the  standard  ASCII
  6632.        precedence used by IBM  PC and compatibles.   The ASCII  standard
  6633.        assigns  a  value   to  every  character,  including   the  space
  6634.        character.  The value of the character determines where it sorts:
  6635.  
  6636.  
  6637.        1. <space> has the  lowest ASCII value,  meaning it sorts  before
  6638.        anything else.  (This includes any blank or empty fields.)
  6639.  
  6640.        2. some of the special characters sort next, in this sequence:  
  6641.                       !  "  #  $  %  &  '  -  .  / 
  6642.  
  6643.        3. Numeric digits (when used in character fields) sort next: 
  6644.                       0  1  2  3  4  5  6  7  8  9 
  6645.  
  6646.        4. A few more special characters come next: 
  6647.  
  6648.                            :  ;  <  =  >  ?  @ 
  6649.  
  6650.        5.  Followed  by  alphabetic  characters  (upper/lower  case  are
  6651.        mixed):  
  6652.               A or a, B or b, C or c, D or d, E or e, etc. 
  6653.  
  6654.        6. And finally, a few more special characters: 
  6655.  
  6656.                       [  \  ]  ^  _  `  {  |  }  ~ 
  6657.  
  6658.        Technical  Note:  File  Express  also  permits  special   foreign
  6659.        characters, math  symbols and graphic symbols to  be entered into
  6660.        character  fields.   The  sort  precedence  on  these  fields  is
  6661.        determined by their  ASCII value.   See Appendix  A for an  ASCII
  6662.        chart listing.
  6663.  
  6664.        The sort precedence for Numeric fields is simply the value of the
  6665.        number.  Empty numeric  fields (all spaces) are given  a value of
  6666.        zero.  On  an ascending sort, negative numbers  are sorted first,
  6667.        then  zero, then positive  numbers.  Remember,  when dealing with
  6668.        negative numbers, -100 is considered less than -99, so -100 comes
  6669.        first in an ascending sort.  
  6670.  
  6671.        File Express does not permit you to enter a formula to be sorted,
  6672.        but there  is a way  to sort on the  result of a  formula.  Let's
  6673.        say, for  example,  you  need  a  report  printed  in  descending
  6674.        sequence using the  computation of two  fields: (OnHand *  Cost).
  6675.        To accomplish this, set up a Formula field in your database which
  6676.        contains  the formula.   As  records  are added,  the formula  is
  6677.  
  6678.  
  6679.  
  6680.                                                     SORTING RECORDS  139
  6681.   ----------------------------------------------------------------------
  6682.  
  6683.        automatically computed.  Then when a sort is necessary, just sort
  6684.        on the contents of the Formula field. 
  6685.  
  6686.        Sometimes  ASCII sort  precedence is  undesirable or  inadequate,
  6687.        because  you want, say,  spaces to come last,  or numbers to come
  6688.        after letters.  If you have a special application which  requires
  6689.        the sort precedence to be altered, define a formula field in your
  6690.        database  whose resulting value determines the new precedence you
  6691.        require.   For example, to make  blank company names sort  at the
  6692.        end of  the index  instead of  the beginning,  include a  Formula
  6693.        field in your database with this formula:  
  6694.  
  6695.                  If company is empty then 1 otherwise 0 
  6696.  
  6697.        When sorting by company name, sort this formula field first, then
  6698.        the company.  Since 1 is greater  than 0, all the blank companies
  6699.        go to the  end of the index.   This If/Then statement  could have
  6700.        been much more complex, using nested IF's to make numerous  tests
  6701.        and assign more values than 0 and 1: 
  6702.  
  6703.        IF F1 >= A AND F1 <= ZZ THEN 1 ELSE IF F1 >= 0 AND F1 <= 9 THEN 2
  6704.        ELSE IF LEFT(F1,1) <> " " THEN 3 ELSE 4 
  6705.  
  6706.        Sorting  by this formula  causes alphabetic names  to come first,
  6707.        then numeric digits, then special characters, and finally spaces.
  6708.        Of course only  the first character of the field is checked.  The
  6709.        rest of the field is sorted in straight ASCII sequence.  For more
  6710.        information  on  If/Then  and formulas,  see  the  chapter titled
  6711.        Formulas. 
  6712.  
  6713.  
  6714.   Sorting Dates 
  6715.        File  Express has a  special field type  called a Date  field.  A
  6716.        Date field is  automatically given a length of  8 or 10 depending
  6717.        on the global  date format selected in the Setup program.  When a
  6718.        Date field  is  entered, it  displays  on the  screen  in  either
  6719.        MM-DD-YY format (for example: 05-16-90), MM-DD-YYYY (05-16-1990),
  6720.        DD-MM-YY format  (25-12-90),  or DD-MM-YYYY  (25-12-1990).    All
  6721.        dates are stored in the database as in YYYYMMDD, 8 byte format so
  6722.        it  is automatically sorted  chronologically.  Whenever  they are
  6723.        displayed on  the screen or  on a report  or labels, the  date is
  6724.        reformatted in the current date format.
  6725.  
  6726.    
  6727.  
  6728.  
  6729.  
  6730.   140  SORTING RECORDS
  6731.   ----------------------------------------------------------------------
  6732.  
  6733.   Sorting By Record Number 
  6734.        File  Express automatically  keeps an  internal  index in  record
  6735.        number  order.  If you define a new database and don't set up any
  6736.        new indexes, File  Express keeps the records you  enter in record
  6737.        number order and any reports or labels printed are in that order.
  6738.  
  6739.        Sometimes it is desirable to use the record number index, such as
  6740.        when you want the records to  appear in a report in the  sequence
  6741.        in which you entered them.  Since records are added at the end of
  6742.        the  database (except  when  there  are  vacant  deleted  records
  6743.        available), record number sequence is also chronological sequence
  6744.        for new records.  
  6745.  
  6746.        The record number  can be included as one of the sub-levels of an
  6747.        index.  To do this, select  field 0 when you want to  include the
  6748.        record  number.    If it  is  used,  it must  be  the  last field
  6749.        specified because  any further  sub-levels would  not affect  the
  6750.        sort.  Sometimes it can be useful to include the record number as
  6751.        the  last  field.    For  example,   a  database  contains  dated
  6752.        transactions, many  of which have  the same  date.  You  want the
  6753.        transactions in  date sequence,  but for the  ones with  the same
  6754.        date, you  want them  sorted in the  sequence they  were entered.
  6755.        Specify the date as the first field of the sort, then specify the
  6756.        record number as the second field. 
  6757.  
  6758.    
  6759.   How Long Does It Take? 
  6760.        There are  many factors which affect the  length of time it takes
  6761.        to rebuild indexes.  Some of the variables include: 
  6762.  
  6763.        *    How many records are being sorted?         
  6764.        *    How big are the records?         
  6765.        *    How many fields are being sorted?         
  6766.        *    How long are the sorted fields?         
  6767.        *    Is the database on a hard disk, RAM disk or diskettes?  
  6768.        *    How fast is the computer?         
  6769.  
  6770.  
  6771.   Speeding Up Sorts 
  6772.        Obviously the  sort can  be made  to  run faster  by buying  more
  6773.        hardware  or faster  hardware.   But  there are  many other  less
  6774.        expensive ways to speed up the sorting process.  The rule  of the
  6775.        day for faster sorts is: "sort as little as possible". 
  6776.  
  6777.        For example, is it really necessary to sort all 30 characters  of
  6778.        a company  name?   Most company  names are unique  enough in  the
  6779.        first  15 characters.  If you specify  1:15 for the characters to
  6780.        be sorted,  instead of  sorting the complete  30 characters,  the
  6781.        sort generally  runs two  to three times  faster.   An occasional
  6782.        record  or two  may be  slightly  out of  sequence, but  probably
  6783.        nobody  will notice.  If  "in the ballpark"  is good enough, then
  6784.  
  6785.  
  6786.  
  6787.                                                     SORTING RECORDS  141
  6788.   ----------------------------------------------------------------------
  6789.  
  6790.        sort names by  only the first three  or four characters.   It can
  6791.        speed up sorts by a factor of ten or more. 
  6792.  
  6793.  
  6794.  
  6795.   142  SORTING RECORDS
  6796.   ----------------------------------------------------------------------
  6797.                                   empty
  6798.  
  6799.  
  6800.  
  6801.                                                    PRINTING REPORTS  143
  6802.   ----------------------------------------------------------------------
  6803.  
  6804.  
  6805.                             Printing Reports 
  6806.  
  6807.  
  6808.        After you have gone through all the trouble of entering mountains
  6809.        of information  into  your database,  it's time  to produce  some
  6810.        dazzling  output.  The File  Express Report Writer  is one of the
  6811.        most  powerful and full-featured report generator programs on the
  6812.        market.
  6813.  
  6814.        The Report section has two parts, a report generator  and a small
  6815.        word processor with  a mail-merge feature.  The  report generator
  6816.        focuses  on printing  information from  the  database along  with
  6817.        totals and subtotals,  whereas the word processor  lets you write
  6818.        form letters that include information from your database.
  6819.  
  6820.  
  6821.   Designing a Report or Form Letter 
  6822.        Defining a  new report  in File  Express is  simply  a matter  of
  6823.        indicating what you  want to print and where on the page you want
  6824.        it put.  Reports can include titles, headings, field information,
  6825.        text, calculated fields, subtotals, totals, and footers.  You can
  6826.        include any or all of these  pieces to make reports as simple  or
  6827.        as complex as you like. 
  6828.  
  6829.        Writing a  form letter consists  of typing  the main text  of the
  6830.        letter and  then  placing fields  where  you want  to  print  the
  6831.        information contained in  a database.   When File Express  prints
  6832.        the form letter, it is reformatted to account for varying lengths
  6833.        of field contents.
  6834.  
  6835.  
  6836.  
  6837.   144  PRINTING REPORTS
  6838.   ----------------------------------------------------------------------
  6839.  
  6840.        To  define a new report or write  a form letter, press <5> or <R>
  6841.        on the Main Menu.  The following screen displays: 
  6842.  
  6843.  
  6844.  
  6845.  
  6846.     
  6847.  
  6848.  
  6849.  
  6850.  
  6851.  
  6852.  
  6853.  
  6854.  
  6855.  
  6856.  
  6857.  
  6858.  
  6859.  
  6860.        The choices on  this menu let you  either design a new  report or
  6861.        form letter or  choose existing reports or letters.   Choosing an
  6862.        existing  report  lets  you  change  it,  either  temporarily  or
  6863.        permanently,  then print  it.   A new  report  can also  be saved
  6864.        permanently and printed, or just printed without saving. 
  6865.  
  6866.  
  6867.  
  6868.                                                    PRINTING REPORTS  145
  6869.   ----------------------------------------------------------------------
  6870.  
  6871.   Reports
  6872.        A report consists of several different sections.  These include:
  6873.  
  6874.  
  6875.  
  6876.  
  6877.  
  6878.  
  6879.                  Registered Version has screen picture here
  6880.  
  6881.  
  6882.  
  6883.  
  6884.  
  6885.  
  6886.  
  6887.  
  6888.  
  6889.  
  6890.        Each section, except the Edit Report Format section,  has default
  6891.        answers  to  all the  questions and  can be  bypassed if  all the
  6892.        answers  are acceptable.   After  completing a  section,  you can
  6893.        either press  <Esc> to  go back to  this Report  Options Menu  or
  6894.        <F10> to continue on to the next section.
  6895.  
  6896.     
  6897.  
  6898.  
  6899.  
  6900.   146  PRINTING REPORTS
  6901.   ----------------------------------------------------------------------
  6902.  
  6903.   Starting a New Report
  6904.        To define a  new report, press <1>  or <D> from the  Report Menu,
  6905.        Design A New Report.  The following screen appears: 
  6906.  
  6907.  
  6908.  
  6909.  
  6910.  
  6911.  
  6912.                  Registered Version has screen picture here
  6913.  
  6914.  
  6915.  
  6916.  
  6917.  
  6918.  
  6919.  
  6920.  
  6921.  
  6922.  
  6923.        This screen is used to specify the placement of the report on the
  6924.        paper.
  6925.  
  6926.        Report width:   The width of the printed area on the report.  For
  6927.        example, if your paper is 8 1/2  inches wide and you want to hold
  6928.        a left  and right margin  of 3/4 inch,  the width of  the printed
  6929.        portion is 7 inches, which  is 70 characters if you are  printing
  6930.        at 10 characters per inch.  In condensed mode you can print about
  6931.        119 characters in  7 inches (7  times 17).   If you are  using 14
  6932.        inch wide paper you can print more, of course.  Keep in mind that
  6933.        the Report Width does not include the left margin setting below.
  6934.  
  6935.        Paper length:   The  number of  rows that  can be  printed on  an
  6936.        entire page.   Most printing  is done at  6 lines  per inch.   An
  6937.        eleven inch page is 66 lines high.  At 8 lines per inch, the page
  6938.        would hold 88 lines.
  6939.  
  6940.        Lines per page:  The  number of lines that actually print  before
  6941.        moving to  the next page.  This should  take into account the top
  6942.        and  bottom margin.  On an eleven  inch page with a top margin of
  6943.        1" and a bottom margin of 3/4", printed at  6 lines per inch, the
  6944.        Lines Per Page should be set at 56.
  6945.  
  6946.        Top Margin:   The number of blank  lines at the top  of each page
  6947.        before the actual printing is started.  Most of the time  you set
  6948.        this to 0  and just position the  paper in your printer  to start
  6949.        printing where you want the first line to be.  If you are using a
  6950.        sheet-feeder you can change this setting as needed.
  6951.  
  6952.        Left Margin:   The number of characters from the left edge of the
  6953.        paper to the  beginning of each line.   A setting of  0 indicates
  6954.  
  6955.  
  6956.  
  6957.                                                    PRINTING REPORTS  147
  6958.   ----------------------------------------------------------------------
  6959.  
  6960.        that printing should  begin at  the left  edge of the  paper.   A
  6961.        setting of 1 leaves one blank space before starting each line.  A
  6962.        setting  of 10 leaves a left margin of 1 inch when printing at 10
  6963.        characters per inch.
  6964.  
  6965.        When all  the settings on the Report  Size and Spacing screen are
  6966.        correct, press <F10>  to continue to the Report  Layout screen or
  6967.        <Esc> to return to the Report Sub-Menu.  The Report Layout screen
  6968.        look like this:
  6969.  
  6970.  
  6971.  
  6972.  
  6973.  
  6974.  
  6975.                  Registered Version has screen picture here
  6976.  
  6977.  
  6978.  
  6979.  
  6980.  
  6981.  
  6982.  
  6983.  
  6984.  
  6985.  
  6986.        This is  the screen you use to "paint"  your report layout.  It's
  6987.        really quite  easy.   There  are  eight possible  sections  to  a
  6988.        report, the Title, Headings, Detail, three levels of Subtotals, a
  6989.        Total section  and a Footer area.  Each  section has a line above
  6990.        it with a  title indicating  the name  of the section.   Each  of
  6991.        these areas can  be laid out any way you want and can be expanded
  6992.        as needed.
  6993.  
  6994.  
  6995.   Moving Around the Layout Screen
  6996.        Moving around the  screen is simply a matter of  using the cursor
  6997.        keys  to move  the blinking  cursor  to any  position within  the
  6998.        report layout.   As you move up  and down, the cursor  moves from
  6999.        one section  to another.   There are  position indicators  at the
  7000.        bottom right corner of  the window that  display the current  row
  7001.        and column  of the cursor  within the  current section.   If your
  7002.        report is  wider  than the  window  on the  screen,  the  display
  7003.        scrolls sideways  when the  cursor moves past  the right  or left
  7004.        edge of the window.  The  same is true if the layout grows  to be
  7005.        taller  than the  window.   The display  scrolls  up and  down as
  7006.        needed.
  7007.  
  7008.  
  7009.  
  7010.   148  PRINTING REPORTS
  7011.   ----------------------------------------------------------------------
  7012.  
  7013.        There are also several other keys that make it easier and quicker
  7014.        to move around the screen:
  7015.  
  7016.        <Enter>   Pressing the <Enter>  key moves the cursor down one row
  7017.                  and to column 1.   The display scrolls to the right  if
  7018.                  necessary.
  7019.  
  7020.        <Home>    Pressing the <Home> key moves the cursor to column 1 in
  7021.                  the  current row, shifting  the window contents  to the
  7022.                  right, if  necessary.   If the cursor  is in  column 1,
  7023.                  pressing <Home> moves the cursor to row 1, column 1  in
  7024.                  the Title section, shifting the window contents down if
  7025.                  necessary.  (If  you want to quickly move  to the Title
  7026.                  section, press <Home> twice and you are there.)
  7027.  
  7028.        <End>     Pressing the <End> key moves the cursor to the position
  7029.                  following  the last non-blank  character on the current
  7030.                  line.   If the cursor is already at  the end of a line,
  7031.                  pressing  <End> moves  the cursor  to  the lower  right
  7032.                  corner  of the window  in the Footer  section, shifting
  7033.                  the window contents up  if necessary.   If you want  to
  7034.                  move to the end of the report, press <End> twice.
  7035.  
  7036.  
  7037.        <Tab>     The  <Tab>  key moves  the  cursor 5  positions  to the
  7038.                  right.
  7039.  
  7040.        <Backtab> The <Backtab> key, (hold down the <Shift> key while you
  7041.                  press  the <Tab> key), moves the  cursor 5 positions to
  7042.                  the left.
  7043.  
  7044.        <Ctrl-PgUp>    These keys move  the cursor to the  top and bottom
  7045.        of the report 
  7046.        <Ctrl-PgDn>    in the current column.
  7047.  
  7048.        <PgUp>    These keys move  up and down through  the entire report
  7049.        layout if <PgDn>    it is taller than the window size.
  7050.  
  7051.        <Alt-D>   Pressing <Alt-D> deletes the  current line after asking
  7052.                  for permission to  do so.  All lines  below the deleted
  7053.                  line are  moved  up to  fill  the void.    The  section
  7054.                  dividing  lines cannot be  deleted nor can  a line that
  7055.                  contains a field.  To remove a line containing a field,
  7056.                  you must first remove the field.  See Removing a  Field
  7057.                  below.
  7058.  
  7059.        <Alt-I>   Pressing <Alt-I>  inserts a  new blank  line above  the
  7060.                  line  where the cursor  is, making the  current section
  7061.                  one line taller.  
  7062.  
  7063.  
  7064.  
  7065.                                                    PRINTING REPORTS  149
  7066.   ----------------------------------------------------------------------
  7067.  
  7068.        <Ctrl-R>  Pressing <Ctrl-R> repeats the last  text character that
  7069.                  was typed.
  7070.  
  7071.        <Spacebar>     The  <Spacebar> key  puts a  blank  at the  cursor
  7072.                       position and moves one position to the right.  The
  7073.                       <Spacebar> won't blank out a field.
  7074.  
  7075.        <Backspace>    The <Backspace> moves the cursor  one character to
  7076.                       the left and blanks any  text character that is in
  7077.                       that position.  Any text or  single line fields to
  7078.                       the right  of the cursor  are pulled to  the left.
  7079.                       If there  is a  window field to  the right  of the
  7080.                       cursor  that   crosses  the   current  line,   the
  7081.                       <Backspace>  key functions as a <Left> cursor key.
  7082.                       The <Backspace> key will not blank out a field.
  7083.  
  7084.        <Del>          The <Del>  key  removes the  character  under  the
  7085.                       cursor and pulls the remainder  of the line to the
  7086.                       left.  The  <Del> key does not work  if the cursor
  7087.                       is on  an input field or  to the left of  a window
  7088.                       field.
  7089.  
  7090.        <Insert>  The <Insert> key toggles  between insert and  overwrite
  7091.                  mode.    When  insert  mode is  turned  on,  the cursor
  7092.                  changes shape  from a blinking line to  a blinking box.
  7093.                  Any  characters typed while in insert mode are inserted
  7094.                  at the current cursor position and the rest of the line
  7095.                  is move to the  right.  If moving the rest  of the line
  7096.                  to the right would  cause an input  field to be  pushed
  7097.                  off the screen, inserting text is not permitted.  Also,
  7098.                  if there is a window field  to the right of the cursor,
  7099.                  inserting new characters is not allowed.
  7100.  
  7101.        <F10>     Pressing <F10> tells File Express that you are finished
  7102.                  defining the  report layout and want to continue to the
  7103.                  Optional Specification screen. 
  7104.  
  7105.        When defining a report layout,  a list of all the available  edit
  7106.        keys  and their  function is  available  by pressing  <Alt-H> for
  7107.        help.
  7108.  
  7109.  
  7110.  
  7111.   150  PRINTING REPORTS
  7112.   ----------------------------------------------------------------------
  7113.  
  7114.   Report Layout Sections
  7115.  
  7116.        Title
  7117.        The Title section  of a  report is  printed at the  top of  every
  7118.        page.   If  you would like  the title  printed on the  first page
  7119.        only,  or  not at  all,  you can  indicate  this on  the Optional
  7120.        Specification screen that is described below.
  7121.  
  7122.        The Title  section of  a report  usually contains  a title  line,
  7123.        date, and page  number.   However, you  can also  put fields  and
  7124.        formulas in  this section.   Any references  to fields  are taken
  7125.        from the next record to be printed on the report.
  7126.  
  7127.        Example:
  7128.  
  7129.                         List of Software Companies
  7130.  
  7131.        Date18                                       Page PAGE
  7132.  
  7133.  
  7134.        This title  example  was  created  by  typing  List  of  Software
  7135.        Companies as  the title on  the first line of  the Title section,
  7136.        inserting two more lines by pressing <Alt-I>, placing the current
  7137.        date on line 3 as a Calculated Field by pressing <Alt-C> and then
  7138.        selecting the DATE function.  Page numbering was added by  typing
  7139.        Page as  text and then  placing the PAGE  function next to  it by
  7140.        again pressing <Alt-C> to pop up the Calculated field window  and
  7141.        selecting the PAGE function.
  7142.  
  7143.        Example:
  7144.  
  7145.                  User Group Phone Directory    Last Name      PAGE
  7146.  
  7147.  
  7148.        This example generates a title that looks something like:
  7149.  
  7150.                  User Group Phone Directory    Williams       117
  7151.  
  7152.  
  7153.        Since any field  reference in the Title area  prints the contents
  7154.        of the field  from the next record that will print, the Last Name
  7155.        from the  top record on each page prints  in the title, forming a
  7156.        phone book type  quick index in  the upper  right corner of  each
  7157.        page.
  7158.  
  7159.        Centering Titles
  7160.        Most of the  time you will want  to have your title  lines either
  7161.        centered, left  or right  justified within the  defined width  of
  7162.        your report.  File Express offers a feature called Text Alignment
  7163.        to help  you.  Pressing <Alt-A> on  any line containing just text
  7164.        (no fields or formulas) pops up a window prompting you for <L>eft
  7165.  
  7166.  
  7167.  
  7168.                                                    PRINTING REPORTS  151
  7169.   ----------------------------------------------------------------------
  7170.  
  7171.        <C>enter or <R>ight justification.  Select the alignment you want
  7172.        by pressing the appropriate letter  and all the text on  the line
  7173.        is instantly justified for you.  
  7174.  
  7175.        Headings
  7176.        The Headings section of  a report is  normally printed below  the
  7177.        Title  section and  above the  Detail section on  each page.   It
  7178.        usually consists of column headings.  As with the Title  section,
  7179.        you can  indicate that  the Headings  section be  printed on  the
  7180.        first page, all pages, or no pages at all.
  7181.  
  7182.  
  7183.        Auto-Generate Headings
  7184.        The most  commonly used  Heading consists of  field names  with a
  7185.        dashed lines under them.
  7186.  
  7187.        Example:
  7188.  
  7189.             First Name    Last Name            Company Name
  7190.             ------------- -------------------- ----------------------
  7191.  
  7192.  
  7193.        File Express lets you automatically generate this type of heading
  7194.        by pressing <Ctrl-G> with the cursor in the Headings area,  after
  7195.        the Detail section  has been laid out.   This is done  by echoing
  7196.        the field  names found on  the first  line of the  Detail section
  7197.        into the first line of  the Headings section. The dashed line  on
  7198.        the second line  of the Heading section represents  the length of
  7199.        the field.
  7200.  
  7201.        After  a Heading  is generated,  you can  make changes  to it  by
  7202.        simply moving around  the section, typing over the  text you want
  7203.        to edit.
  7204.  
  7205.        The Headings section can be much more elaborate, containing field
  7206.        references, formulas, and text.
  7207.  
  7208.        Example:
  7209.  
  7210.             Expressware Corporation       I N V O I C E
  7211.             P.O. Box 1800
  7212.             Duvall, WA 98019
  7213.  
  7214.             206-788-0932        Date of Invoice: DATE    
  7215.  
  7216.             ____________________________________________________
  7217.  
  7218.  
  7219.  
  7220.   152  PRINTING REPORTS
  7221.   ----------------------------------------------------------------------
  7222.  
  7223.        Detail Area
  7224.        The Detail  section of a report  is where all  the information is
  7225.        printed from the fields  in each record.   The Detail section  is
  7226.        printed  once   for  every   record  and   is  usually   repeated
  7227.        continuously down the page until it is full.  
  7228.  
  7229.        To define the layout for your report, move around the Detail area
  7230.        and place the fields and text exactly where you want them.
  7231.  
  7232.        The following example  was created by placing the  BOOK TITLE and
  7233.        AUTHOR fields on line 1 of the Detail section.  
  7234.  
  7235.                  BOOK TITLE               AUTHOR               
  7236.  
  7237.        This layout produces a report like this:
  7238.  
  7239.        Example:
  7240.  
  7241.                  Macroscope               Piers Anthony
  7242.                  Foundation and Earth     Isaac Asimov
  7243.                  2001                     Arthur C. Clark
  7244.                  Starship                 Robert Heinlen
  7245.                  Ringworld                Larry Niven
  7246.  
  7247.  
  7248.        Of course, the layout can be much more intricate.  Continuing the
  7249.        example of the INVOICE in the Heading section:
  7250.  
  7251.        -----------------------------------------------------------------
  7252.        To: Full Name===============  Ship  to:   SHIP TO NAME===========           
  7253.            COMPANY NAME============              SHIP TO COMPANY======== 
  7254.            ADDRESS=================              SHIP TO ADDRESS======== 
  7255.            CITY==========, ST ZIP==              SCITY========, SS SZIP=
  7256.  
  7257.        Date Order: ODATE===               Tax Number: TAX NUMBER========
  7258.        -----------------------------------------------------------------
  7259.        Account No.   Date Shipped   Shipped Via   Terms    Your Number
  7260.  
  7261.        ACCT NUMBER    SHIP DT         VIA         TERMS     PO NUMBER
  7262.        -----------------------------------------------------------------
  7263.        Quantity             Description            Unit Price    Amount
  7264.        -----------------------------------------------------------------
  7265.        QTY1        DESCRIP1==================          EACH1     SUBTOT1
  7266.        QTY2        DESCRIP2==================          EACH2     SUBTOT2
  7267.  
  7268.                                    etc.
  7269.    
  7270.  
  7271.  
  7272.  
  7273.                                                    PRINTING REPORTS  153
  7274.   ----------------------------------------------------------------------
  7275.  
  7276.  
  7277.  
  7278.        All the  highlighted characters  represent  fields or  calculated
  7279.        fields.  
  7280.  
  7281.        Subtotals
  7282.        File Express offers three levels of subtotals on a  report.  Each
  7283.        subtotal level  can have  its own trigger  field that  determines
  7284.        when  the  subtotal is  generated  for that  level.  (See Setting
  7285.        Trigger Fields  for more  information). The  trigger field  for a
  7286.        subtotal level is typically a sort field of the same level.   For
  7287.        example, if you want a subtotal printed each time the contents of
  7288.        the CITY field changes, the current index must be in  CITY order.
  7289.        (See Example  1.)  If you are  going to print a  report with more
  7290.        than one level of subtotals, the  current index should be in  the
  7291.        same order as the  trigger fields used  to generate the  subtotal
  7292.        levels.  (See Example 2.)
  7293.  
  7294.  
  7295.        Example 1 - Level 1 subtotals:
  7296.  
  7297.             City           Amount1  Amount2
  7298.             -------------  -------- --------
  7299.             Aberdeen          23.81   710.00
  7300.             Aberdeen        8381.84  1845.82
  7301.             Aberdeen         426.20     2.00
  7302.  
  7303.                            -------- --------
  7304.                             8831.85  2557.82
  7305.  
  7306.             Cincinnati       306.88   839.95
  7307.             Cincinnati      7925.68    29.35
  7308.             Cincinnati          .34    79.95
  7309.             Cincinnati       885.33   419.45
  7310.             Cincinnati        59.24    59.15
  7311.                            -------- --------
  7312.                             9177.47  1427.85
  7313.  
  7314.  
  7315.        In this example,  the Subtotal 1 trigger is the CITY field.  This
  7316.        means that each time  the contents of  the CITY field changes,  a
  7317.        level 1 subtotal is generated.
  7318.  
  7319.  
  7320.  
  7321.   154  PRINTING REPORTS
  7322.   ----------------------------------------------------------------------
  7323.  
  7324.        Example 2 - Three levels of subtotals:
  7325.  
  7326.        State     City      Salesperson    Amount
  7327.        -------   --------  -----------    --------
  7328.        Nevada    Las Vegas Larry            84,920
  7329.                                             12,000
  7330.                                           --------
  7331.                                             96,920
  7332.  
  7333.                            Leslie            9,500
  7334.                                            102,480
  7335.                                           --------
  7336.                                            111,980
  7337.                     === $208,900 (Las Vegas) ===
  7338.  
  7339.                     Reno   Larry            72,900
  7340.                                             48,390
  7341.                                           --------
  7342.                                            121,290
  7343.  
  7344.                            Robin             3,800
  7345.                                             19,430
  7346.                                           --------
  7347.                                             23,230
  7348.                     === $144,520 (Reno) ===
  7349.  
  7350.             *** $353,420 (Nevada) ***
  7351.  
  7352.        Washington     Duvall    Margaret    45,920
  7353.                                             12,000
  7354.                                           --------
  7355.                                             57,920
  7356.  
  7357.                                 Nancy       33,910
  7358.                                             12,570
  7359.                                           --------
  7360.                                             46,480
  7361.                     === $104,400 (Duvall) ===
  7362.  
  7363.                       Seattle   Martin     204,560
  7364.                                             89,080
  7365.                                           --------
  7366.                                            293,640
  7367.  
  7368.                                 Paul        98,340
  7369.                                            142,920
  7370.                                           --------
  7371.                                            241,260
  7372.                     === $534,900 (Seattle) ===
  7373.  
  7374.             *** $639,300 (Washington) ***
  7375.  
  7376.  
  7377.  
  7378.                                                    PRINTING REPORTS  155
  7379.   ----------------------------------------------------------------------
  7380.  
  7381.  
  7382.        In this  example, the subtotals  that are between  the asterisks,
  7383.        i.e., 
  7384.                       *** $984,750 (Washington) *** 
  7385.        are level 1  subtotals and are triggered by the STATE field.  The
  7386.        subtotals between the equal signs 
  7387.                         === $768,260 (Seattle) ===
  7388.        are level 2 subtotals and are  triggered by the CITY field.   The
  7389.        level 3 subtotals are the numbers beneath the dashed lines in the
  7390.        right column and are triggered by the SALESPERSON field.
  7391.  
  7392.  
  7393.        Setting Trigger Fields
  7394.        Whenever the cursor is  in one of the Subtotal areas, the current
  7395.        trigger field is  displayed near the bottom of the  screen and an
  7396.        additional  prompt is  added, <T>rigger.   To change  the trigger
  7397.        field, press  <Alt-T>.  File  Express pops up  a list of  all the
  7398.        current fields.  Using the cursor keys, move the highlight bar to
  7399.        the name of the field you  want to use for the new trigger  field
  7400.        and press <Enter>.   You are then asked for the "Portion of field
  7401.        for trigger comparison".  A subtotal trigger can be any part of a
  7402.        field.  For example,  the month portion of a Date  field might be
  7403.        used to get  monthly subtotals.  The default  entry is the entire
  7404.        length of  the field.  Make any change desired and press <Enter>.
  7405.  
  7406.  
  7407.  
  7408.   156  PRINTING REPORTS
  7409.   ----------------------------------------------------------------------
  7410.  
  7411.        Total
  7412.        The Total section is generated at the end of a report printout.
  7413.  
  7414.        Example:
  7415.  
  7416.             Aberdeen          23.81   710.00
  7417.             Cincinnati      8381.84  1845.82
  7418.             Denver           426.20     2.00
  7419.             Fargo            306.88   839.95
  7420.             Jackson         7925.68    29.35
  7421.             Miami               .34    79.95
  7422.             New York City    885.33   419.45
  7423.             Seattle           59.24    59.15
  7424.             ============   ======== ========
  7425.             8              18009.32  3985.67
  7426.  
  7427.        In this example, the totals are under the double-dashed lines and
  7428.        were laid out  by putting the corresponding  field.TOTAL for each
  7429.        field in the Total area.
  7430.  
  7431.        Footer
  7432.        The Footer  section is  normally printed  at the  bottom of  each
  7433.        page.   You can,  however, indicate  that the  Footer section  be
  7434.        printed on the first page, all pages, or no pages at all.
  7435.  
  7436.        The Footer section  can contain page numbers,  copyright notices,
  7437.        field information, etc.
  7438.  
  7439.        Example:
  7440.  
  7441.  
  7442.        Frank      7384.20
  7443.        Helen      8392.89
  7444.        Jane      10673.60
  7445.        Larry      9901.00
  7446.        Mary       7770.45
  7447.             etc.
  7448.  
  7449.  
  7450.  
  7451.        ---------------------------------------------------------------
  7452.                  Maximum so far: 10673.60
  7453.  
  7454.        (C) Copyright 1991, Acme Parts Company            Page 1
  7455.  
  7456.  
  7457.        The  Footer above is in bold type.   The number printed following
  7458.        "Maximum so far:" was generated using  the .MAX field style.  The
  7459.        page number  was generated  using the PAGE  function.   These are
  7460.        described a little  later in this  chapter.  The dashed  line and
  7461.        other words were just typed in as text.
  7462.  
  7463.  
  7464.  
  7465.                                                    PRINTING REPORTS  157
  7466.   ----------------------------------------------------------------------
  7467.  
  7468.  
  7469.   Adding Text to the Layout
  7470.        Additional text  can be  added anywhere, in  any section,  in the
  7471.        Report  Layout window  except  on top  of fields  and  on top  of
  7472.        section divider lines.   Simply move the  cursor to the  location
  7473.        where you want to add text and type what you want.
  7474.  
  7475.        If you type past the width of your report, the text wraps to  the
  7476.        left side of the layout on the next line down.  If  you type past
  7477.        the right edge  of the window, but  have not yet reach  the right
  7478.        edge of your report, the screen scrolls sideways to display  more
  7479.        columns on the right.
  7480.  
  7481.        Inserting Text
  7482.        Text  can be  inserted into  an  existing string  by putting  the
  7483.        cursor into insert  mode.  Pressing the <Insert>  key toggles the
  7484.        cursor in and out of insert mode.   The cursor is a tall blinking
  7485.        block when  it is  in insert  mode.   File  Express won't  insert
  7486.        characters if the  cursor is to the left of a window field, or if
  7487.        a field would be pushed off the report.
  7488.  
  7489.        Deleting Text
  7490.        Text  can be deleted  by using the  <Backspace> key or  the <Del>
  7491.        key.   Both of these keys pull any trailing text to the left.  If
  7492.        the cursor is  to the left  of a window  field, these keys  don't
  7493.        work.   You  must  use  the  <Spacebar>  to  blank  out  unwanted
  7494.        characters in this case.
  7495.  
  7496.        Special Characters
  7497.        To type a  special character that is  not found on  the keyboard,
  7498.        you must know  the ASCII number  that is assigned  to it.   These
  7499.        codes can be found in the ASCII CODES appendix at the end of this
  7500.        manual.   To enter a  special character  you must  hold down  the
  7501.        <Alt> key and  while doing  so, key  in the ASCII  number on  the
  7502.        numeric keypad, and then  release the <Alt>  key.  The  character
  7503.        appears at  the current  cursor position.   To enter  the British
  7504.        Pound sign for example,  hold down the <Alt> key and  type 156 on
  7505.        the numeric keypad.   When you let up the <Alt> key the character
  7506.        appears on the screen.
  7507.  
  7508.        Control Characters
  7509.        To enter special control characters with an ASCII value less than
  7510.        32,  press <Alt-X>.   File  Express  asks you  to "Enter  literal
  7511.        character".  Either press the desired control key, such as  <Esc>
  7512.        or <Tab>, or enter the control key by holding down the  <Alt> key
  7513.        and typing  the ASCII  number on  the numeric keypad.   While  in
  7514.        Literal Character mode, <Ctrl-A> through <Ctrl-Z> corresponds  to
  7515.        the ASCII  values 1  through 26.   ASCII 27,  which is  an Escape
  7516.        character, can be entered by pressing the <Esc> key.  ASCII codes
  7517.        28 through 31 must be entered by using the <Alt> key method.
  7518.  
  7519.  
  7520.  
  7521.   158  PRINTING REPORTS
  7522.   ----------------------------------------------------------------------
  7523.  
  7524.   Placing Fields on the Screen
  7525.        File Express offers many different options when placing fields on
  7526.        your  report format.  Fields can be  placed with or without their
  7527.        field names, or as window fields that occupy a rectangular  block
  7528.        on the page and automatically word-wrap when the field is printed
  7529.        into them.   Fields can be placed anywhere  on the layout, in any
  7530.        section, as long as there is enough room.  
  7531.  
  7532.        Regular Fields
  7533.        To place a field on the report  layout, move the cursor where you
  7534.        want the field to be located and press <Alt-F>.  A window appears
  7535.        on the screen with a list of all the fields that are part of your
  7536.        current database along  with any new  calculated fields you  have
  7537.        already defined for this report.  The prompt at the bottom of the
  7538.        screen changes to:
  7539.  
  7540.          Use the arrow keys to select a field, then press <Enter>
  7541.  
  7542.        To select the  field you want  to place on  the report, move  the
  7543.        highlighted bar to the desired field by using the <Up> and <Down>
  7544.        cursor keys.  (The <Spacebar> also acts as the <Down> key.)  When
  7545.        you have highlighted the correct field, press <Enter> to bring up
  7546.        the following Field Style window.  
  7547.  
  7548.                  Field
  7549.                  Name & Field
  7550.                  Field in Window
  7551.                  Field.SUBCOUNT
  7552.                  Field.COUNT
  7553.                  Field.SUBNBCOUNT
  7554.                  Field.NBCOUNT
  7555.                  Field.SUBTOTAL
  7556.                  Field.TOTAL
  7557.                  Field.SUBMIN
  7558.                  Field.MIN
  7559.                  Field.SUBMAX
  7560.                  Field.MAX
  7561.                  Field.SUBAVERAGE
  7562.                  Field.AVERAGE
  7563.  
  7564.  
  7565.  
  7566.                                                    PRINTING REPORTS  159
  7567.   ----------------------------------------------------------------------
  7568.  
  7569.        The Field  Style window  lists the  different ways  that you  can
  7570.        print a field:
  7571.  
  7572.        Field
  7573.             This option prints only  the contents of  the field as  each
  7574.             record is printed.
  7575.             Example:
  7576.  
  7577.                  Pioneer
  7578.                  Toshiba
  7579.                  Sony
  7580.                  Epson
  7581.                  Hitachi
  7582.                  JVC
  7583.  
  7584.             In this  example, the company names were  printed by putting
  7585.             the Company field as a Field in the Detail section.
  7586.  
  7587.        Name & Field
  7588.             This  option prints  the  field name  followed by  the field
  7589.             contents.
  7590.  
  7591.  
  7592.                  First Name Marilyn
  7593.                   Last Name Monroe
  7594.                     Address 101 1st Ave.
  7595.                        City Baltimore
  7596.                       State MD
  7597.                    Zip Code 01835
  7598.  
  7599.             In this  example,  each  name and  address  was  printed  by
  7600.             putting the fields as Name & Field's in the Detail section.
  7601.  
  7602.  
  7603.        Window Field 
  7604.             If the length  of a field is  40 characters or more  you can
  7605.             place the field on  the report as a Window field.   A Window
  7606.             field is  a rectangular  block that works  much like  a mini
  7607.             word processor.  When the contents of the fields are printed
  7608.             on  the report, they are automatically word-wrapped into the
  7609.             blocked  area.   When  you  select  this  type of  style,  a
  7610.             blinking rectangle of squares appears that is  two rows tall
  7611.             and 20 characters wide.  The prompt at the bottoms tells you
  7612.             to:
  7613.  
  7614.             Use Arrow  keys to  stretch the WINDOW  to size  desired and
  7615.             then press <Enter>
  7616.  
  7617.  
  7618.  
  7619.   160  PRINTING REPORTS
  7620.   ----------------------------------------------------------------------
  7621.  
  7622.             You can  make the  block taller and  wider until  the height
  7623.             times the  width is greater than  or equal to  the length of
  7624.             the field.  You can stretch the window over text if you like
  7625.             but File Express does not let you cover over any other field
  7626.             on  the screen.   When you have sized  the block as desired,
  7627.             press <Enter>.  Example:
  7628.  
  7629.  
  7630.                  This is an example of a window field
  7631.                  that is word-wrapped into the block as
  7632.                  the field is printed.  This is a good
  7633.                  way to print fields that contain long
  7634.                  text descriptions in a column on a
  7635.                  report.
  7636.  
  7637.  
  7638.  
  7639.                                                    PRINTING REPORTS  161
  7640.   ----------------------------------------------------------------------
  7641.  
  7642.        Field.SUBCOUNT
  7643.             This option prints  the count of the records  that have been
  7644.             printed in the current level 1 subtotal group.  (Since  this
  7645.             is  just  a  count  of  records  printed  in  the  subgroup,
  7646.             regardless  of  whether this  field  is  blank or  not,  all
  7647.             .SUBCOUNT field references print the same number.   That is,
  7648.             F1.SUBCOUNT is the same as F2.SUBCOUNT which is the same  as
  7649.             F3.SUBCOUNT,  etc.).   The  contents of  the  field make  no
  7650.             difference as to  how they are counted.   Numeric fields are
  7651.             the same as character fields.  
  7652.  
  7653.             Example:
  7654.  
  7655.  
  7656.             #    Name           Company        Amount
  7657.  
  7658.  
  7659.             1    David          Expressware      23.89
  7660.             2    David                            0.00
  7661.             3    David          Microsoft       936.10 
  7662.                  ----------     -------------  -------
  7663.                  3              3              3
  7664.  
  7665.             1    Don            MCI               6.23
  7666.             2    Don            AT&T           4857.00
  7667.                  ----------     -------------  -------
  7668.                  2              2              2
  7669.  
  7670.             1    Rick                           938.09
  7671.             2    Mary           Boeing            1.11
  7672.                  ----------     -------------  -------
  7673.                  2              2              2
  7674.  
  7675.  
  7676.             In this example  the numbers in the #  column were generated
  7677.             by using Name.SUBCOUNT in the Detail section and the numbers
  7678.             below the dashed lines were generated using Name.SUBCOUNT in
  7679.             the Subtotal 1 section
  7680.  
  7681.             If  .SUBCOUNT is used in the Detail area or Subtotal 1 area,
  7682.             level 1 counts  are generated.  If used in Subtotal 2, level
  7683.             2 counts are  used.  If used  in Subtotal 3, level  3 counts
  7684.             are used.
  7685.  
  7686.  
  7687.  
  7688.   162  PRINTING REPORTS
  7689.   ----------------------------------------------------------------------
  7690.  
  7691.        Field.COUNT
  7692.             This option prints the count of the total number of  records
  7693.             that have been printed  so far in the  report.  (All  .COUNT
  7694.             reference are  identical.   F1.COUNT is  always the same  as
  7695.             F2.COUNT which is the same as F3.COUNT, etc.).  
  7696.  
  7697.             Example:
  7698.  
  7699.  
  7700.             #    Name      Company        Amount
  7701.  
  7702.  
  7703.             1    David     Expressware      23.89
  7704.             2    David                       0.00
  7705.             3    David     Microsoft       936.10 
  7706.                  --------- ---------      -------
  7707.                  3         3              3
  7708.  
  7709.             4    Don       MCI               6.23
  7710.             5    Don       AT&T           4857.00
  7711.                  --------- ---------      -------
  7712.                  2         2              2
  7713.  
  7714.             6    Rick                      938.09
  7715.             7    Mary      Boeing            1.11
  7716.                  --------- ---------      -------
  7717.                  2         2              2
  7718.  
  7719.                  ========= =========      =======
  7720.                  7         7              7
  7721.  
  7722.  
  7723.             In this example  the numbers in the #  column were generated
  7724.             by using Name.COUNT  in the Detail  section and the  numbers
  7725.             below  the double dashed lines were generated using F1.COUNT
  7726.             in the Total section.
  7727.  
  7728.             .COUNT  always generates the  same numbers, no  matter which
  7729.             section of the report it is used in.
  7730.  
  7731.  
  7732.  
  7733.                                                    PRINTING REPORTS  163
  7734.   ----------------------------------------------------------------------
  7735.  
  7736.        Field.SUBNBCOUNT
  7737.             This  option prints the count of  the non-blank records that
  7738.             have  been  printed  in the  current  subtotal  level group.
  7739.             (This  count is different from  one field to another because
  7740.             the contents of each field may or may not be blank.)  
  7741.  
  7742.             Example:
  7743.  
  7744.                  Name      Company
  7745.  
  7746.                  David     Expressware
  7747.                  David
  7748.                  David     Microsoft
  7749.                  --------- -------------
  7750.                  3         2
  7751.  
  7752.                  Don       MCI
  7753.                  Don       AT&T
  7754.                  Rick      Sprint
  7755.                            Boeing
  7756.                  --------- -------------
  7757.                  3         4
  7758.  
  7759.  
  7760.             In  this example,  the numbers below  the dashed  lines were
  7761.             generated by  using Name.SUBNBCOUNT in  the Subtotal section
  7762.             for  the Name field  and Company.SUBNBCOUNT in  the Subtotal
  7763.             section for the Company field.  
  7764.  
  7765.             If .SUBNBCOUNT  is used  in the  Detail area  or Subtotal  1
  7766.             area, level 1 non-blank  counts are generated.   If used  in
  7767.             Subtotal 2, level 2 counts are used.  If used in Subtotal 3,
  7768.             level 3 counts are used.
  7769.  
  7770.  
  7771.  
  7772.   164  PRINTING REPORTS
  7773.   ----------------------------------------------------------------------
  7774.  
  7775.        Field.NBCOUNT
  7776.             This  option prints  the  total count  of all  the non-blank
  7777.             records that have been printed so far in the report.  
  7778.  
  7779.             Example:
  7780.  
  7781.                  Name      Company
  7782.  
  7783.                  David     Expressware
  7784.                  Ken
  7785.                  Bill      Microsoft
  7786.                            MCI
  7787.                  Don       AT&T
  7788.                  Rick
  7789.                  Mary      Boeing
  7790.                  ========= =============
  7791.                  6         5
  7792.  
  7793.             In this example, the  numbers below the double  dashed lines
  7794.             were generated by using  Name.NBCOUNT and Company.NBCOUNT in
  7795.             the Total section.
  7796.  
  7797.  
  7798.  
  7799.                                                    PRINTING REPORTS  165
  7800.   ----------------------------------------------------------------------
  7801.  
  7802.        Field.SUBTOTAL
  7803.             This  option  prints  the numeric  subtotal  for  the field.
  7804.             Character fields, unless they contain numeric information or
  7805.             begin with numbers, equate to zeros.  
  7806.  
  7807.             Example:
  7808.  
  7809.  
  7810.                                 Running
  7811.                  Name      Amount    Subtotal
  7812.  
  7813.  
  7814.                  Allen            48.25      48.25
  7815.                  Allen            92.00     140.25
  7816.                  Allen          1947.72    2087.97
  7817.                  ----------     -------
  7818.                        0.00     2087.97
  7819.  
  7820.                  Carla             3.90       3.90
  7821.                  Carla              .23       4.13
  7822.                  Carla           783.26     787.39
  7823.                  Carla          8378.35    9165.74
  7824.                  ----------     -------
  7825.                        0.00     9165.74
  7826.  
  7827.  
  7828.             In this  example, the  numbers below  the dashed  lines were
  7829.             generated  by using Name.SUBTOTAL and Amount.SUBTOTAL in the
  7830.             Subtotal 1  area.  The  numbers under  the Running  Subtotal
  7831.             column were generated by using Amount.SUBTOTAL in the Detail
  7832.             area.
  7833.  
  7834.             If .SUBTOTAL is used in the Detail area or  Subtotal 1 area,
  7835.             level  1 subtotals are  generated which include  the current
  7836.             record being  printed.   If  used  in Subtotal  2,  level  2
  7837.             subtotals are  used.    If  used  in  Subtotal  3,  level  3
  7838.             subtotals are used.
  7839.  
  7840.  
  7841.  
  7842.   166  PRINTING REPORTS
  7843.   ----------------------------------------------------------------------
  7844.  
  7845.        Field.TOTAL
  7846.             This   option  prints  the  numeric  total  for  the  field.
  7847.             Character fields, unless they contain numeric information or
  7848.             begin with numbers, equate to zeros.  
  7849.             Example:
  7850.  
  7851.                                            Running
  7852.                  Name           Amount     Total
  7853.  
  7854.  
  7855.                  Allen            48.25      48.25
  7856.                  Allen            92.00     140.25
  7857.                  Allen          1947.72    2087.97
  7858.                  ----------     -------
  7859.                        0.00     2087.97
  7860.  
  7861.                  Carla             3.90    2091.87
  7862.                  Carla              .23    2092.10
  7863.                  Carla           783.26    2875.36
  7864.                  Carla          6378.35    9253.71
  7865.                  ----------     -------
  7866.                        0.00     7165.74
  7867.  
  7868.                  ==========     =======
  7869.                        0.00     9253.71
  7870.  
  7871.  
  7872.  
  7873.             In  this example, the numbers below  the double dashed lines
  7874.             at  the  bottom  were  generated  by  using  Name.TOTAL  and
  7875.             Amount.TOTAL  in  the Total  area.   The  numbers  under the
  7876.             Running Total column were generated by using Amount.TOTAL in
  7877.             the Detail area.
  7878.  
  7879.  
  7880.  
  7881.                                                    PRINTING REPORTS  167
  7882.   ----------------------------------------------------------------------
  7883.  
  7884.        Field.SUBMIN
  7885.             This  option prints the minimum numeric  value found for the
  7886.             field  in the  current subtotal  group.   Character  fields,
  7887.             unless  they  contain  numeric  information  or  begin  with
  7888.             numbers, equate to zeros.  
  7889.  
  7890.             Example:
  7891.  
  7892.  
  7893.  
  7894.                  Amount    Minimum
  7895.  
  7896.                        
  7897.                    48.25   48.25
  7898.                    92.00   48.25
  7899.                    16.00   16.00
  7900.                  -------
  7901.                    16.00
  7902.  
  7903.                     3.90    3.90
  7904.                      .23     .23
  7905.                   783.26     .23
  7906.                  9378.35     .23
  7907.                  -------
  7908.                      .23
  7909.  
  7910.  
  7911.             In this example,  the numbers  under the  dashed lines  were
  7912.             generated by  using Amount.SUBMIN  in the  Subtotal 1  area.
  7913.             The numbers under the Minimum column were generated by using
  7914.             Amount.SUBMIN in the Detail area giving a "running minimum".
  7915.  
  7916.             If .SUBMIN  is used in  the Detail area or  Subtotal 1 area,
  7917.             level 1  minimums are  generated which  include the  current
  7918.             record being  printed.   If  used  in Subtotal  2,  level  2
  7919.             minimums are used.   If used in Subtotal 3, level 3 minimums
  7920.             are used.
  7921.  
  7922.  
  7923.  
  7924.   168  PRINTING REPORTS
  7925.   ----------------------------------------------------------------------
  7926.  
  7927.        Field.MIN
  7928.             This  option prints the minimum numeric  value found for the
  7929.             field so far.
  7930.  
  7931.                  Amount    Minimum
  7932.  
  7933.                        
  7934.                    48.25   48.25
  7935.                    92.00   48.25
  7936.                    16.00   16.00
  7937.                     3.90    3.90
  7938.                      .23     .23
  7939.                   783.26     .23
  7940.                  9378.35     .23
  7941.                  =======
  7942.                      .23
  7943.  
  7944.             In this example, the number under the double dashed line was
  7945.             generated  by  using  Amount.MIN in  the  Total  area.   The
  7946.             numbers under  the Minimum  column were  generated by  using
  7947.             Amount.MIN in the Detail area.
  7948.  
  7949.  
  7950.  
  7951.                                                    PRINTING REPORTS  169
  7952.   ----------------------------------------------------------------------
  7953.  
  7954.        Field.SUBMAX
  7955.             This  option prints the maximum numeric  value found for the
  7956.             field  in the  current subtotal  group.   Character  fields,
  7957.             unless  they  contain  numeric  information  or  begin  with
  7958.             numbers, equate to zeros.  
  7959.  
  7960.             Example:
  7961.  
  7962.                  Amount    Maximum
  7963.  
  7964.                        
  7965.                    48.25     48.25
  7966.                    92.00     92.00
  7967.                    16.00     92.00
  7968.                  -------
  7969.                    92.00
  7970.  
  7971.                     3.90      3.90
  7972.                      .23      3.90
  7973.                   783.26    783.26
  7974.                  9378.35   9378.35
  7975.                  -------
  7976.                  9378.35
  7977.  
  7978.  
  7979.             In  this example,  the numbers  under the dashed  lines were
  7980.             generated by  using Amount.SUBMAX  in the  Subtotal 1  area.
  7981.             The numbers under the Maximum column were generated by using
  7982.             Amount.SUBMAX in the Detail area.
  7983.  
  7984.             If .SUBMAX  is used in the  Detail area or Subtotal  1 area,
  7985.             level  1 maximums  are generate  which  include the  current
  7986.             record being  printed.   If  used  in Subtotal  2,  level  2
  7987.             maximums are used.  If used in Subtotal 3, level 3  maximums
  7988.             are used.
  7989.  
  7990.  
  7991.  
  7992.   170  PRINTING REPORTS
  7993.   ----------------------------------------------------------------------
  7994.  
  7995.        Field.MAX
  7996.             This  option prints the maximum numeric  value found for the
  7997.             field so far in the report.
  7998.  
  7999.                  Amount    Maximum
  8000.  
  8001.                        
  8002.                    48.25     48.25
  8003.                    92.00     92.00
  8004.                    16.00     92.00
  8005.                     3.90     92.00
  8006.                      .23     92.00
  8007.                   783.26    783.26
  8008.                  9378.35   9378.35
  8009.                  =======
  8010.                  9378.35
  8011.  
  8012.             In this example, the number under the double dashed line was
  8013.             generated  by  using  Amount.MAX in  the  Total  area.   The
  8014.             numbers under  the Maximum  column were  generated by  using
  8015.             Amount.MAX in the Detail area.
  8016.  
  8017.  
  8018.  
  8019.                                                    PRINTING REPORTS  171
  8020.   ----------------------------------------------------------------------
  8021.  
  8022.        Field.SUBAVERAGE
  8023.             This option prints the average numeric value so far for  the
  8024.             field in the current subtotal group.
  8025.  
  8026.                  Amount    Sub Average
  8027.  
  8028.                        
  8029.                    48.25     48.25
  8030.                    92.00     70.13
  8031.                    16.00     52.08
  8032.                  -------
  8033.                    52.08
  8034.  
  8035.                     3.90      3.90
  8036.                      .23      2.07
  8037.                   783.26    262.46
  8038.                  9378.35   2541.44
  8039.                  -------
  8040.                  2541.44
  8041.  
  8042.             In this  example, the  numbers under the  dashed lines  were
  8043.             generated by using Amount.SUBAVERAGE in the Subtotal 1 area.
  8044.             The numbers under  the Sub Average column  were generated by
  8045.             using Amount.SUBAVERAGE in the Detail area.
  8046.  
  8047.             If .SUBAVERAGE  is used  in the  Detail area  or Subtotal  1
  8048.             area,  level  1  averages are  generated  which  include the
  8049.             current record being printed.  If used in Subtotal 2,  level
  8050.             2 averages  are  used.   If  used  in Subtotal  3,  level  3
  8051.             averages are used.
  8052.  
  8053.  
  8054.  
  8055.   172  PRINTING REPORTS
  8056.   ----------------------------------------------------------------------
  8057.  
  8058.        Field.AVERAGE
  8059.             This option prints the average numeric value so far for  the
  8060.             field in the report.
  8061.  
  8062.                  Amount    Average
  8063.  
  8064.                        
  8065.                    48.25     48.25
  8066.                    92.00     70.13
  8067.                    16.00     52.08
  8068.                     3.90     40.04
  8069.                      .23     32.08
  8070.                   783.26    157.27
  8071.                  9378.35   1474.57
  8072.                  =======
  8073.                  1474.57
  8074.  
  8075.             In this example, the number under the double dashed line was
  8076.             generated by using  Amount.AVERAGE in the  Total area.   The
  8077.             numbers under  the Average  column were  generated by  using
  8078.             Amount.AVERAGE in the Detail area.
  8079.  
  8080.  
  8081.  
  8082.                                                    PRINTING REPORTS  173
  8083.   ----------------------------------------------------------------------
  8084.  
  8085.   Calculated Fields
  8086.        File  Express lets  you  define calculated  fields  that are  not
  8087.        actually  part of  the database  record  definition but  are just
  8088.        calculated and  printed on the report.   To create such  a field,
  8089.        move the cursor to where you want the field and press <Alt-C>.  
  8090.  
  8091.        The first  choice takes  you through  the process  of defining  a
  8092.        calculated field.  
  8093.  
  8094.                      Enter NAME of field? ___________
  8095.  
  8096.        Select a name, up to twelve characters, and press <Enter>.   File
  8097.        Express asks you to:
  8098.  
  8099.             Enter TYPE of Calc field, <N>umeric, or <T>ext? N
  8100.  
  8101.        Calculated fields can be either Character or Numeric.  Select the
  8102.        appropriate field type.  Next, File Express prompts you to:
  8103.  
  8104.        Enter formula for this field, or <Alt-L>ist Quick Functions:
  8105.  
  8106.        Type in the formula you want calculated and press  <Enter>, or if
  8107.        you want to use  one of the  Quick Functions, press <Alt-L>  (see
  8108.        description of Quick Functions below).
  8109.  
  8110.        The final two inquiries are:
  8111.  
  8112.                          Enter LENGTH of field? 
  8113.  
  8114.        If the field was numeric, the final prompt is:
  8115.  
  8116.                          How many decimal places?
  8117.  
  8118.        The maximum number of decimal places is  9.  After this prompt is
  8119.        answered,  the  field is  placed  on  the  report at  the  cursor
  8120.        position.
  8121.  
  8122.  
  8123.   Quick Functions
  8124.        There are many functions in the File Express formula handler that
  8125.        require no parameters and return a single piece of information or
  8126.        control  formatting  of  your  report.   These  functions  can be
  8127.        entered as a  formula as described above  or you can select  them
  8128.        directly from the list, bypassing the additional information that
  8129.        File Express  normally asks for,  like type, length,  and decimal
  8130.        places.  We call these functions Quick Functions.
  8131.  
  8132.        For example,  if you want to put the  page number on your report,
  8133.        move the cursor to where you want the  number, press <Alt-C>, for
  8134.        a Formula  field, and  then, instead  of entering  a field  name,
  8135.  
  8136.  
  8137.  
  8138.   174  PRINTING REPORTS
  8139.   ----------------------------------------------------------------------
  8140.  
  8141.        press <Alt-L> to bring up the list of Quick Functions,  highlight
  8142.        the PAGE selection and press <Enter>.  
  8143.  
  8144.        Here is what each Quick Function does:
  8145.  
  8146.  
  8147.        BLANKLINE Forces a blank  line to be printed, even  if the Remove
  8148.                  Blank Lines option is set to YES.
  8149.  
  8150.        DAYABBV   Returns the three-character  day abbreviation from  the
  8151.                  system date.   Takes  three characters.    Note:   This
  8152.                  function  also accepts a  date parameter but  to use it
  8153.                  this  way  you must  enter  the function  as  an actual
  8154.                  formula.
  8155.  
  8156.        DAYNAME   Returns  the name  of the day  from the  current system
  8157.                  date.  Takes nine  characters.    Note:  This  function
  8158.                  also accepts a date  parameter but to  use it this  way
  8159.                  you must enter the function as an actual formula.
  8160.  
  8161.        LINE      Returns  the current line  number on the  current page.
  8162.                  Takes three characters.
  8163.  
  8164.        MILTIME   Returns  the current  system time  in  24 hour  format.
  8165.                  Takes five characters.
  8166.  
  8167.        MONTHABBV Returns the standard abbreviation of the month from the
  8168.                  system  date.   Takes  three characters.   Note:   This
  8169.                  function also  accepts a date  parameter but to  use it
  8170.                  this way  you  must enter  the  function as  an  actual
  8171.                  formula.
  8172.  
  8173.        MONTHNAME Returns the name of the  month from the current  system
  8174.                  date.    Note:    This  function  also  accepts  a date
  8175.                  parameter but  to use  it this way  you must  enter the
  8176.                  function as an actual formula.
  8177.  
  8178.        NEWPAGE   Causes File Express to move to the next  page, printing
  8179.                  Titles  and Headings  if  needed,  before printing  the
  8180.                  current line.
  8181.  
  8182.        NOLINEFEED     Suppresses  the linefeed  character normally  sent
  8183.                       out at the  end of each line sent  to the printer.
  8184.                       This  is  often  used to  underline  some  text by
  8185.                       putting the underline  characters on the following
  8186.                       line directly under the text to be underlined.
  8187.  
  8188.        PAGE      Returns the current page number.  Takes 5 characters.
  8189.  
  8190.        TIME      Returns  the current  system time  in  12 hour  format.
  8191.                  Takes five characters.
  8192.  
  8193.  
  8194.  
  8195.                                                    PRINTING REPORTS  175
  8196.   ----------------------------------------------------------------------
  8197.  
  8198.        TODAY     Prints the  current date  in the  current date  format.
  8199.                  Takes  eight or ten characters depending on the default
  8200.                  date format.
  8201.  
  8202.        YEAR      Returns the year  from the current system  date.  Takes
  8203.                  four characters.
  8204.  
  8205.  
  8206.   Using Formulas In Reports 
  8207.        This  section  describes  some highlights  of  using  formulas in
  8208.        reports.   We do not  describe exactly how  to set  up particular
  8209.        formulas  and calculations here because formulas are discussed in
  8210.        depth in the Formulas chapter, later in this manual. 
  8211.  
  8212.        Most  people  think  of  a  formula  as a  mathematical  equation
  8213.        performed on  one or  more fields,  such as  multiplying a  price
  8214.        times units  sold, or adding together some  numbers.  In the File
  8215.        Express Report Writer, a formula is exactly that, and much  more.
  8216.        Formulas can perform many functions: 
  8217.  
  8218.      
  8219.             Math calculations (+  -  *  /  ^  %  and  or  not  mod)    
  8220.             Math functions  (sine, cosine,  tangent, logarithms,  square
  8221.             root)   
  8222.             Date arithmetic (Age function, FutureDate)    
  8223.             Rounding    
  8224.             Formatting (decimals, floating $, justification, zero fill)
  8225.             Concatenation of fields, with or without a space between 
  8226.             Text string manipulation (instring, case conversion, trim)
  8227.             If/Then  comparisons (EQ   LT    LE   GT   GE   NE,  nesting
  8228.             permitted)   
  8229.             Reference field values in prior record    
  8230.             Access running  subtotals, totals, averages,  counts for all
  8231.             fields 
  8232.             Print horizontal bar graphs on reports    
  8233.             Access report variables  (page number, line counter,  top of
  8234.             page)  
  8235.             Set report switches (new page, no line feed, skip line)    
  8236.             Date and time functions (various formats, age arithmetic) 
  8237.  
  8238.        Once again, this  section does not describe  how to do  all these
  8239.        things.    See  the  chapter  titled  Formulas   for  a  detailed
  8240.        explanation.  
  8241.  
  8242.        Formula Name 
  8243.        When a  formula is  entered on  the report  format, File  Express
  8244.        prompts for some additional information.  The first prompt is for
  8245.        a name to give the  formula.  If you don't  plan to refer to  the
  8246.        formula by  name, just  press <Enter> and  leave the  name blank.
  8247.        File Express automatically assigns it  a name (Formula 1, Formula
  8248.        2, etc.) in case you decide to refer to it later. 
  8249.  
  8250.  
  8251.  
  8252.   176  PRINTING REPORTS
  8253.   ----------------------------------------------------------------------
  8254.  
  8255.        Enter  any  name  up to  twelve  characters,  preferably one  not
  8256.        already used by a field or another formula. 
  8257.  
  8258.        Formulas can refer to one another  by name.  For example, suppose
  8259.        your report includes the formula: Price * Units and you give this
  8260.        formula  the name  "Extended".   Further  down the  page you  can
  8261.        compute sales  tax with  the formula:  Extended  * .081.   A  new
  8262.        formula can  only reference another formula which comes before it
  8263.        in the report.  By "comes before it" we mean that  the referenced
  8264.        formula is calculated before the new formula in the Detail  area.
  8265.        File  Express processes formulas in the current processing order.
  8266.        This processing order  can be changed whenever you  need to.  See
  8267.        Field Order under Changing Fields on the next page.
  8268.  
  8269.  
  8270.        Formula Length and Decimals 
  8271.        After  you enter  the  formula name  (or  press <Enter>)  another
  8272.        prompt  appears asking  for the  formula  length.   A length  has
  8273.        already been filled in for you, which is File Express' best guess
  8274.        of  the length  you need.   You can  specify a longer  or shorter
  8275.        length if you like.  For example, the formula: 
  8276.  
  8277.                                 first name & last name 
  8278.  
  8279.        tells  File Express to put the first  name and last name together
  8280.        with only  a single space  between them.   If the two  fields are
  8281.        printed in separate columns, they look like: 
  8282.  
  8283.             John           Doe                               
  8284.             Jonathan       Carpenter                               
  8285.             Jim            Smith 
  8286.  
  8287.        But by  using the formula  above, the two fields  can be combined
  8288.        into a single field so they are adjacent: 
  8289.  
  8290.             John Doe                               
  8291.             Jonathan Carpenter                               
  8292.             Jim Smith 
  8293.  
  8294.        How wide should  the field be that  holds this formula?   You can
  8295.        only assume that  it is possible for both the first and last name
  8296.        to fill up their  fields.  So, add the length of  the two fields,
  8297.        add one more for the space in  between, and use the answer as the
  8298.        value in  the length  prompt.   If you  decide the  field can  be
  8299.        shorter,  and  are  willing to  take  a chance  on  losing  a few
  8300.        characters  occasionally,  you  can   specify  a  shorter  length
  8301.        instead.  You  can also  enter a larger  length value, but  there
  8302.        would be no benefit in doing so for this formula. 
  8303.  
  8304.        Formulas which  return keyword  values, such  as today's  date or
  8305.        this month's  name,  compute a  length  which holds  the  largest
  8306.  
  8307.  
  8308.  
  8309.                                                    PRINTING REPORTS  177
  8310.   ----------------------------------------------------------------------
  8311.  
  8312.        contents  the  field  can  receive.     For  example,  a  formula
  8313.        specifying  month name  has a  length  of 9,  to accommodate  the
  8314.        longest month name, September. 
  8315.  
  8316.        Formulas which return numeric results  always default to a length
  8317.        of ten.   If your number  is likely to  be more or less  than ten
  8318.        characters,  including  decimal  places,  commas, decimal  point,
  8319.        dollar sign and minus sign, change the length value. 
  8320.  
  8321.        If a formula has  a numeric result, File Express prompts  for the
  8322.        number  of decimal places.  The  default is two decimals, and may
  8323.        be changed to any value from 0 to 12. 
  8324.  
  8325.  
  8326.  
  8327.   178  PRINTING REPORTS
  8328.   ----------------------------------------------------------------------
  8329.  
  8330.   Changing Fields
  8331.        Once a field has been placed on the report format, you can remove
  8332.        it or change  its length.  To  make one of these  changes, simply
  8333.        move the cursor so that it is  on top of the desired field.  When
  8334.        you have  done this, a  new prompt appears  at the bottom  of the
  8335.        screen:
  8336.  
  8337.             <Alt>:   <R>emove  <S>ize to print  <O>rder fields
  8338.  
  8339.        Removing a Field
  8340.        To remove  the field,  press <Alt-R>.   File  Express blinks  the
  8341.        field and asks:
  8342.  
  8343.             "Are you sure you want to REMOVE THIS FIELD (Y/N)? N"
  8344.  
  8345.        If you are sure that you want  the field removed from the report,
  8346.        press <Y>.  The blinking field portion is erased.  
  8347.  
  8348.        Changing the Printed Field Length
  8349.        To change the  length of the field that is printed on the report,
  8350.        press <Alt-S> while the cursor is on top of the field.  The field
  8351.        starts blinking and the prompt at the bottom of the screen is:
  8352.  
  8353.        Actual  field  length=xx,   Maximum  Display  length=yy,  Display
  8354.        length=<zz>
  8355.  
  8356.        To change the length of the field, use the cursor keys to shorten
  8357.        or lengthen the blinking squares.  A regular field (as opposed to
  8358.        a Window field)  may be shortened to one  character or lengthened
  8359.        to whatever fits on the report line.  A field cannot be stretched
  8360.        over another field but can be stretched over existing text on the
  8361.        screen.  If  the field  is stretched  over text  and then  shrunk
  8362.        back, the overwritten text reappears.  If the field was placed as
  8363.        a Window field,  then the whole block blinks  and can be re-sized
  8364.        with the cursor keys.  
  8365.  
  8366.        Field Order
  8367.        As  you place fields  in each  area of  the report,  File Express
  8368.        keeps track of the order in which you placed them.  When it comes
  8369.        time  to print the report,  the fields are  processed in the same
  8370.        order.  The  only time this is important is when you are defining
  8371.        calculated fields that depend on the results  of other calculated
  8372.        fields.  If you  want to change the calculation order,  place the
  8373.        cursor over  any field on  the screen  and press  <Alt-O>.   File
  8374.        Express asks:
  8375.  
  8376.      Do you want to <S>et the field order or <T>est the order [S/T]?
  8377.  
  8378.        To  see the current  processing order, press  <T>.   To reset the
  8379.        processing order, press <S>.  File Express blinks all the  fields
  8380.  
  8381.  
  8382.  
  8383.                                                    PRINTING REPORTS  179
  8384.   ----------------------------------------------------------------------
  8385.  
  8386.        and asks you to  reset the order by  moving the cursor on top  of
  8387.        each field and press <Enter> in the desired calculation sequence.
  8388.  
  8389.  
  8390.   Drawing Lines
  8391.        File Express has a powerful line drawing mode that makes  it easy
  8392.        to draw lines and boxes on your report layout.  
  8393.  
  8394.        Note: Before using  the line drawing feature on  your report, you
  8395.        should make sure  your printer prints the lines  correctly.  Many
  8396.        printers substitute  another character  for each  line character.
  8397.        Sometimes there  are DIP  switches that can  be set  so that  the
  8398.        printer will print the line drawing characters.  This information
  8399.        will be located in your printer manual.
  8400.  
  8401.        There are two keys that control the line drawing option,  <Alt-L>
  8402.        and <Alt-B>.  Pressing <Alt-L> toggles the line drawing option on
  8403.        and  off.  The  status is always  displayed at the  bottom of the
  8404.        screen.  When  the Line option is ON, you can use the cursor keys
  8405.        to move around the report layout drawing lines in the current Box
  8406.        style.   Whenever  a line  intersects  another line,  the correct
  8407.        intersection character is automatically drawn for the current Box
  8408.        style.
  8409.  
  8410.  
  8411.   Changing the Box Style
  8412.        File Express provides eight different line drawing character sets
  8413.        along with an option to ERASE lines as the  cursor is moved.  The
  8414.        Box styles are:
  8415.  
  8416.                               
  8417.                  Registered Version has screen picture here
  8418.                               
  8419.  
  8420.        The current  Box style is always  displayed at the  bottom of the
  8421.        screen.  To  change the  current Box style,  press <Alt-B>.   The
  8422.        character set changes to  the next style.   Repeated pressing  of
  8423.        <Alt-B> rotates  through the eight  available Box styles  and the
  8424.        ERASE option.   When you have selected  the desired Box style and
  8425.        the Line option is turned on, you can then use the cursor keys to
  8426.        draw lines and boxes.   If the cursor is  not at the point  where
  8427.        you want to start drawing, press  <Alt-L> to turn the Line option
  8428.        OFF and then move the cursor to the desired starting position and
  8429.        then press <Alt-L> to turn the Line option back on.
  8430.  
  8431.  
  8432.  
  8433.   180  PRINTING REPORTS
  8434.   ----------------------------------------------------------------------
  8435.  
  8436.        As you are  drawing lines and  boxes you should  be aware of  the
  8437.        following rules.
  8438.  
  8439.             Lines can be drawn anywhere on the report layout except over
  8440.             fields.  This  means that you can draw a line right over any
  8441.             existing text that you have previously typed.
  8442.  
  8443.             When attempting  to draw  a line  over a  field, the  cursor
  8444.             moves normally  but no  line is drawn  until the  cursor has
  8445.             moved off the field. 
  8446.  
  8447.             Lines can't  be drawn  off the  top, bottom,  left or  right
  8448.             edges of the report.
  8449.  
  8450.  
  8451.  
  8452.                                                    PRINTING REPORTS  181
  8453.   ----------------------------------------------------------------------
  8454.  
  8455.   Optional Specifications Screen 
  8456.        After the report format has been defined, press <F10> to  display
  8457.        the Report Optional Specifications screen: 
  8458.  
  8459.  
  8460.  
  8461.  
  8462.  
  8463.  
  8464.                  Registered Version has screen picture here
  8465.  
  8466.  
  8467.  
  8468.  
  8469.  
  8470.  
  8471.  
  8472.  
  8473.  
  8474.  
  8475.        This screen contains various options which could not be specified
  8476.        in  the format definition, because they were not format-oriented.
  8477.        These  options  are  all  related to  the  report  layout;  i.e.,
  8478.        positioning the report  on the paper, printing  headings, totals,
  8479.        etc.  The next  few paragraphs list the options and describe them
  8480.        in detail. 
  8481.  
  8482.        Print TITLE on <F>irst, <A>ll or <N>o pages 
  8483.        The  first lines  to print  on  every page  normally contain  the
  8484.        information from the Title area of the Report Layout.  To include
  8485.        this title on only the first page of the report, specify <F>.  To
  8486.        exclude the title  from all pages, specify  <N>.  To restore  the
  8487.        title to all pages (the default), press <A>.
  8488.  
  8489.  
  8490.        Print HEADINGS on <F>irst, <A>ll or <N>o pages 
  8491.        The heading lines  created on the  Report Format screen  normally
  8492.        print on all pages.  If  a title was specified, it prints  first,
  8493.        followed by the heading lines.  To include these headings on only
  8494.        the  first page  of  the report,  specify  <F>.   To  exclude the
  8495.        headings from all pages, specify <N>.  To restore the headings to
  8496.        all pages (the default), press <A>.
  8497.  
  8498.  
  8499.        Print FOOTERS on <F>irst, <A>ll or <N>o pages 
  8500.        The Footer  section is  normally printed  at the  bottom of  each
  8501.        page.  To  include the Footer section  on only the first  page of
  8502.        the report, specify <F>.  To  exclude the footers from all pages,
  8503.        specify <N>.  To restore the footers to  all pages (the default),
  8504.        press <A>.
  8505.  
  8506.  
  8507.  
  8508.   182  PRINTING REPORTS
  8509.   ----------------------------------------------------------------------
  8510.  
  8511.        Print DETAIL area  <Y>es or <N>o
  8512.        The Detail area  is normally printed for each  record included on
  8513.        your  report.   If you  want  to turn  off the  printing  of this
  8514.        section, set this option  to <N>.  Example:  You  want to print a
  8515.        Zip Code report to find out  how many records there are for  each
  8516.        zip code but  you don't want  to see all the  individual records.
  8517.        Your report layout looks like this:
  8518.  
  8519.  
  8520.        Detail area:        CUSTOMER            ZIP CODE  
  8521.  
  8522.  
  8523.                                                ----------
  8524.        Subtotal 1 area:    ZIP CODE            ZIP CODE.COUNT
  8525.  
  8526.  
  8527.        If you print the Detail area,  all the records for each zip  code
  8528.        print  before the subtotal count.   Since you  don't need all the
  8529.        individual information, set the Print DETAIL area to <N>o.   Now,
  8530.        when the report is printed, only the subtotal counts are  printed
  8531.        next to the Zip Code.  The report looks something like this:
  8532.  
  8533.                              09345    16
  8534.                              10472    29
  8535.                              10529   128
  8536.                              11930     3
  8537.                              12900    89
  8538.                                 etc.
  8539.        The report,  which could end  up being many,  many pages, is  now
  8540.        very  short and  concise and  contains  only the  information you
  8541.        want.
  8542.  
  8543.  
  8544.        Print SUBTOTAL areas  <Y>es or <N>o
  8545.        If you  have a  report format including  entries in  the Subtotal
  8546.        areas, you can turn off the subtotal printing by answering <N>o.
  8547.  
  8548.  
  8549.        Print TOTAL area <Y>es or <N>o
  8550.        If  you have a report format including entries in the Total area,
  8551.        you can turn off the total printing by answering <N>o.
  8552.  
  8553.  
  8554.        Remove blank detail lines from report, <Y>es or <N>o 
  8555.        The Report Writer constructs  each detail line  from the data  in
  8556.        the record, then writes  it to the  printer.  After  substituting
  8557.        the  data from the record onto the  detail line, sometimes a line
  8558.        is completely  empty, so  it takes  up unnecessary  space on  the
  8559.        report.   If  you want  blank  lines  to be  removed  (i.e.,  not
  8560.        printed), specify <Y>es. 
  8561.  
  8562.  
  8563.  
  8564.                                                    PRINTING REPORTS  183
  8565.   ----------------------------------------------------------------------
  8566.                                      empty
  8567.  
  8568.  
  8569.  
  8570.   184  PRINTING REPORTS
  8571.   ----------------------------------------------------------------------
  8572.  
  8573.        This option  does  not remove  lines  of the  report  which  were
  8574.        intentionally left blank (i.e.,  they have no  fields or text  in
  8575.        them).   File  Express assumes  you  intended those  lines to  be
  8576.        printed,  to provide  separation between  records  or to  improve
  8577.        readability. 
  8578.  
  8579.        Sometimes a  report generates blank lines which  you want deleted
  8580.        and other blank  lines which you want  to remain.   To accomplish
  8581.        this,  specify <Y>es  to  the "Remove  blank  lines from  report"
  8582.        prompt, then on each line which is to always print blank, include
  8583.        a  formula on  the line with  the keyword  BLANKLINE in it.   The
  8584.        formula field may be anywhere on the line, and may be any length.
  8585.        The formula  displays as  spaces, but  ensures that  the line  is
  8586.        always printed, whether it is blank or not. 
  8587.  
  8588.  
  8589.        Double-space detail lines, <Y>es or <N>o 
  8590.        Detail lines are normally printed single-spaced; i.e. printed one
  8591.        after another with no blank lines between them except blank lines
  8592.        you have specifically asked  for.  Sometimes  it is desirable  to
  8593.        have a blank  line after each detail  line on a report,  to leave
  8594.        space  for  writing notes  or  just to  provide  some separation.
  8595.        Specify <Y>es for this option if double-spacing is desired. 
  8596.  
  8597.        Double-spacing may also be accomplished by including a blank line
  8598.        in the format  following each detail line.  In  either case, File
  8599.        Express  keeps  track  of   end-of-page  and  headings  properly,
  8600.        printing only half as many detail lines per page, and inserting a
  8601.        blank line between each.  
  8602.  
  8603.        One-and-a-half spacing of  Detail lines is also possible, even if
  8604.        your  printer  doesn't  support  it.     Specify  <Y>es  for  the
  8605.        double-space   option,  and   specify   line  spacing   of  eight
  8606.        lines-per-inch.  Double-spacing  at 8 lpi  prints four lines  per
  8607.        vertical inch,  which is  equivalent to 6  lpi with  a half-space
  8608.        between each detail line. 
  8609.  
  8610.  
  8611.        Split records over page break, <Y>es or <N>o 
  8612.        This message  only applies  on reports  containing more than  one
  8613.        detail line.   Specifying  <Y>es tells File  Express that  it can
  8614.        print  some of the detail  lines for a record at  the bottom of a
  8615.        page, then print the remaining lines at the top of the next page.
  8616.        If you want all the detail lines to stay  together, specify <N>o.
  8617.        File Express checks to make sure there is enough room for all the
  8618.        lines in the  record, and  if there  isn't, skips to  a new  page
  8619.        before printing them. 
  8620.  
  8621.  
  8622.  
  8623.                                                    PRINTING REPORTS  185
  8624.   ----------------------------------------------------------------------
  8625.  
  8626.        Print subtotal for single records, <Y>es or <N>o
  8627.        If a  subtotal  group  contains  only one  record,  File  Express
  8628.        normally skips printing a subtotal for it because the information
  8629.        is redundant.   If you  want to  force these subtotals  to print,
  8630.        answer <Y> to  this question.  Subtotals for  single records look
  8631.        something like this:
  8632.  
  8633.                  Bill Smith     16
  8634.                                 --
  8635.                                 16
  8636.  
  8637.                  Mary Thompson  39
  8638.                                 --
  8639.                                 39
  8640.        Record Selection:
  8641.        The final prompt on the Optional Specification screen asks  which
  8642.        records to print  on the report.   When you move to  this prompt,
  8643.        the Record Selection screen displays.  This is a familiar screen,
  8644.        identical to the one used when finding records.  To include every
  8645.        record  on your  report, enter  "ALL".   To  print only  selected
  8646.        records, enter the selection criteria.  For a detailed discussion
  8647.        of the  valid  keywords  and operands,  see  the  section  titled
  8648.        Finding Records.
  8649.  
  8650.        When you are  satisfied that  all the answers  on the screen  are
  8651.        correct, press <Esc> to return to the Report Sub-menu or <F10> to
  8652.        continue on to the Output Options screen.
  8653.  
  8654.   Report Output Options 
  8655.        The  last  screen to  display  is  one  whose fields  pertain  to
  8656.        physical  aspects of  your  report,  the  Report  Output  Options
  8657.        screen:
  8658.  
  8659.  
  8660.  
  8661.   186  PRINTING REPORTS
  8662.   ----------------------------------------------------------------------
  8663.  
  8664.        All the  fields have  the most commonly  used default  values, so
  8665.        just  press <F10>  if  all  the options  are  correct.   If  your
  8666.        computer  system uses different  options, it is  not necessary to
  8667.        change these  fields every time  you run  a report.   The default
  8668.        values on this screen (as  on many other screens) may be  changed
  8669.        to  match your  computer and  printer.   See  the chapter  titled
  8670.        Customizing  File Express  for more information.   Each  of these
  8671.        options are saved  as part of the report layout file, so when you
  8672.        reload the  report, the  answers are preserved.   The  prompts on
  8673.        this screen are discussed in the following paragraphs. 
  8674.  
  8675.        Write to <S>creen, <P>rinter, <D>isk, or <A>ll 
  8676.        The report always appears on the screen.  To write it only on the
  8677.        screen and nowhere  else, enter <S>.   To write it to  the screen
  8678.        and the printer, enter <P>.  To write it  to the screen and disk,
  8679.        enter <D>.  To  write it to the screen, disk,  and printer, press
  8680.        <A>.
  8681.  
  8682.        When <D> or <A> is entered, you  are prompted for the Output File
  8683.        name.  Any valid DOS file name may be used.  A drive letter, path
  8684.        and extension may  also be included.   If  they are omitted,  the
  8685.        file is written to  the drive and  path containing the  database,
  8686.        with no extension. 
  8687.  
  8688.        When <D>isk is  specified, the characters  written into the  disk
  8689.        file are identical to those that go to the printer when <P>rinter
  8690.        is specified.  This lets the disk file later be printed using the
  8691.        DOS PRINT command or  other spooling utility.   Consequently, the
  8692.        disk  file  may contain  control  codes  such  as form  feeds  or
  8693.        compressed print codes.  If you are writing the report to disk to
  8694.        edit with  your word  processor, these codes  appear in  the word
  8695.        processing document as special symbols, and may be removed. 
  8696.  
  8697.  
  8698.        Left column to print / Right column to print 
  8699.        With  these two options, you can print  a segment from the middle
  8700.        of your report.  This option is most commonly used when writing a
  8701.        wide report to the screen, to  see the right side of the  report.
  8702.        It can  also be used to print a wide  report on a narrow printer.
  8703.        Run the left side of the report, then run the right side and tape
  8704.        them together. 
  8705.  
  8706.        Page number for first page (0-32000) 
  8707.        File Express  usually numbers  the first  page of  the report  as
  8708.        "Page  1".  Sometimes  it is desirable  to start the  page number
  8709.        with a higher value.  For example, if  you have a series of three
  8710.        lengthy reports  which comprise  a set, the  page numbers  on the
  8711.        second report can begin where the first report ends, and likewise
  8712.        for the  third report.   Any  number from  zero to  32000 may  be
  8713.        specified.  The number  is used as  the starting number  whenever
  8714.  
  8715.  
  8716.  
  8717.                                                    PRINTING REPORTS  187
  8718.   ----------------------------------------------------------------------
  8719.  
  8720.        you have  the  page  number  printing  on  your  report,  and  is
  8721.        incremented by 1 on each subsequent page. 
  8722.  
  8723.  
  8724.  
  8725.   188  PRINTING REPORTS
  8726.   ----------------------------------------------------------------------
  8727.  
  8728.        From page number / To page number 
  8729.        The defaults for  these two operands are <1>  to <32000>, meaning
  8730.        that  the  entire  report is  to  be  printed.   Sometimes  it is
  8731.        desirable to exclude part  of a report,  maybe because a  printer
  8732.        malfunction destroyed a  few pages which must be  reprinted.  For
  8733.        example,  to  print only  pages  20 through  25  of a  fifty page
  8734.        report, enter 20 as  the From Page Number  and 25 as the  To Page
  8735.        Number.  To print from  page 10 to the end of a  report, enter 10
  8736.        in the From Page Number and 32000 in the To Page Number. 
  8737.  
  8738.        The pages  are built exactly  as they would  have printed  if the
  8739.        entire report had been run, but only those pages in the  selected
  8740.        range are actually printed.   Keep in mind that if  the From Page
  8741.        Number is greater than  1, File Express must still go through all
  8742.        the motions of printing the earlier pages, even though they don't
  8743.        get written to  the screen, printer  or disk.   There is a  pause
  8744.        while  these pages  are being  processed,  then printing  begins.
  8745.        There is no pause at the end,  even if the To Page Number is much
  8746.        smaller than 32000. 
  8747.  
  8748.        <C>ontinuous printing or <P>ause after each page 
  8749.        Selecting <C>ontinuous causes the report to print every page, one
  8750.        after  another, until  the report  is  finished.   If <P>ause  is
  8751.        selected, the first page prints, then this message appears: 
  8752.  
  8753.            Press any key to print next page, or <Esc> to exit 
  8754.  
  8755.        The <P>ause option is useful when your printer uses single sheets
  8756.        of paper.   One  page is  printed,  then File  Express pauses  so
  8757.        another sheet of paper can be inserted. 
  8758.  
  8759.  
  8760.   Printer Options
  8761.        File Express  offers some additional printer options  you may not
  8762.        need at first,  but which are very  handy when you do  need them.
  8763.        These  options  give  you  the  capability  of  changing  printer
  8764.        definition  files, printer ports, line and character spacing, and
  8765.        optional printer control strings.
  8766.  
  8767.        To pull up the Printer Options menu, press <Alt-S> while  viewing
  8768.        the Report Output Options:
  8769.  
  8770.  
  8771.  
  8772.                                                    PRINTING REPORTS  189
  8773.   ----------------------------------------------------------------------
  8774.  
  8775.        Printer Definition File
  8776.        Printer  definition files, (PDF  files), contain all  the printer
  8777.        codes used  by  File Express  to  control the  features  of  your
  8778.        printer.  If you have used the Setup program that comes with File
  8779.        Express, you have  probably selected the PDF file  that goes with
  8780.        your printer.   If you have not  selected a printer, File Express
  8781.        uses codes for an Epson MX80 printer, which are also used by many
  8782.        other makes.
  8783.  
  8784.        Many  people  have  more  than  one printer  connected  to  their
  8785.        computer and need the  capability of switching  PDF files on  the
  8786.        fly so different reports can be sent to different printers.
  8787.  
  8788.        To  select a  different printer  definition  file, press  <Alt-S>
  8789.        while  viewing the  Printer Options  window.   A  window pops  up
  8790.        containing a  list  of all  the PDF  files found  in the  program
  8791.        directory.  Move the highlighted bar to the file name you want to
  8792.        select and press <Enter>.
  8793.  
  8794.        Printer port <1>, <2>, <3>, or <D>efault (LPTx) 
  8795.        If your computer has  more than one printer, use this  command to
  8796.        route the  report to a  second or  third printer.   File  Express
  8797.        defaults to LPT1,  which is the standard port  for most printers.
  8798.        If you  have changed  your printer definition  file to  send your
  8799.        printer output to  a port  other than LPT1,  the LPTx shows  your
  8800.        default port. 
  8801.  
  8802.        Technical  Note:  Sometimes  a  computer  has  a  serial  printer
  8803.        attached to  its COM1 or  COM2 serial port.   Using the  DOS MODE
  8804.        command, it  is possible  to reassign LPT  output to a  COM port.
  8805.        The MODE command must be entered each time your system is booted,
  8806.        before printing.   The  MODE command is  usually included  in the
  8807.        AUTOEXEC.BAT file.  The command is: MODE LPT#:=COMn where # is 1,
  8808.        2  or  3 and  n  is  1  or 2.    See  your  DOS manual  for  more
  8809.        information.  Reports can only be sent to LPT devices. 
  8810.  
  8811.        Use Form Feeds, <Y>es or <N>o 
  8812.        Since  File Express knows  how long  your paper  is, and  it also
  8813.        counts the lines as it prints, the paper is normally  advanced to
  8814.        a  new page by printing  several blank lines.   Most people never
  8815.        need to change this option from  its default of <N>o.  But  there
  8816.        are a  few  applications where  counting lines  is not  adequate.
  8817.        Sometimes the printer needs  a form feed character sent to  it in
  8818.        order to properly  advance the paper.  Earlier  we mentioned that
  8819.        form feeding is necessary when using a line height which does not
  8820.        divide evenly into  the paper length.  The  form feed re-synchro-
  8821.        nizes the report with the top of the new page. 
  8822.  
  8823.        Some  laser printers  require a  form feed  character  before the
  8824.        paper  is ejected  into the  output  bin.   Some multi-bin  paper
  8825.        feeders  need a  form feed  character  to select  paper from  the
  8826.  
  8827.  
  8828.  
  8829.   190  PRINTING REPORTS
  8830.   ----------------------------------------------------------------------
  8831.  
  8832.        proper bin.   Some  printers eject  paper much  faster when  form
  8833.        feeds  are used  instead of a  series of  blank lines.   In those
  8834.        applications, specify <Y>es for this option. 
  8835.  
  8836.        When  File  Express  prints  a report  without  form  feeds,  the
  8837.        top-of-form  position of your  printer is ignored.   File Express
  8838.        simply  starts printing  wherever the  paper  is positioned,  and
  8839.        includes enough blank lines to get to the top of each page.   But
  8840.        when using  form feeds with  a regular tractor-feed  printer, the
  8841.        printer's top-of-form must  be properly set,  or else the  second
  8842.        and  subsequent   pages  do   print  in   the  proper   position.
  8843.        Top-of-form  detection is a physical aspect of your printer which
  8844.        varies from model to model.  Typically it can be set by position-
  8845.        ing the paper so  the perforation is just  above the print  head,
  8846.        then pressing a  button labelled Top or TOF.   Some printers must
  8847.        be powered off and back on to  set top-of-form.  See your printer
  8848.        operation manual for further details. 
  8849.  
  8850.        Line spacing - <6>, <8> or <S>pecial lines per inch 
  8851.        Most printers are  configured to print six lines  per inch (lpi),
  8852.        but  have  an option  for selecting  8 lpi  vertical spacing.   A
  8853.        report printed at 8 lpi is usually  a bit harder to read, because
  8854.        the lines are  much closer together.  Sometimes  8 lpi causes the
  8855.        tops of  some  upper case  characters  to touch  the  bottoms  of
  8856.        characters with descenders like p, j and y. 
  8857.  
  8858.        A 100-page report printed  at 6 lpi uses only 65 to 70 pages when
  8859.        printed at 8  lpi, because more detail  lines fit on a  page, and
  8860.        fewer overhead  lines (titles and  headings) need to  be printed.
  8861.        The report still  prints at the same  speed, although there  is a
  8862.        small time saving since fewer headings are printed. 
  8863.  
  8864.        When   an  8  lpi   report  is   double-spaced,  the   effect  is
  8865.        one-and-a-half  spacing.   Double-spacing at  8  lpi prints  four
  8866.        lines per  vertical inch,  which is  equivalent to 6  lpi with  a
  8867.        half-space between each detail line. 
  8868.  
  8869.        When you  selecting <6>  or <8>,  File Express  uses the  printer
  8870.        codes found  in the  current printer  definition file.   You  can
  8871.        override these codes by selecting <S>pecial.
  8872.  
  8873.        <R>egular, <C>ompressed, <T>welve or <S>pecial pitch 
  8874.        If  your  printer  is  capable  of  printing  in  compressed   or
  8875.        twelve-pitch  (sometimes called Elite) mode, selecting <C> or <T>
  8876.        causes special printer control  codes to be  sent to the  printer
  8877.        before the  report  begins.   Most  dot matrix  printers  have  a
  8878.        compressed  print option which produces a much narrower character
  8879.        than regular print, usually 17 characters per inch instead of the
  8880.        standard  10 characters  per inch.    Many printers  also have  a
  8881.        12-pitch or Elite font as well. 
  8882.  
  8883.  
  8884.  
  8885.                                                    PRINTING REPORTS  191
  8886.   ----------------------------------------------------------------------
  8887.  
  8888.        Selecting <S>pecial  lets you  change the  default printer  codes
  8889.        normally used from the printer definition file.  If your  printer
  8890.        has  a switch  or button  on  the front  for selecting  character
  8891.        pitch, and you have set it to  a pitch other than normal, specify
  8892.        <S>pecial and blank out the  default codes so that none are  sent
  8893.        to your printer overriding your switch settings. 
  8894.  
  8895.        If a report  is printed to disk with  compressed print specified,
  8896.        the control  codes are placed  into the  disk file at  the proper
  8897.        places, exactly  as  the data  would  have been  written  to  the
  8898.        printer.  In this way,  if a report is written to disk  for later
  8899.        printing via the DOS PRINT command or other spooling utility, the
  8900.        report  prints the  same as  it would  have  printed had  it gone
  8901.        directly to the printer from File Express. 
  8902.  
  8903.        Printer initialization string, <D>efault or <S>pecial 
  8904.        Sometimes it is desirable to send a sequence of characters to the
  8905.        printer before  the report starts  printing, to select  a special
  8906.        printer option or  font.  For example, users  with laser printers
  8907.        might use  this option  to set their  printer to  landscape mode.
  8908.        Users with color printers might use it  to select a ribbon color.
  8909.        Users with multi-bin sheet feeders might need to select a special
  8910.        form.  Any  characters may be entered into this field.  For ASCII
  8911.        values  and  special  symbols,  enclose  the  ASCII value  in  <>
  8912.        symbols.  For example, to set an Epson/IBM printer to  emphasized
  8913.        mode requires that  an <Esc> followed by an upper-case  E be sent
  8914.        to the  printer.   Enter <Esc>E in  the initialization  string so
  8915.        those codes  are sent  to the printer  before the  report starts.
  8916.        For more  information on entering  codes and characters  into the
  8917.        initialization string, see the Macro Key section.
  8918.  
  8919.        Printer reset string, <D>efault or <S>pecial
  8920.        This string is  sent to your printer  at the end of  each report.
  8921.        This can be used to reset any special printer features that  were
  8922.        set using the initialization string above.
  8923.  
  8924.        When  everything  is  correct  on  the  Printer  Options  screen,
  8925.        pressing <F10> or <Esc> returns you to the Output Options screen.
  8926.  
  8927.        When everything is  correct on the  Output Options screen,  press
  8928.        <Esc> or <F10> to return to the Report Sub-menu.
  8929.  
  8930.  
  8931.  
  8932.   192  PRINTING REPORTS
  8933.   ----------------------------------------------------------------------
  8934.  
  8935.   Index Selection
  8936.        The order in which the records are printed on a report depends on
  8937.        the order of the  Primary Index.  If you want to  change from the
  8938.        current Primary  Index  to  a different  one  for  printing  your
  8939.        report, press <I> from the Report Sub-menu.  A list of the active
  8940.        indexes is displayed and you can select any of them by moving the
  8941.        highlighted bar to the  desired index and  pressing <Enter>.   If
  8942.        you  save your  report format  after changing the  Primary Index,
  8943.        this new index is saved  as part of the report format and is used
  8944.        from then on whenever you reprint the report.
  8945.  
  8946.  
  8947.  
  8948.   Saving A Report Format 
  8949.        To save your  report format, press <S> from  the Report Sub-menu.
  8950.        File Express asks: "Save all changes (Y/N)?   Y".  If this report
  8951.        format is just a test, or if you have made some temporary changes
  8952.        to another format  which you do not  want to save, reply  <N>o to
  8953.        this prompt.   If you reply  <Y>es or press  <Enter> to take  the
  8954.        default Yes answer, File  Express prompts you  for a report  name
  8955.        and  description  and  then  saves  your  entire  report  format,
  8956.        including all the information from all the sections on the Report
  8957.        Sub-menu for future use.
  8958.  
  8959.        Report formats are saved in a file with the name of your database
  8960.        with an extension  of .R0 to .R99,  giving you up to  100 reports
  8961.        per database.    (You can  also  use report  formats  from  other
  8962.        database files if  they have the same organization.   See Loading
  8963.        Existing Report Formats for more information).
  8964.  
  8965.  
  8966.   Printing the Report
  8967.        When  all the  options on  the  Output Options  screen have  been
  8968.        selected, press <F10>.  A window appears indicating: 
  8969.  
  8970.                   When printer is ready, press any key 
  8971.  
  8972.        Make sure your printer is online and that the paper is positioned
  8973.        properly, then press a key and the report begins printing.   When
  8974.        the report finishes, this message displays: 
  8975.  
  8976.            End of Report. Printed ___ records....Press any key 
  8977.  
  8978.        If  the message  indicates that  zero records were  printed, this
  8979.        means there  were no matches  found for your  selection criteria.
  8980.        Press any key to return to the Report Sub-menu. 
  8981.  
  8982.  
  8983.  
  8984.                                                    PRINTING REPORTS  193
  8985.   ----------------------------------------------------------------------
  8986.  
  8987.   Wide Reports 
  8988.        Some  wide-platen printers  can  hold 15-inch  wide paper.   File
  8989.        Express is capable  of printing  on this wide  paper.  Just  make
  8990.        your report format wider or specify a larger value for Total Page
  8991.        Width. 
  8992.  
  8993.        Using  compressed print,  if your printer  has that  option, wide
  8994.        reports may  be produced  on regular  8.5-inch paper  (up to  132
  8995.        characters),  and  on  wide  15-inch   paper  (up  to  about  240
  8996.        characters).  These  widths may vary  slightly on some  printers.
  8997.        For compressed print,  specify <C>ompressed Print on  the Printer
  8998.        Options screen. 
  8999.  
  9000.        Reports up to 1000  characters wide can be  created.  Printing  a
  9001.        report this wide, however,  requires that you  do it in  sections
  9002.        and then tape them together.  Another option  for wide reports is
  9003.        printing them  to a disk file and  then using a sideways printing
  9004.        program such as Expressware's On-Side.
  9005.  
  9006.        Most  laser printers can print wide  reports in "landscape" mode,
  9007.        with the report turned sideways on a regular piece of paper.   If
  9008.        your printer has this  option, the report  writer can switch  the
  9009.        printer to landscape mode, select  an alternate font, change line
  9010.        spacing  and other printer  controls before printing  the report.
  9011.        To do  this, the  proper  printer initialization  string must  be
  9012.        specified in the Report Output Options section.
  9013.  
  9014.  
  9015.  
  9016.   194  PRINTING REPORTS
  9017.   ----------------------------------------------------------------------
  9018.  
  9019.                               Letter Writer
  9020.  
  9021.   Starting a New Letter
  9022.        To write a  new letter, press  <3> or <W>  from the Report  Menu,
  9023.        Write a New Form Letter.  The following screen appears: 
  9024.  
  9025.  
  9026.  
  9027.  
  9028.  
  9029.  
  9030.                  Registered Version has screen picture here
  9031.  
  9032.  
  9033.  
  9034.  
  9035.  
  9036.  
  9037.  
  9038.  
  9039.  
  9040.  
  9041.        This screen is used to specify the placement of the letter on the
  9042.        paper.
  9043.  
  9044.        Text width:   The width of the text portion  of the letter on the
  9045.        page.  For example,  if your paper is  8 1/2 inches wide and  you
  9046.        want to hold a left  and right margin of  3/4 inch, the width  of
  9047.        the printed portion is 7 inches, which is 70 characters  printing
  9048.        at 10 characters per inch.  Keep in mind that the Text Width does
  9049.        not include  the left  margin setting  below.   The maximum  text
  9050.        width is 70 characters.
  9051.  
  9052.        Paper length:   The  number of  rows that  can be  printed on  an
  9053.        entire page.   Most printing  is done at  6 lines  per inch.   An
  9054.        eleven inch page is 66 lines high.  At 8 lines per inch, the page
  9055.        would be 88 lines.
  9056.  
  9057.        Lines of text:   The number of  lines that actually print  on the
  9058.        page before  moving to the  next letter.   This should take  into
  9059.        account the top and bottom margin.  On an eleven inch page with a
  9060.        top  margin of 1" and a bottom margin of 3/4", printed at 6 lines
  9061.        per inch,  the Lines of  text should be set  at 56.   The maximum
  9062.        lines is 66.
  9063.  
  9064.        Top Margin:  The number  of blank lines at the top  of the letter
  9065.        before the actual  printing is started.  Most of the time you set
  9066.        this to 0  and just position the  paper in your printer  to start
  9067.        printing where you want the first line to be.  If you are using a
  9068.        sheet-feeder you can change this setting as needed.
  9069.  
  9070.  
  9071.  
  9072.                                                    PRINTING LETTERS  195
  9073.   ----------------------------------------------------------------------
  9074.  
  9075.        Left Margin:  The number of characters  from the left edge of the
  9076.        paper to the  beginning of each line.   A setting of  0 indicates
  9077.        that printing  should begin  at the left  edge of  the paper.   A
  9078.        setting of 1 leaves one blank space before starting each line.  A
  9079.        setting of 10 leaves a left margin of 1 inch when  printing at 10
  9080.        characters per inch.
  9081.  
  9082.        When all the settings on the  Letter Size and Spacing screen  are
  9083.        correct, press <F10>  to continue to the Letter  Writer screen or
  9084.        <Esc> to return to the Letter Sub-Menu.  Pressing <F10> (or <Esc>
  9085.        and  then select  the  Edit Form  Letter  option), the  following
  9086.        screen appears:
  9087.  
  9088.  
  9089.  
  9090.  
  9091.  
  9092.  
  9093.                  Registered Version has screen picture here
  9094.  
  9095.  
  9096.  
  9097.  
  9098.  
  9099.  
  9100.  
  9101.  
  9102.  
  9103.  
  9104.        This is the  Letter Writer section of  File Express.   From here,
  9105.        you can  write  one page  form  letters and  include  fields  and
  9106.        formulas from records in your database.
  9107.  
  9108.        The Letter Writer works much like a  mini word processor.  As you
  9109.        enter characters into the window, it automatically word wraps the
  9110.        text as  you type  it in.   At  any point  in the  text, you  can
  9111.        include field references and formulas that  will be replaced with
  9112.        the contents of the records you choose to  print the letters for.
  9113.        (You  can   also  print   letters  that   don't  contain   record
  9114.        information.)
  9115.  
  9116.        To include a field in the letter, enclose the field name or field
  9117.        number in square  brackets: [  ].   For example,  to include  the
  9118.        first  name in the salutation of  your letter enclose the name of
  9119.        the  first name field  in brackets.   If the first  name field is
  9120.        called FIRST NAME, type:
  9121.  
  9122.                             Dear [FIRST NAME],
  9123.  
  9124.        The [FIRST NAME] indicator will be replaced with the actual first
  9125.        name contents of the record being processed, for example:  
  9126.  
  9127.  
  9128.  
  9129.   196  PRINTING LETTERS
  9130.   ----------------------------------------------------------------------
  9131.  
  9132.                                 Dear Mary,
  9133.  
  9134.        You can also include  any valid formula inside the brackets.  For
  9135.        example:
  9136.  
  9137.         Dear [if FIRST NAME is blank then "Sir" else FIRST NAME],
  9138.  
  9139.        These bracketed fields and  formulas can be included anywhere  in
  9140.        the letter.   When  the letter  is to  be printed,  the bracketed
  9141.        fields  and  formulas are  replaced  with the  field  contents or
  9142.        formula answer and the  letter is reformatted  to fit within  the
  9143.        margins and then printed.
  9144.  
  9145.   Moving Around the Letter Writer
  9146.        Moving around the  screen is simply a matter of  using the cursor
  9147.        keys  to move  the blinking  cursor  to any  position within  the
  9148.        letter layout.  There are position indicators at the bottom right
  9149.        corner of the window  that display the current row  and column of
  9150.        the cursor within the letter.  If  your letter is taller than the
  9151.        window on  the screen, the display  scrolls up and down  when the
  9152.        cursor moves past the top or bottom edge of the window.
  9153.  
  9154.        There are also several other keys that make it easier and quicker
  9155.        to move around the screen:
  9156.  
  9157.        <Enter>   Pressing the  <Enter> key moves the cursor down one row
  9158.                  and to column 1.   Pressing <Enter> in the middle of  a
  9159.                  line moves everything from  the cursor to the  right to
  9160.                  the beginning of the next line.
  9161.  
  9162.        <Home>    Pressing the <Home> key moves the cursor to column 1 in
  9163.                  the current row.
  9164.  
  9165.        <End>     Pressing the <End> key moves the cursor to the position
  9166.                  following the last  non-blank character on  the current
  9167.                  line.
  9168.  
  9169.        <Tab>     The  <Tab>  key  inserts  five  spaces  at  the  cursor
  9170.                  position.
  9171.  
  9172.        <Ctrl-PgUp>    These keys move  the cursor to the  top and bottom
  9173.        of the window 
  9174.        <Ctrl-PgDn>    in the current column.
  9175.  
  9176.        <PgUp>    These keys move  up and down through  the entire letter
  9177.                  if <PgDn> it is taller than the window size.
  9178.  
  9179.        <Alt-D>   Pressing <Alt-D> deletes  the current line.   All lines
  9180.                  below the deleted line are moved up to fill the void.
  9181.  
  9182.  
  9183.  
  9184.                                                    PRINTING LETTERS  197
  9185.   ----------------------------------------------------------------------
  9186.  
  9187.        <Backspace>    The <Backspace> moves the cursor  one character to
  9188.                       the left and blanks any text character that  is in
  9189.                       that  position.  Any text or single line fields to
  9190.                       the right of  the cursor are  pulled to the  left.
  9191.                       Using the  <Backspace> key does  not automatically
  9192.                       reform the paragraph.  See <Alt-W> below.
  9193.  
  9194.        <Del>          The  <Del>  key removes  the  character  under the
  9195.                       cursor and pulls the remainder  of the line to the
  9196.                       left.  Each time a character  is deleted using the
  9197.                       <Del> key, the paragraph is reformatted as needed.
  9198.  
  9199.        <Insert>  The <Insert>  key toggles between insert  and overwrite
  9200.                  mode.    When insert  mode  is  turned on,  the  cursor
  9201.                  changes shape from a blinking  line to a blinking  box.
  9202.                  Any  characters typed while in insert mode are inserted
  9203.                  at the current cursor position and the rest of the line
  9204.                  is move to the right.  
  9205.  
  9206.        <Alt-W>   Pressing  <Alt-W> forces a reformat of  the letter.  If
  9207.                  you  have used the <Backspace> to erase characters, use
  9208.                  <Alt-W> to reformat your letter.
  9209.  
  9210.        <Alt-F>   Pressing <Alt-F> pops up a field list window from which
  9211.                  you  can select a field to put  into your letter at the
  9212.                  current cursor position.   To select a field, move  the
  9213.                  highlight bar to  the desired field and  press <Enter>.
  9214.                  The  field  is  inserted at  the  cursor  position with
  9215.                  square  brackets  surrounding  it  and  the  window  is
  9216.                  erased.
  9217.  
  9218.        <F10>     Pressing <F10> tells File Express that you are finished
  9219.                  writing the letter and want to continue to the Optional
  9220.                  Specification screen. 
  9221.  
  9222.        When writing a letter, a list of all the available edit  keys and
  9223.        their functions are available by pressing <Alt-H> for help.
  9224.  
  9225.  
  9226.   Record Selection:
  9227.        When you have finished  writing your letter,  the next screen  to
  9228.        appear is Record Selection.   Here you  indicate the records  you
  9229.        want to print letters for.  This  is a familiar screen, identical
  9230.        to  the one  used when finding  records.   To print a  letter for
  9231.        every record, enter  ALL.  To print only  selected records, enter
  9232.        the selection criteria.   For a detailed discussion  of the valid
  9233.        keywords and operands, see the section titled Finding Records.
  9234.  
  9235.        Enter your selection criteria and press <Enter>.
  9236.  
  9237.  
  9238.  
  9239.   198  PRINTING LETTERS
  9240.   ----------------------------------------------------------------------
  9241.  
  9242.   Letter Output Options 
  9243.        The last screen to display is the Letter Output Options screen:
  9244.  
  9245.  
  9246.  
  9247.  
  9248.  
  9249.  
  9250.                  Registered Version has screen picture here
  9251.  
  9252.  
  9253.  
  9254.  
  9255.  
  9256.  
  9257.  
  9258.  
  9259.        The fields have the  most commonly used  default values, so  just
  9260.        press <F10>  if all the  options are  correct.  If  your computer
  9261.        system  uses different  options, it  is not  necessary to  change
  9262.        these fields every time you print letters.  The default values on
  9263.        this  screen (as on many  other screens) may  be changed to match
  9264.        your  computer and printer.   See the  chapter titled Customizing
  9265.        File Express  for more  information.  Each  of these  options are
  9266.        saved as part  of the letter file, so when you reload the letter,
  9267.        the answers  are  preserved.   The  prompts on  this  screen  are
  9268.        discussed in the following paragraphs. 
  9269.  
  9270.  
  9271.  
  9272.                                                    PRINTING LETTERS  199
  9273.   ----------------------------------------------------------------------
  9274.  
  9275.        Write to <S>creen, <P>rinter, <D>isk, or <A>ll 
  9276.        The letter always appears on the screen.  To write it only on the
  9277.        screen and nowhere  else, enter <S>.   To write it to  the screen
  9278.        and the printer, enter <P>.  To  write it to the screen and disk,
  9279.        enter <D>.  To write it  to the screen, disk, and printer,  press
  9280.        <A>.
  9281.  
  9282.        When <D> or  <A> is entered, you are prompted for the Output File
  9283.        name.  Any valid DOS file name may be used.  A drive letter, path
  9284.        and extension may  also be included.   If  they are omitted,  the
  9285.        file is written to  the drive and  path containing the  database,
  9286.        with no extension. 
  9287.  
  9288.        When <D>isk  is specified, the  characters written into  the disk
  9289.        file are identical to those that go to the printer when <P>rinter
  9290.        is specified.  This lets the disk file later be printed using the
  9291.        DOS PRINT command or  other spooling utility.  Consequently,  the
  9292.        disk file may contain control codes such as form feeds or printer
  9293.        codes.  If you are writing  the letter to disk to edit with  your
  9294.        word  processor,  these  codes  appear  in  the  word  processing
  9295.        document as special symbols, and may be removed. 
  9296.  
  9297.        <C>ontinuous printing or <P>ause after each page 
  9298.        Selecting <C>ontinuous causes the letters to print  one after the
  9299.        other, until they  have been printed  for every record  selected.
  9300.        If  <P>ause  is  selected, the  first  letter  prints,  then this
  9301.        message appears: 
  9302.  
  9303.           Press any key to print next letter, or <Esc> to exit 
  9304.  
  9305.        The <P>ause option is useful when your printer uses single sheets
  9306.        of  paper.   One  page is  printed, then  File Express  pauses so
  9307.        another sheet of paper can be inserted. 
  9308.  
  9309.  
  9310.  
  9311.   200  PRINTING LETTERS
  9312.   ----------------------------------------------------------------------
  9313.  
  9314.   Printer Options
  9315.        File  Express offers some additional printer  options you may not
  9316.        need at first,  but which are very  handy when you do  need them.
  9317.        These  options  give  you  the  capability  of  changing  printer
  9318.        definition  files, printer ports, line and character spacing, and
  9319.        optional printer control strings.
  9320.  
  9321.        To pull up the Printer Options menu, press <Alt-S> while  viewing
  9322.        the Letter Output Options:
  9323.  
  9324.  
  9325.  
  9326.  
  9327.  
  9328.  
  9329.                  Registered Version has screen picture here
  9330.  
  9331.  
  9332.  
  9333.  
  9334.  
  9335.  
  9336.  
  9337.  
  9338.  
  9339.  
  9340.  
  9341.        Printer Definition File
  9342.        Printer  definition files, (PDF  files), contain all  the printer
  9343.        codes used  by  File Express  to  control the  features  of  your
  9344.        printer.  If you have used the Setup program that comes with File
  9345.        Express, you have  probably selected the PDF file  that goes with
  9346.        your  printer.  If you have  not selected a printer, File Express
  9347.        uses codes for an Epson MX80 printer, which are also used by many
  9348.        other makes.
  9349.  
  9350.        Many  people  have  more  than  one printer  connected  to  their
  9351.        computer and need the  capability of switching  PDF files on  the
  9352.        fly so different reports can be sent to different printers.
  9353.  
  9354.        To  select a  different printer  definition  file, press  <Alt-S>
  9355.        while  viewing the  Printer Options  window.   A  window pops  up
  9356.        containing  a  list of  all the  PDF files  found in  the program
  9357.        directory.  Move the highlighted bar to the file name you want to
  9358.        select and press <Enter>.
  9359.  
  9360.        Printer port <1>, <2>, <3>, or <D>efault (LPTx) 
  9361.        If your computer  has more than one printer, use  this command to
  9362.        route  the report to  a second  or third  printer.   File Express
  9363.        defaults to LPT1,  which is the standard port  for most printers.
  9364.        If you  have changed  your printer definition  file to  send your
  9365.  
  9366.  
  9367.  
  9368.                                                    PRINTING LETTERS  201
  9369.   ----------------------------------------------------------------------
  9370.  
  9371.        printer  output to a  port other than  LPT1, the LPTx  shows your
  9372.        default port. 
  9373.  
  9374.        Technical  Note:  Sometimes  a  computer  has  a  serial  printer
  9375.        attached to  its COM1 or  COM2 serial port.   Using the  DOS MODE
  9376.        command, it is  possible to reassign  LPT output to  a COM  port.
  9377.        The MODE command must be entered each time your system is booted,
  9378.        before printing.   The  MODE command is  usually included  in the
  9379.        AUTOEXEC.BAT file.  The command is: MODE LPT#:=COMn where # is 1,
  9380.        2  or  3 and  n  is  1  or 2.    See  your  DOS manual  for  more
  9381.        information.  Reports can only be sent to LPT devices. 
  9382.  
  9383.        Use Form Feeds, <Y>es or <N>o 
  9384.        Since File  Express knows  how long  your paper  is, and it  also
  9385.        counts the lines as it prints,  the paper is normally advanced to
  9386.        a  new page by  printing several blank lines.   Most people never
  9387.        need to change this option from  its default of <N>o.  But  there
  9388.        are  a few  applications where  counting lines  is not  adequate.
  9389.        Sometimes the printer needs a form  feed character sent to it  in
  9390.        order to properly  advance the paper.  Earlier  we mentioned that
  9391.        form feeding is necessary when using a line height which does not
  9392.        divide evenly into  the paper length.  The  form feed re-synchro-
  9393.        nizes the letter with the top of the new page. 
  9394.  
  9395.        Some laser  printers require  a  form feed  character before  the
  9396.        paper  is ejected  into the  output  bin.   Some multi-bin  paper
  9397.        feeders  need a  form feed  character  to select  paper from  the
  9398.        proper bin.   Some  printers eject  paper much  faster when  form
  9399.        feeds  are used  instead of a  series of  blank lines.   In those
  9400.        applications, specify <Y>es for this option. 
  9401.  
  9402.        When  File  Express  prints  a letter  without  form  feeds,  the
  9403.        top-of-form  position of your  printer is ignored.   File Express
  9404.        simply  starts printing  wherever the  paper  is positioned,  and
  9405.        includes enough blank lines to  get to the top of each page.  But
  9406.        when using  form feeds with  a regular tractor-feed  printer, the
  9407.        printer's top-of-form must  be properly set,  or else the  second
  9408.        and  subsequent   pages  do   print  in   the  proper   position.
  9409.        Top-of-form  detection is a physical aspect of your printer which
  9410.        varies from model to model.  Typically it can be set by position-
  9411.        ing the paper  so the perforation is  just above the  print head,
  9412.        then pressing a  button labelled Top or TOF.   Some printers must
  9413.        be powered off and back on to  set top-of-form.  See your printer
  9414.        operation manual for further details. 
  9415.  
  9416.        Line spacing - <6>, <8> or <S>pecial lines per inch 
  9417.        Most printers are  configured to print six lines  per inch (lpi),
  9418.        but  have an  option for  selecting 8  lpi vertical  spacing.   A
  9419.        letter printed at 8 lpi is usually  a bit harder to read, because
  9420.        the lines  are much closer together.   Sometimes 8 lpi causes the
  9421.  
  9422.  
  9423.  
  9424.   202  PRINTING LETTERS
  9425.   ----------------------------------------------------------------------
  9426.  
  9427.        tops of  some  upper case  characters  to touch  the  bottoms  of
  9428.        characters with descenders like p, j and y. 
  9429.  
  9430.        When you  selecting <6>  or <8>,  File Express  uses the  printer
  9431.        codes found  in the  current printer  definition file.   You  can
  9432.        override these codes by selecting <S>pecial.
  9433.  
  9434.        <R>egular, <C>ompressed, <T>welve or <S>pecial pitch 
  9435.        If  your  printer  is  capable   of  printing  in  compressed  or
  9436.        twelve-pitch  (sometimes called Elite) mode, selecting <C> or <T>
  9437.        causes special printer control  codes to be  sent to the  printer
  9438.        before the  letter  begins.   Most  dot matrix  printers  have  a
  9439.        compressed  print option which produces a much narrower character
  9440.        than regular print, usually 17 characters per inch instead of the
  9441.        standard  10 characters  per inch.    Many printers  also have  a
  9442.        12-pitch or Elite font as well. 
  9443.  
  9444.        Selecting <S>pecial  lets you  change the  default printer  codes
  9445.        normally used from the printer definition file.  If your  printer
  9446.        has  a switch  or button  on  the front  for selecting  character
  9447.        pitch, and you have set it to a pitch other than  normal, specify
  9448.        <S>pecial  and blank out the default  codes so that none are sent
  9449.        to your printer overriding your switch settings. 
  9450.  
  9451.        If a letter  is printed to disk with  compressed print specified,
  9452.        the control  codes are placed  into the  disk file at  the proper
  9453.        places, exactly  as  the data  would  have been  written  to  the
  9454.        printer.  In this way, if  a letter is written to disk  for later
  9455.        printing via the DOS PRINT command or other spooling utility, the
  9456.        letter prints  the same  as it  would have  printed  had it  gone
  9457.        directly to the printer from File Express. 
  9458.  
  9459.        Printer initialization string, <D>efault or <S>pecial 
  9460.        Sometimes it is desirable to send a sequence of characters to the
  9461.        printer before  the letter starts  printing, to select  a special
  9462.        printer option or  font.  For example, users  with laser printers
  9463.        might use  this option  to set their  printer to  landscape mode.
  9464.        Users with color printers might use it to  select a ribbon color.
  9465.        Users with multi-bin sheet feeders might need to select a special
  9466.        form.  Any characters may be entered  into this field.  For ASCII
  9467.        values  and  special  symbols,  enclose the  ASCII  value  in  <>
  9468.        symbols.  For example, to set an Epson/IBM printer to  emphasized
  9469.        mode requires that an  <Esc> followed by an upper-case E  be sent
  9470.        to the  printer.   Enter <Esc>E in  the initialization  string so
  9471.        those codes  are sent  to the printer  before the  letter starts.
  9472.        For more information  on entering codes  and characters into  the
  9473.        initialization string, see the Macro Key section.
  9474.  
  9475.        Using the  Setup program  that comes with  File Express,  you can
  9476.        enter a default initialization  printer code.   If you have  done
  9477.  
  9478.  
  9479.  
  9480.                                                    PRINTING LETTERS  203
  9481.   ----------------------------------------------------------------------
  9482.  
  9483.        this, press  <D> to use it,  or press <S>  to change the  code or
  9484.        blank it out.
  9485.  
  9486.        Printer reset string, <D>efault or <S>pecial
  9487.        This string  is sent to  your printer at  the end of  each letter
  9488.        set.  This can be used to reset any special printer features that
  9489.        were set using the initialization string above.
  9490.  
  9491.  
  9492.        When  everything  is  correct  on  the  Printer  Options  screen,
  9493.        pressing <F10> or <Esc> returns you to the Output Options screen.
  9494.  
  9495.        When everything is  correct on the  Output Options screen,  press
  9496.        <Esc> or <F10> to continue.
  9497.  
  9498.  
  9499.   Index Selection
  9500.        The order in which  the records are used to  generate the letters
  9501.        depends on the order of the Primary Index.  If you want to change
  9502.        from the current Primary  Index to a  different one for  printing
  9503.        your letters, press <I> from the Letter Sub-menu.  A list  of the
  9504.        active indexes  is displayed and  you can select  any of  them by
  9505.        moving  the highlighted  bar to  the desired  index and  pressing
  9506.        <Enter>. 
  9507.  
  9508.  
  9509.  
  9510.   Saving A Letter Format 
  9511.        To save your  letter format, press <S> from  the Letter Sub-menu.
  9512.        File Express asks: "Save all changes (Y/N)?  Y".  If  this letter
  9513.        format is just a test, or if you have made some temporary changes
  9514.        to another format  which you do not  want to save, reply  <N>o to
  9515.        this  prompt.  If  you reply <Y>es  or press <Enter>  to take the
  9516.        default Yes answer, File  Express prompts you  for a letter  name
  9517.        and  description  and  then  saves  your  entire  letter  format,
  9518.        including all the information from all the sections on the Letter
  9519.        Sub-menu for future use.
  9520.  
  9521.        Letter formats are saved in a file with the name of your database
  9522.        with an extension  of .D0 to .D99,  giving you up to  100 letters
  9523.        per database.    (You can  also  use letter  formats  from  other
  9524.        database files if they have the same organization.
  9525.  
  9526.  
  9527.   Printing the Letter
  9528.        When  all the  options on  the  Output Options  screen have  been
  9529.        selected, press <F10>.  A window appears indicating: 
  9530.  
  9531.                   When printer is ready, press any key 
  9532.  
  9533.  
  9534.  
  9535.   204  PRINTING LETTERS
  9536.   ----------------------------------------------------------------------
  9537.  
  9538.        Make sure  your printer  is online  and the  paper is  positioned
  9539.        properly, then  press  a  key  and the  letters  begin  printing.
  9540.        Before each letter is printed, a window pops up saying: 
  9541.  
  9542.                          Analyzing Letter Format
  9543.  
  9544.        while File Express goes through the letter and fills in any field
  9545.        references and formulas  from the current record.   The letter is
  9546.        then reformatted and printed.   When the  all the letters  finish
  9547.        printing, this message displays: 
  9548.  
  9549.          Printing Complete. Printed ___ records....Press any key 
  9550.  
  9551.        If the  message indicates  that zero  records were  printed, this
  9552.        means  there were no  matches found for  your selection criteria.
  9553.        Press any key to return to the Letter Sub-menu. 
  9554.  
  9555.  
  9556.  
  9557.                                                     PRINTING LABELS  205
  9558.   ----------------------------------------------------------------------
  9559.  
  9560.  
  9561.                              Printing Labels 
  9562.  
  9563.        File Express has one of the  easiest to use mailing label options
  9564.        in the industry.  Labels can be printed up to five across and any
  9565.        size from ten  characters by one  line to 1000 characters  by 200
  9566.        lines.  
  9567.  
  9568.  
  9569.   The Label Menu 
  9570.        To print mailing labels, press <L>  or <6> on the Main Menu.  The
  9571.        Label Menu appears: 
  9572.  
  9573.  
  9574.  
  9575.   206  PRINTING LABELS
  9576.   ----------------------------------------------------------------------
  9577.  
  9578.   Designing A New Label 
  9579.        Press <1>  or <D> to  design a new  label.  The  following screen
  9580.        appears: 
  9581.  
  9582.  
  9583.  
  9584.  
  9585.  
  9586.  
  9587.                  Registered Version has screen picture here
  9588.  
  9589.  
  9590.  
  9591.  
  9592.  
  9593.  
  9594.  
  9595.  
  9596.  
  9597.  
  9598.        Before the label layout can be defined,  File Express must know a
  9599.        few things about the  physical dimensions of  the labels you  are
  9600.        using. All the options are explained on the following pages. 
  9601.     
  9602.        How many labels across the page (1 to 5) 
  9603.        Some label  forms have two or more labels side  by side.  If your
  9604.        label forms have more than one label across  the page, change the
  9605.        value of this prompt to the number of labels across.  
  9606.  
  9607.        Labels which can be run through your computer's printer come in a
  9608.        variety of sizes  and shapes, and File Express can  print on them
  9609.        all.   The  most common  mailing label,  available at  stationery
  9610.        stores and usable  in just about any printer,  is one-across, one
  9611.        inch vertically from label to label, and 3.5 inches across. 
  9612.  
  9613.        However, your printer's physical constraints may prevent you from
  9614.        using some labels.   Even if  a wide label  form will go  through
  9615.        your printer, sometimes it can't  print all the way to the  right
  9616.        edge of  the last label.  Before  buying wide labels, first print
  9617.        them on a wide  piece of paper to be sure your printer can handle
  9618.        them. 
  9619.  
  9620.  
  9621.  
  9622.                                                     PRINTING LABELS  207
  9623.   ----------------------------------------------------------------------
  9624.  
  9625.        Spaces across from one label to the next 
  9626.        This  option  is  only  prompted  for  if  the previous  response
  9627.        indicates there are two or more labels across the page.  When the
  9628.        cursor moves to this prompt, the picture-prompt changes:
  9629.  
  9630.  
  9631.  
  9632.  
  9633.  
  9634.  
  9635.                  Registered Version has screen picture here
  9636.  
  9637.  
  9638.  
  9639.  
  9640.  
  9641.  
  9642.  
  9643.  
  9644.  
  9645.  
  9646.        The   line  with  the  question   mark  in  it  illustrates  this
  9647.        measurement. If you don't  know what value  to enter here, use  a
  9648.        ruler  to measure from  the left edge  of the first  label to the
  9649.        left edge of  the second  one.   If you will  be using  <R>egular
  9650.        print, multiply the length in inches  times ten.  If you will  be
  9651.        using <T>welve  pitch,  multiply by  12.   If you  will be  using
  9652.        <C>ompressed print,  multiply the  length times  seventeen.   For
  9653.        example, if the  distance across the label is 3 3/4", then 3.75 x
  9654.        10 = 37.5 so use 37 (which is the default).  
  9655.  
  9656.  
  9657.  
  9658.   208  PRINTING LABELS
  9659.   ----------------------------------------------------------------------
  9660.  
  9661.        Lines down from one label to the next 
  9662.        This is the  number of lines it takes  to go from the  top of one
  9663.        label down  to the  top of  the next  label.   Most printers  are
  9664.        configured to print  six lines per inch.   So, if the  labels are
  9665.        one inch  high, use a  value of six.   (If you are  printing at 8
  9666.        lines-per-inch, use  a value  of 8).   If  the labels  are 1  1/2
  9667.        inches high,  use  a  value of  nine  (printing at  6  LPI).  The
  9668.        illustration at the top of the screen shows the measurement to be
  9669.        made: 
  9670.  
  9671.  
  9672.  
  9673.  
  9674.  
  9675.  
  9676.                  Registered Version has screen picture here
  9677.  
  9678.  
  9679.  
  9680.  
  9681.  
  9682.  
  9683.  
  9684.  
  9685.  
  9686.  
  9687.        Note that  the measurement is not the height  of the label; it is
  9688.        the measurement from the top of one label to  the top of the next
  9689.        label.   These measurements are usually  in half inch increments.
  9690.        Multiply the inches  times six and enter  the value.   The actual
  9691.        label height is  usually a sixteenth of an inch  less, allowing a
  9692.        small space between labels. 
  9693.  
  9694.  
  9695.  
  9696.                                                     PRINTING LABELS  209
  9697.   ----------------------------------------------------------------------
  9698.  
  9699.        Printable lines per label 
  9700.        Even  though a  label may be  six lines high,  you probably don't
  9701.        want  to print all  the way  from the very  top edge  to the very
  9702.        bottom.  Six  lines probably will not  even fit on the  label.  A
  9703.        small top and bottom margin is advisable.  Four or five lines fit
  9704.        nicely on a one inch label at 6 lines per inch.
  9705.  
  9706.  
  9707.  
  9708.   210  PRINTING LABELS
  9709.   ----------------------------------------------------------------------
  9710.  
  9711.        Characters per line on each label
  9712.        Normally,  you will  not want to  print from  the left edge  of a
  9713.        label all the  way to  the right edge  without margins on  either
  9714.        side.   By specifying the number  of characters to print  on each
  9715.        line you  can control the  look of each  label.  When  the cursor
  9716.        moves to this prompt, the picture changes to:
  9717.  
  9718.  
  9719.  
  9720.  
  9721.  
  9722.  
  9723.                  Registered Version has screen picture here
  9724.  
  9725.  
  9726.  
  9727.  
  9728.  
  9729.  
  9730.  
  9731.  
  9732.  
  9733.  
  9734.        The  line  with  the  question   mark  in  it  illustrates   this
  9735.        measurement. If you don't  know what value to  enter here, use  a
  9736.        ruler to  measure the length  of the line  you want to  print and
  9737.        multiply it by ten if you will be printing in <R>egular  print or
  9738.        by 12 if  you will be  printing at <T>welve  characters-per-inch.
  9739.        If you  will be printing  with <C>ompressed  print, multiply  the
  9740.        length times seventeen.  For example, if you want to print 3 inch
  9741.        lines on  your 3 1/2 inch label in <R>egular print, then 3 x 10 =
  9742.        30, so enter 30.  
  9743.  
  9744.  
  9745.     
  9746.  
  9747.  
  9748.  
  9749.                                                     PRINTING LABELS  211
  9750.   ----------------------------------------------------------------------
  9751.  
  9752.        Tab position to first label 
  9753.        This option  is somewhat  dependent on  how the  label forms  are
  9754.        positioned in your printer. 
  9755.  
  9756.  
  9757.  
  9758.  
  9759.  
  9760.  
  9761.  
  9762.                  Registered Version has screen picture here
  9763.  
  9764.  
  9765.  
  9766.  
  9767.  
  9768.  
  9769.  
  9770.  
  9771.  
  9772.        The default  value for  this option  is 1,  meaning File  Express
  9773.        prints the  first character of  the label in the  first column on
  9774.        your printer.  If the printing is too far to  the left, specify a
  9775.        larger tab  value.  If 1 is specified and the printing is too far
  9776.        to the right, the  printer tractors must  be physically moved  to
  9777.        the right. 
  9778.  
  9779.  
  9780.  
  9781.   212  PRINTING LABELS
  9782.   ----------------------------------------------------------------------
  9783.  
  9784.   Test Printer Setup
  9785.        When all  the Label Spacing  options have  been specified,  press
  9786.        <F10>.  This window pops onto the screen: 
  9787.  
  9788.  
  9789.                      Test this setup on your printer
  9790.  
  9791.  
  9792.  
  9793.        If you have  labels in your  printer and would  like to test  the
  9794.        spacing  options you  have  specified,  indicate  <Y>es  to  this
  9795.        prompt.  File Express tells you to press any key when the printer
  9796.        is ready, then a series of slash characters are printed: 
  9797.  
  9798.  
  9799.        //////////////////////////    ////////////////////////// 
  9800.        //////////////////////////    ////////////////////////// 
  9801.        //////////////////////////    ////////////////////////// 
  9802.        //////////////////////////    ////////////////////////// 
  9803.  
  9804.        //////////////////////////    ////////////////////////// 
  9805.        //////////////////////////    ////////////////////////// 
  9806.        //////////////////////////    ////////////////////////// 
  9807.        //////////////////////////    ////////////////////////// 
  9808.  
  9809.  
  9810.        The example  above is  for two-across  labels.   By checking  the
  9811.        positions of the slashes, you can determine if your label spacing
  9812.        is correct.   If the label spacing is not correct, press <Esc> to
  9813.        return to the Label Spacing screen.  
  9814.  
  9815.  
  9816.  
  9817.                                                     PRINTING LABELS  213
  9818.   ----------------------------------------------------------------------
  9819.  
  9820.   The Label Layout Screen 
  9821.        After the  Label Spacing options  have been  entered and  tested,
  9822.        this prompt appears: 
  9823.  
  9824.  
  9825.  
  9826.  
  9827.  
  9828.  
  9829.                  Registered Version has screen picture here
  9830.  
  9831.  
  9832.  
  9833.  
  9834.  
  9835.  
  9836.  
  9837.  
  9838.  
  9839.  
  9840.        Using  the spacing options from the previous screen, File Express
  9841.        draws  a  window  according  to  the  values  you  specified  for
  9842.        characters across and lines  down.  The  cursor is placed in  the
  9843.        upper left corner.
  9844.  
  9845.        Laying out the fields and text on a label is exactly the  same as
  9846.        filling in the Detail area of a report.  You may include the same
  9847.        fields, text, and formulas.  Because the Label and Report  layout
  9848.        descriptions are the same, we won't repeat the  information again
  9849.        here.  Please refer to the following report topics:
  9850.  
  9851.                  Moving around the Layout Screen
  9852.                  Detail Area
  9853.                  Adding text to the Layout
  9854.                  Placing Fields on the Screen
  9855.                  Calculated Fields
  9856.                  Drawing Lines
  9857.  
  9858.        When you are finished laying out the label format, press <F10> to
  9859.        continue, or <Esc> to return to the Label Sub-Menu.
  9860.  
  9861.  
  9862.  
  9863.   214  PRINTING LABELS
  9864.   ----------------------------------------------------------------------
  9865.  
  9866.   The Paging Option 
  9867.        The Paging Option lets you print labels on a page-by-page  basis,
  9868.        specifying how  many rows  of labels  to print  on a page  before
  9869.        moving on to the next page.  This is important if you are using a
  9870.        laser  printer that can't  print from  the very  top to  the very
  9871.        bottom of  a page or sheet of labels  and must receive a formfeed
  9872.        character  to eject and print  the page.   The Paging Option also
  9873.        lets you print headings on each page of labels including a title,
  9874.        date and page number.  
  9875.  
  9876.        People often use the Label program to produce rosters and mailing
  9877.        lists on  paper as  well as on  label forms.   The  Mailing Label
  9878.        section  lets you  display names  and  addresses on  the page  in
  9879.        columns, up to five across, a feature which is not available with
  9880.        the Report Writer.
  9881.  
  9882.  
  9883.  
  9884.  
  9885.  
  9886.  
  9887.  
  9888.                  Registered Version has screen picture here
  9889.  
  9890.  
  9891.  
  9892.  
  9893.  
  9894.  
  9895.  
  9896.  
  9897.  
  9898.  
  9899.        This option  is not normally used when  printing continuous label
  9900.        forms,  so its default is  set to <N>o.   If you press <Y>es, you
  9901.        are asked to answer the following questions: 
  9902.  
  9903.  
  9904.  
  9905.                                                     PRINTING LABELS  215
  9906.   ----------------------------------------------------------------------
  9907.  
  9908.        1 - Enter title you would like printed:
  9909.        If you want to have a title printed at the top of each page, fill
  9910.        it in here.
  9911.  
  9912.        2 - <D>ate, <P>age numbering, <B>oth, <N>one
  9913.        If you want the date and/or page number to be printed,  press the
  9914.        appropriate letter.
  9915.  
  9916.        3 - Top margin before printing on each page
  9917.        This entry is used  to tell File Express how many  blank lines to
  9918.        send to the printer before starting to print the labels.
  9919.  
  9920.        Many laser printer have a built-in top and bottom margin of a few
  9921.        lines where  the printer  will not  print.   To accommodate  this
  9922.        restriction,  many label  sheets  made  for  laser  printers  are
  9923.        manufactured with a top  and bottom margin  of about 1/2"  before
  9924.        and after the labels.  On these printers, indicating a top margin
  9925.        of zero starts the printing on the third or fourth line  from the
  9926.        top.  If  the printing starts too  high, increase the  top margin
  9927.        setting one or two to move the top label down on the page.
  9928.  
  9929.        4 - Print how many label rows before new page
  9930.        This is the  number of labels, not  lines, to be printed  on each
  9931.        page.  Most laser printer  label pages have ten rows  of one-inch
  9932.        labels that can be printed on a page.
  9933.  
  9934.        After  the last line  on the bottom label  is printed, a formfeed
  9935.        character is sent to the printer to move to the next page.  Laser
  9936.        printers then eject  the current page and start on the next.  Dot
  9937.        matrix printers advance  the tractor feed paper to  the next top-
  9938.        of-page position before printing resumes.
  9939.  
  9940.        When  you have finished, press <F10>  to continue on to the Label
  9941.        Output Options screen, or <Esc> to return to the Label Sub-menu.
  9942.  
  9943.  
  9944.  
  9945.   216  PRINTING LABELS
  9946.   ----------------------------------------------------------------------
  9947.  
  9948.   Label Output Options 
  9949.        This screen contains various options which could not be specified
  9950.        in  the  format definition  because  they  do  not control  label
  9951.        formatting.  These  options are all related to  the label layout;
  9952.        i.e. where  to  print the  labels,  how many  to print  for  each
  9953.        record,  whether  you  want  blank lines  compressed  out  of the
  9954.        labels, and which records you want to print labels for.  The next
  9955.        few paragraphs list the options and describe them in detail. 
  9956.  
  9957.  
  9958.  
  9959.  
  9960.  
  9961.  
  9962.  
  9963.  
  9964.                  Registered Version has screen picture here
  9965.  
  9966.  
  9967.  
  9968.  
  9969.  
  9970.  
  9971.  
  9972.  
  9973.  
  9974.        All the  fields have  the most commonly  used default  values, so
  9975.        just  press  <F10> if  all  the options  are  correct.   If  your
  9976.        computer system  uses different options,  it is not  necessary to
  9977.        change  these fields  every time  you  run labels.   The  default
  9978.        values on this  screen (as on many other screens)  may be changed
  9979.        to  match your  computer and  printer.   See  the chapter  titled
  9980.        Customizing  File Express for  more information.   The prompts on
  9981.        this screen are discussed in the following paragraphs: 
  9982.  
  9983.  
  9984.  
  9985.                                                     PRINTING LABELS  217
  9986.   ----------------------------------------------------------------------
  9987.  
  9988.        Write to <S>creen, <P>rinter, <D>isk or <A>ll 
  9989.        Labels are always  displayed on the screen.  To write them to the
  9990.        screen and nowhere else, enter <S>.  To write them to  the screen
  9991.        and the printer,  enter <P>.   To  write them to  the screen  and
  9992.        disk, enter <D>.  To send them to all three places, press <A>.
  9993.  
  9994.        When <D> or <A> is entered, you  are prompted for the Output File
  9995.        name. Any valid DOS file name may be used.  A drive letter,  path
  9996.        and extension  may also be  included.   If they are  omitted, the
  9997.        file is written to  the drive and  path containing the  currently
  9998.        opened database, with no extension. 
  9999.  
  10000.        When <D>isk is  specified, the characters  written into the  disk
  10001.        file are identical  to those going to the  printer when <P>rinter
  10002.        is  specified.  Consequently,  the disk file  may contain control
  10003.        codes  such as form  feeds or compressed print.   This allows the
  10004.        disk  file to  be printed later  using the  DOS PRINT  command or
  10005.        other spooling utility.  If you are writing the labels to disk to
  10006.        edit with your word processor, these codes may appear in the word
  10007.        processing document as special symbols, and may be removed. 
  10008.  
  10009.        Number of labels to Print for each Record 
  10010.        Ordinarily only  a single  label is  printed per  record, so  the
  10011.        default is set to 1.  If an application requires more  labels per
  10012.        record, enter any number up to 999 in this field. 
  10013.        Some File Express users have discovered  a way to print their own
  10014.        personalized  labels, such as  return address labels,  using this
  10015.        option.   To do  this, define a  label and type in  your name and
  10016.        address as  text.   On the  Record Selection  Screen enter  F0=1.
  10017.        Then at  the Number  of labels to  Print for each  Record prompt,
  10018.        enter the number of labels you want  to print.  File Express then
  10019.        prints that number of personal return-address labels. 
  10020.  
  10021.        Remove blank lines found within labels, <Y>es or <N>o 
  10022.        Sometimes there are gaps printed in  a label when a field has  no
  10023.        information.   For example, if a customer  has no company name or
  10024.        lives in a small town and has no address, a blank line appears in
  10025.        the label.   Specifying  <Y>es for this  option causes  all lines
  10026.        below the blank one to be shifted upward (for that label only) so
  10027.        there are  no gaps in the  label.  If  you prefer that  the blank
  10028.        lines remain, enter <N>o for this option. 
  10029.  
  10030.  
  10031.  
  10032.   218  PRINTING LABELS
  10033.   ----------------------------------------------------------------------
  10034.  
  10035.        <C>ontinuous printing or <P>ause after a row of labels 
  10036.        <C>ontinuous printing  causes all the  labels to print  one after
  10037.        another until  they are  finished.  If  <P>ause is  selected, the
  10038.        first row of labels print, then the message appears: 
  10039.  
  10040.          Press any key to print next label row, or <Esc> to exit 
  10041.  
  10042.        By feeding envelopes into  the printer one  at a time,  addresses
  10043.        can be printed directly on them.
  10044.  
  10045.  
  10046.        Record Selection:
  10047.        The  final  prompt on  the  Output  Option  screen  controls  the
  10048.        selection of records for which to print labels.  When you move to
  10049.        this prompt,  the Record  Selection screen displays.   This  is a
  10050.        familiar screen, identical to the one used when finding  records.
  10051.        To print labels  for every record,  enter "ALL".   To print  only
  10052.        selected records, enter  the selection criteria.   For a detailed
  10053.        discussion of the  valid keywords and  operands, see the  section
  10054.        titled Finding Records. 
  10055.  
  10056.  
  10057.  
  10058.                                                     PRINTING LABELS  219
  10059.   ----------------------------------------------------------------------
  10060.  
  10061.   Printer Options
  10062.        File  Express offers some addition printer  options which you may
  10063.        not need  at first  but are  very handy  when you  do need  them.
  10064.        These  options  give  you  the  capability  of  changing  printer
  10065.        definition  files, printer ports, line and character spacing, and
  10066.        optional printer control strings.
  10067.  
  10068.        To pull up the Printer Options menu, press <Alt-S> while  viewing
  10069.        the Label Output Options:
  10070.  
  10071.  
  10072.  
  10073.  
  10074.  
  10075.  
  10076.                  Registered Version has screen picture here
  10077.  
  10078.  
  10079.  
  10080.  
  10081.  
  10082.  
  10083.  
  10084.  
  10085.  
  10086.  
  10087.  
  10088.        Printer Definition File
  10089.        Printer definition  files (PDF  files), contain  all the  printer
  10090.        codes used  by  File Express  to  control the  features  of  your
  10091.        printer.  If you do not select a printer, File Express uses codes
  10092.        for an Epson  MX80 printer,  which are  also used  by many  other
  10093.        makes.
  10094.  
  10095.        Many  people have  more  than  one  printer  connected  to  their
  10096.        computer and need the  capability of switching  PDF files on  the
  10097.        fly so different labels can be sent to different printers.
  10098.  
  10099.        To  select a printer definition file, press <Alt-S> while viewing
  10100.        the Printer Options window.   A window pops up  displaying a list
  10101.        of all the  PDF files found in  the program directory.   Move the
  10102.        highlighted bar  to the  PDF file  you want  to select  and press
  10103.        <Enter>.
  10104.  
  10105.        Printer port <1>, <2>, <3>, or <D>efault (LPTx) 
  10106.        If your computer has more  than one printer, use this  command to
  10107.        route the  labels to  a second  or third  printer.  File  Express
  10108.        defaults to LPT1,  which is the standard device  address for most
  10109.        printers.  If you  have changed your  printer definition file  to
  10110.        send  your printer  output to a  port other  than LPT1,  the LPTx
  10111.        shows your default port. 
  10112.  
  10113.  
  10114.  
  10115.   220  PRINTING LABELS
  10116.   ----------------------------------------------------------------------
  10117.  
  10118.        Technical  Note:  Sometimes  a  computer  has  a  serial  printer
  10119.        attached to  its COM1 or  COM2 serial port.   Using the  DOS MODE
  10120.        command, it is  possible to  reassign LPT output  to a COM  port.
  10121.        The MODE command must be entered each time your system is booted,
  10122.        before printing.   The  MODE command is  usually included  in the
  10123.        AUTOEXEC.BAT file of computers with serial printers.  The command
  10124.        is: MODE LPT#:=COMn where #  is 1, 2 or 3  and n is 1 or 2.   See
  10125.        your DOS manual for more information.  Labels can only be sent to
  10126.        LPT devices. 
  10127.  
  10128.        Line spacing - <6>, <8> or <S>pecial lines per inch 
  10129.        Most printers are  configured to print six lines  per inch (LPI),
  10130.        but have an option for selecting 8 LPI vertical spacing.  A label
  10131.        printed  at 8  LPI is usually  a bit  harder to read  because the
  10132.        lines are much closer together.   Sometimes 8 LPI causes the tops
  10133.        of some upper case characters to touch the bottoms of  characters
  10134.        with descenders like p, j and y. 
  10135.  
  10136.        When you select <6> or <8>,  File Express uses the printer  codes
  10137.        found in the  current printer definition file.   You can override
  10138.        these codes by selecting <S>pecial.
  10139.  
  10140.        <R>egular, <C>ompressed, <T>welve or <S>pecial pitch 
  10141.        If  your  printer  is  capable  of  printing   in  compressed  or
  10142.        twelve-pitch  (sometimes called Elite) mode, selecting <C> or <T>
  10143.        causes special printer control  codes to be  sent to the  printer
  10144.        before the  labels  begins.   Most  dot matrix  printers  have  a
  10145.        compressed  print option which produces a much narrower character
  10146.        than regular print, usually 17 characters per inch instead of the
  10147.        standard  10 characters  per inch.    Many printers  also have  a
  10148.        12-pitch or Elite font as well. 
  10149.  
  10150.        Selecting <S>pecial  lets you  change the  default printer  codes
  10151.        normally used from the printer definition file.  If your  printer
  10152.        has  a switch  or button  on  the front  for selecting  character
  10153.        pitch, and you have set it to a pitch other than  normal, specify
  10154.        <S>pecial and blank  out the default codes so that  none are sent
  10155.        to your printer overriding your switch settings. 
  10156.  
  10157.  
  10158.        Printer initialization string, <D>efault or <S>pecial 
  10159.        Sometimes it is desirable to send a sequence of characters to the
  10160.        printer  before  the labels  start  printing, maybe  to  select a
  10161.        special printer option or font.  Users with laser printers  might
  10162.        use this option to  set their printer  to landscape mode.   Users
  10163.        with color printers might use it to select a ribbon color.  Users
  10164.        with multi-bin sheet feeders might need to select a special form.
  10165.        Any characters may be entered into  this field.  For ASCII values
  10166.        and special symbols, enclose the ASCII value in  <> symbols.  For
  10167.        example, to set an Epson/IBM  printer to emphasized mode requires
  10168.        that an <Esc> followed by an upper-case E be sent to the printer.
  10169.  
  10170.  
  10171.  
  10172.                                                     PRINTING LABELS  221
  10173.   ----------------------------------------------------------------------
  10174.  
  10175.        Enter <Esc>E in the initialization string so these codes are sent
  10176.        to the  printer before the labels start.  For more information on
  10177.        entering codes and characters into the initialization string, see
  10178.        the Macro Key section.
  10179.  
  10180.        Using the  Setup program  that comes with  File Express,  you can
  10181.        enter a default initialization  printer code.   If you have  done
  10182.        this, press  <D> to use  it, or press  <S> to change  the code or
  10183.        blank it out.
  10184.  
  10185.        Printer reset string, <D>efault or <S>pecial
  10186.        This string  is  sent to  your  printer after  your  labels  have
  10187.        printed.   This can be used to reset any special printer features
  10188.        that were set using the initialization string above.
  10189.  
  10190.        When  everything  is  correct  on  the  Printer  Options  screen,
  10191.        pressing <F10> or  <Esc> returns you to the  Label Output Options
  10192.        screen.
  10193.  
  10194.        When  all the  options on  the  Output Options  screen have  been
  10195.        selected, press <F10>.  After saving the label format your labels
  10196.        begin printing. When the labels finish, this message displays: 
  10197.  
  10198.  
  10199.                                 Printing completed
  10200.  
  10201.                        x records used x labels were printed
  10202.  
  10203.  
  10204.        If the  message  indicates that  zero labels  were printed,  this
  10205.        means there were  no matches found  for your selection  criteria.
  10206.        Press any key to return to the Label Menu. 
  10207.  
  10208.  
  10209.  
  10210.   222  PRINTING LABELS
  10211.   ----------------------------------------------------------------------
  10212.  
  10213.   Labels For Other Applications 
  10214.        Mailing lists  are by far the  most popular use  of File Express.
  10215.        But there are  many other business and personal  applications for
  10216.        labels.  At Expressware we print labels from our Orders  database
  10217.        which are used as picking tickets by the shipping department.  We
  10218.        print labels from our Inventory database which are used as  shelf
  10219.        tags and case lot tags. 
  10220.  
  10221.        And it  doesn't need an adhesive  backing to be printed  with the
  10222.        Label  program.   Name  tags, postcards,  shelf tags  -- anything
  10223.        small with just  a few fields can  be printed.  One  File Express
  10224.        user  entered all  the merchandise  for  his garage  sale into  a
  10225.        database, then printed price tags for all the items on  removable
  10226.        labels.   As  each item  was sold,  he found  the  record in  the
  10227.        computer, updated the price, and  printed the customer a  receipt
  10228.        on the spot.  This  shows that new applications for File  Express
  10229.        are  limited only  by your  imagination  and the  length of  your
  10230.        extension cord. 
  10231.  
  10232.  
  10233.   Quick Labels 
  10234.        Quick Labels were briefly mentioned in the chapters on adding and
  10235.        changing records.    When  new  data  is  being  entered  into  a
  10236.        database, it is sometimes desirable to print a label for each new
  10237.        record added.   For  example, at  Expressware, we  print a  quick
  10238.        label for each customer's order as  it is entered into the Orders
  10239.        database.   The label contains  the customer's name  and shipping
  10240.        address, and also has a line across the top indicating  the order
  10241.        date and products  to ship.  To print this Quick Label, the order
  10242.        desk clerk enters  the order information, then  presses <Ctrl-L>.
  10243.        The label prints immediately. 
  10244.  
  10245.        Quick Labels can also be printed when changing or viewing records
  10246.        in the database.   For example, when mailing  correspondence to a
  10247.        customer  we search  the Customer  database for his  record, then
  10248.        press <Ctrl-L> to print a Quick Label. 
  10249.  
  10250.        The  Quick Label feature  can be used for  more than just labels.
  10251.        It can be used to print sales receipts, name tags, or  just about
  10252.        any document with a small amount of printed data.  At Expressware
  10253.        we  have a  quick label  format to  print Visa/Mastercard  charge
  10254.        slips. 
  10255.  
  10256.   Defining a Quick Label 
  10257.        A Quick  Label is  simply an ordinary  label format  that can  be
  10258.        printed anytime a record is displayed on the screen.  To assign a
  10259.        Label Format as a Quick Label, go to the Choose an Existing Label
  10260.        option on the Label Menu.  Highlight the format name you  want to
  10261.        use and  press  <Ctrl-L>.    File  Express  prompts  you  for  an
  10262.        assignment number between 1 and 9 and displays the number  on the
  10263.        selection list.  If you have more than one Quick Label assignment
  10264.  
  10265.  
  10266.  
  10267.                                                     PRINTING LABELS  223
  10268.   ----------------------------------------------------------------------
  10269.  
  10270.        made, you will be prompted for the  number when you want to print
  10271.        a Quick Label later.
  10272.                                Maintenance 
  10273.  
  10274.  
  10275.  
  10276.        This chapter covers  those functions of  File Express which  most
  10277.        people  use only  occasionally.   The  Maintenance functions  are
  10278.        "overhead" in  the sense that they  are not part of  the everyday
  10279.        data entry and report printing process.  But the occasional times
  10280.        when you need one of these  functions, you will be happy to  find
  10281.        that they are as easy to use as the rest of File Express. 
  10282.  
  10283.  
  10284.  
  10285.  
  10286.   The Maintenance Menu 
  10287.        To  select the maintenance function, press <7> or <M> on the Main
  10288.        Menu.  The Maintenance Menu displays: 
  10289.  
  10290.  
  10291.  
  10292.   224  CHANGING THE DATABASE
  10293.   ----------------------------------------------------------------------
  10294.  
  10295.   Changing Database Specifications 
  10296.  
  10297.        Menu choice <1> is  used to change the  format of your  database.
  10298.        You can change field names, field types, field lengths, number of
  10299.        decimals, formulas,  and edit  masks.   You can  add new  fields,
  10300.        delete fields  and  move them  around.   All  these  things  were
  10301.        defined originally when the database was created.
  10302.  
  10303.        It is common to define a database and start putting data into it,
  10304.        then realize that a field is missing, or is too short, or has the
  10305.        wrong format.  When this happens it is not necessary to start all
  10306.        over.  Every aspect of a database  can be changed at some time in
  10307.        the future. 
  10308.     
  10309.        Here are  some kinds  of changes  you may  need to  make, and  an
  10310.        explanation of how to make them: 
  10311.  
  10312.        FIELD NAME: Use the <C>hange option.  Also remember to change any
  10313.        formulas in reports which refer to the field by name. 
  10314.  
  10315.        FIELD TYPE: Use the <C>hange option. 
  10316.  
  10317.        FIELD LENGTH: Use the <C>hange option. 
  10318.  
  10319.        NUMBER OF DECIMALS: Use the <C>hange option. 
  10320.  
  10321.        ADDING A NEW FIELD: Use the <I>nsert option.
  10322.  
  10323.        DELETING A FIELD: Use the <D>elete option.
  10324.  
  10325.        MOVING A FIELD: Use the <M>ove option.
  10326.  
  10327.  
  10328.        Before making extensive changes to a database's specifications it
  10329.        is advisable to make a  backup copy of the database.  Data can be
  10330.        lost or  destroyed by  a simple  error in  typing.  For  example,
  10331.        intending to enlarge  an address field from 20  to 30 characters,
  10332.        if  it  were  inadvertently  entered  as  3  characters, all  the
  10333.        addresses would be lost except for the first three characters.  A
  10334.        backup copy is the  only recourse in this instance.   The chapter
  10335.        titled Backing Up Your Data gives detailed instructions on making
  10336.        backups.  
  10337.  
  10338.  
  10339.  
  10340.                                               CHANGING THE DATABASE  225
  10341.   ----------------------------------------------------------------------
  10342.  
  10343.        As  we mentioned  in the  chapter  titled Open  A Database,  this
  10344.        Change screen is the same one used for defining a new database: 
  10345.  
  10346.  
  10347.  
  10348.  
  10349.  
  10350.  
  10351.                  Registered Version has screen picture here
  10352.  
  10353.  
  10354.  
  10355.  
  10356.  
  10357.  
  10358.  
  10359.  
  10360.  
  10361.  
  10362.        To change one of the fields, press <C> and this prompt appears: 
  10363.  
  10364.                    Enter number of field to change ___ 
  10365.  
  10366.        Type in the field number, and press <Enter>.  The cursor moves to
  10367.        the line  containing that field's specifications.   To change the
  10368.        field's name, just type the new  name over the old one and  press
  10369.        <Enter>.  To leave the field name as it is, just press <Enter>. 
  10370.  
  10371.        The cursor advances  to the Type column.   A field's type  can be
  10372.        changed  to any other valid type: <C>haracter, <N>umeric, <D>ate,
  10373.        <F>ormula,  <T>ext formula or <U>ser-defined.  However, there are
  10374.        some precautions to take  when there are  already records in  the
  10375.        database and a type is changed: 
  10376.  
  10377.        Converting   to  <N>umeric:  before  changing  a  field  type  to
  10378.        <N>umeric,  be sure  all  existing  records  have  valid  numeric
  10379.        characters  (digits  0-9, decimal,  minus sign  or space)  in the
  10380.        field before converting it.  If the field  length is greater than
  10381.        14, the field can be converted to <N>umeric, but the field length
  10382.        will be shortened. 
  10383.  
  10384.        Converting  to <D>ate: Be  careful with this  kind of conversion.
  10385.        File Express stores  all dates in a YYYYMMDD  format and converts
  10386.        this format to the current default date format at display  times.
  10387.        To convert an existing field of another type to a date field, the
  10388.        field must  either be  blank or contain  valid dates  in YYYYMMDD
  10389.        format.
  10390.  
  10391.        Converting  to <U>ser-Defined:  Be  careful  with  this  kind  of
  10392.        conversion also.  File Express stores masked fields without their
  10393.        masks.  A phone  number field with an entry  of: (206)788-0932 is
  10394.  
  10395.  
  10396.  
  10397.   226  CHANGING THE DATABASE
  10398.   ----------------------------------------------------------------------
  10399.  
  10400.        stored as 2067880932.   The mask characters are  added at display
  10401.        and print times.  Any field converted to a User Defined type will
  10402.        be  handled in  the same  manner.   This  could cause  unexpected
  10403.        results.
  10404.  
  10405.        Converting to <F>ormula or <T>ext-formula: After you have entered
  10406.        all the changes  to the database specification, select  Item 4 on
  10407.        the Maintenance Menu:  Recalculate Database, which evaluates  the
  10408.        formula fields in all the records  and puts the correct result in
  10409.        them. 
  10410.  
  10411.        If a  field type  is changed and  the data is  not in  the proper
  10412.        format for  that  field  type, reports  and  searches  may  yield
  10413.        unpredictable results when referencing the field. 
  10414.  
  10415.        Next the cursor advances to  the Length field.  A field's  length
  10416.        can be changed  by simply entering  the new length.   The maximum
  10417.        value for this field varies depending on the field type, but File
  10418.        Express indicates the maximum in its prompt message.  <C>haracter
  10419.        fields,  <T>ext  Formula  fields and  <U>ser-defined  fields  are
  10420.        limited to  a length  of 1000.   <N>umeric  fields and  <F>ormula
  10421.        fields are  limited to  14.   <D>ate fields  are automatically  a
  10422.        length of  8 or 10  depending on the  current date format,  so no
  10423.        change is permitted.   File Express also verifies  that the total
  10424.        record length does not exceed 4,000 characters. 
  10425.  
  10426.        For numeric fields, or those being changed to <N>umeric type, the
  10427.        cursor stops  in the format column and  prompts for the number of
  10428.        decimal places, which may be changed at this time. 
  10429.  
  10430.        After  all the  changes have  been made,  press <S>  to save  the
  10431.        changes to disk.  The changes are  saved in the "Database Header"
  10432.        file, called databasename.HDR.  If field lengths  are not changed
  10433.        and fields have  not been added, deleted, or  moved, this process
  10434.        takes just a few seconds. 
  10435.  
  10436.  
  10437.  
  10438.                                               CHANGING THE DATABASE  227
  10439.   ----------------------------------------------------------------------
  10440.  
  10441.        If one or more field lengths are changed or if you have inserted,
  10442.        deleted or moved one or  more fields, File Express must  read the
  10443.        entire  data file and rewrite it.   This process can take several
  10444.        minutes  on large  databases.   Before the  process  begins, this
  10445.        warning message appears: 
  10446.  
  10447.  
  10448.  
  10449.  
  10450.  
  10451.  
  10452.                  Registered Version has screen picture here
  10453.  
  10454.  
  10455.  
  10456.  
  10457.  
  10458.  
  10459.  
  10460.  
  10461.  
  10462.  
  10463.  
  10464.  
  10465.        The changes you  make to  a database  format can be  made to  the
  10466.        current database  file or can  be made to  a copy of  the current
  10467.        file, thus creating a new database with the new format.
  10468.  
  10469.        If  you choose to make the changes to the current database, press
  10470.        <1> or <R>.  File Express makes all the changes you indicated and
  10471.        returns you to the Maintenance Menu.
  10472.  
  10473.        If you want to create a new database with the changes  applied to
  10474.        it, press <2> or  <C>.  File Express prompts you  to: "Enter name
  10475.        of new  database _________".   Fill  in a new  database name  and
  10476.        press <Enter>.   File  Express reads  the data  from the  current
  10477.        database and makes the changes and writes the information to  the
  10478.        new  database  file.   When  the  process  is complete,  you  are
  10479.        returned to the Main Menu with the new database open.
  10480.  
  10481.        As always, the <Esc> key exits the process.  In this case back to
  10482.        the Change Database screen.  
  10483.  
  10484.  
  10485.  
  10486.   228  CUSTOM INPUT SCREENS
  10487.   ----------------------------------------------------------------------
  10488.  
  10489.  
  10490.                       Painting Custom Input Screens
  10491.  
  10492.        The Paint  option lets  you redesigned the  input screen  so your
  10493.        custom  screen format  is  displayed when  records  are added  or
  10494.        changed.  The Paint option is reached from the Maintenance  Menu.
  10495.        To select this option  from the menu,  either move the  highlight
  10496.        bar  using the  cursor keys,  <Spacebar>  or mouse  to the  Paint
  10497.        option and press <Enter> or <P>.  The View Menu appears: 
  10498.  
  10499.  
  10500.  
  10501.                                                CUSTOM INPUT SCREENS  229
  10502.   ----------------------------------------------------------------------
  10503.  
  10504.   Editing an Existing View Screen
  10505.        If  you have previously defined Views  for your current database,
  10506.        you can display them for editing.  When you do, a list of all the
  10507.        currently defined Views appears in a selection window.  To select
  10508.        any View, move the highlighted bar to the  desired line and press
  10509.        <Enter> or type in  the name of the View in the  input area.  The
  10510.        View is displayed on the screen where  you can make changes.  The
  10511.        editing process is described below under Painting a View Screen.
  10512.  
  10513.        You can also load Views from other  databases as a starting point
  10514.        for the  current database.   While  the View  list is  displayed,
  10515.        press <Alt-U> to use a View from another database.  File  Express
  10516.        pops up a window  containing a list of all the  database files in
  10517.        the current data directory from which you can select an alternate
  10518.        database to select Views from.
  10519.  
  10520.   Deleting a View
  10521.        To delete any View from the View List, move the highlight  bar to
  10522.        the View you want to erase and press <Alt-D>.  File Express asks:
  10523.  
  10524.  
  10525.                         Delete this view [Y/N]? Y
  10526.  
  10527.        If  you are sure  you want to  delete the view,  press <Enter> or
  10528.        <Y>.  To  cancel the delete command  at this point, press  <N> or
  10529.        <Esc>
  10530.  
  10531.  
  10532.   Renaming a View
  10533.        You can  rename an  existing View  or change  its description  by
  10534.        pressing <Alt-R> while the name is highlighted.
  10535.  
  10536.  
  10537.   Defining a New View Screen
  10538.        If you want  to define a brand new View for the current database,
  10539.        type a  new name  into the input  area and  press <Enter>.   File
  10540.        Express confirms that you want to  define a new View and displays
  10541.        a new, clean View Screen for you to define.
  10542.  
  10543.  
  10544.   Set the Default View
  10545.        To  tell File Express  the View you  want to use  when adding and
  10546.        editing records move the  highlight bar to  the desired View  and
  10547.        press <Enter>.  You can also set the default View while adding or
  10548.        editing records by pressing <Alt-V>.
  10549.  
  10550.  
  10551.  
  10552.   230  CUSTOM INPUT SCREENS
  10553.   ----------------------------------------------------------------------
  10554.  
  10555.   Painting a View Screen
  10556.        Whether you are defining a new View screen or editing an existing
  10557.        View to  make changes,  the process is  the same.   A  blank View
  10558.        screen looks like this:
  10559.  
  10560.  
  10561.  
  10562.  
  10563.  
  10564.  
  10565.                  Registered Version has screen picture here
  10566.  
  10567.  
  10568.  
  10569.  
  10570.  
  10571.  
  10572.  
  10573.  
  10574.  
  10575.  
  10576.        There are 21  blank lines to  work with on  each of ten  possible
  10577.        pages that can be painted.  Each line is 80  character long.  The
  10578.        default color is  General Color as defined in  the Setup program.
  10579.        The top of the  screen has a horizontal  line defining the  upper
  10580.        limit of the  screen.  The bottom  three lines of the  screen are
  10581.        reserved  for option  prompts and  position  indicators that  are
  10582.        described below.
  10583.  
  10584.   Moving Around the View Screen
  10585.        Moving around the  screen is simply a matter of  using the cursor
  10586.        keys  to move  the blinking  cursor  to any  position within  the
  10587.        paintable portion of the screen (21 lines x 80 columns).   As you
  10588.        move the cursor around the screen, there are position  indicators
  10589.        at the bottom  right corner of the window  displaying the current
  10590.        row  and column of  the cursor.   There is also  a page indicator
  10591.        that tells which of the ten possible pages you are on.  
  10592.  
  10593.        There are also several other keys that make it easier and quicker
  10594.        to move around the screen:
  10595.  
  10596.        <Enter>   Pressing the <Enter> key moves the cursor  down one row
  10597.                  and to column 1.
  10598.  
  10599.        <Home>    Pressing the  <Home> key  moves the  cursor to  the far
  10600.                  left  side of  the screen in  the current row.   If the
  10601.                  cursor is in column 1, pressing <Home> moves the cursor
  10602.                  to the upper  left corner of the screen.   (If you want
  10603.                  to  quickly move to the  upper left corner press <Home>
  10604.                  twice and you are there).
  10605.  
  10606.  
  10607.  
  10608.                                                CUSTOM INPUT SCREENS  231
  10609.   ----------------------------------------------------------------------
  10610.  
  10611.        <End>     Pressing the <End> key moves the cursor to the position
  10612.                  following the last non-blank  character on the  current
  10613.                  line.   If the cursor is already at  the end of a line,
  10614.                  pressing  <End>  moves  the cursor  to  the  lower left
  10615.                  corner of the screen.
  10616.  
  10617.        <Tab>     The  <Tab>  key moves  the  cursor 5  positions  to the
  10618.                  right.
  10619.  
  10620.        <Backtab> The <Backtab> (Shift-Tab), moves the cursor 5 positions
  10621.                  to the left.
  10622.  
  10623.        <Ctrl-PgUp>
  10624.        <Ctrl-PgDn>    These keys move  the cursor to the  top and bottom
  10625.                       of the screen in the current column.
  10626.  
  10627.        <PgUp>
  10628.        <PgDn>    These keys  move up and  down through the  ten possible
  10629.                  paint pages.
  10630.  
  10631.        <Alt-D>   Pressing  <Alt-D> deletes the current line after asking
  10632.                  for confirmation to do so.  All lines below the deleted
  10633.                  line are moved up to fill the void.  Lines containing a
  10634.                  field cannot be deleted.  To remove a line containing a
  10635.                  field, you must first delete the field.  See Removing a
  10636.                  Field below.
  10637.  
  10638.        <Alt-I>   Pressing <Alt-I>  inserts a  new blank  line above  the
  10639.                  line  where the  cursor is.   If there  is text  on the
  10640.                  bottom line (line  21), it is forced off  the bottom of
  10641.                  the screen and is lost.  If the bottom line contains an
  10642.                  input field,  File Express  does not  let you  insert a
  10643.                  line.
  10644.  
  10645.        <Ctrl-R>  Pressing  <Ctrl-R>  repeats  the  last  text  character
  10646.                  typed.
  10647.  
  10648.        <Alt-Y>   Pressing <Alt-Y> deletes the current page  after asking
  10649.                  for confirmation.  All pages below the deleted page are
  10650.                  moved up to fill the void.
  10651.  
  10652.        <Alt-N>   Pressing <Alt-N> inserts  a new page above  the current
  10653.                  page and all  subsequent pages are  moved down to  make
  10654.                  room.    If  page ten  is  painted,  File  Express asks
  10655.                  permission before discarding it.
  10656.  
  10657.        <Spacebar>     The  <Spacebar> key  puts a  blank  at the  cursor
  10658.                       position and moves one position to the right.  The
  10659.                       <Spacebar> will not blank out an input field.
  10660.  
  10661.  
  10662.  
  10663.   232  CUSTOM INPUT SCREENS
  10664.   ----------------------------------------------------------------------
  10665.  
  10666.        <Backspace>    The <Backspace> moves the cursor  one character to
  10667.                       the left  and blanks  any text  character in  that
  10668.                       position.   Any  text characters  or  single  line
  10669.                       fields to the  right of the  cursor are pulled  to
  10670.                       the left.  If there is a window field to the right
  10671.                       of the cursor  that crosses the current  line, the
  10672.                       <Backspace> key  only works as a <Left>  key.  The
  10673.                       <Backspace> key does not blank out an input field.
  10674.  
  10675.        <Del>          The <Del>  key  removes the  character  under  the
  10676.                       cursor and pulls the remainder of the line  to the
  10677.                       left.  The  <Del> key does not work  if the cursor
  10678.                       is on top  of an input field  or to the left  of a
  10679.                       window field.
  10680.  
  10681.        <Insert>  The <Insert> key toggles on and off the insert mode  of
  10682.                  the cursor.  When insert mode is turned on, the  cursor
  10683.                  changes shape from  a blinking line to  a blinking box.
  10684.                  Any  characters typed while in insert mode are inserted
  10685.                  at the current cursor position and the rest of the line
  10686.                  is moved to the right.  If moving the rest of  the line
  10687.                  to the right would  cause an input  field to be  pushed
  10688.                  off  the screen,  inserting  of  further  text  is  not
  10689.                  permitted.   Also, if  there is a  window field  to the
  10690.                  right of the cursor, inserting new characters is not be
  10691.                  allowed.
  10692.  
  10693.        <F10>     Pressing  <F10>  tells File  Express  you are  finished
  10694.                  painting screens and want to save them. 
  10695.  
  10696.        When  you  are painting  an  input  screen,  a  list of  all  the
  10697.        available edit keys and  their purpose is  available on the  help
  10698.        screen by pressing <Alt-H>
  10699.  
  10700.  
  10701.   Adding Text to the Input Screen
  10702.        Additional text can be added anywhere on the input screen  except
  10703.        on top of fields.  Simply  move the cursor to the location  where
  10704.        you want to add text and type what you want.
  10705.  
  10706.        If you type off the right  edge of the screen, the text  wraps to
  10707.        the left side of the screen on the next line down.
  10708.  
  10709.        Inserting Text
  10710.        Text  can be  inserted into  an  existing string  by putting  the
  10711.        cursor into insert  mode.  Pressing the <Insert>  key toggles the
  10712.        cursor in and out of insert mode.  The cursor is a tall  blinking
  10713.        block when  in insert mode.   If the cursor  is to the left  of a
  10714.        window field, or  if inserting characters would push  a field off
  10715.        the screen, File Express does not let you insert characters.
  10716.  
  10717.  
  10718.  
  10719.                                                CUSTOM INPUT SCREENS  233
  10720.   ----------------------------------------------------------------------
  10721.  
  10722.        Deleting Text
  10723.        Text can be deleted on a  line by using the <Backspace> or  <Del>
  10724.        key.   Both of these keys pull any trailing text to the left.  If
  10725.        the cursor is  to the left of  a window field, these  keys do not
  10726.        work.   You  must  use  the  <Spacebar>  to  blank  out  unwanted
  10727.        characters in this case.
  10728.  
  10729.        Colored Text
  10730.        You  can change the  color of the  text being typed  by using the
  10731.        Paint and  Color  options.   These  are described  below  in  the
  10732.        section called Painting Color on the Screen.
  10733.  
  10734.        Special Characters
  10735.        To type special characters  that are not  found on the  keyboard,
  10736.        you  must know the  ASCII number that  is assigned to  it.  These
  10737.        codes can  be found in Appendix B at the  end of this manual.  To
  10738.        enter a  special character you must hold  down the <Alt> key and,
  10739.        while doing so, type  in the ASCII number on  the numeric keypad,
  10740.        and then let  the <Alt>  key up.   The character  appears at  the
  10741.        current cursor  position.   To enter the  British Pound  sign for
  10742.        example, hold down  the <Alt>  key and  type 156  on the  numeric
  10743.        keypad.  When you  let up the <Alt> key the  character appears on
  10744.        the screen.
  10745.  
  10746.  
  10747.   Placing Fields on the Screen
  10748.        File Express offers many different options when placing fields on
  10749.        the View screens.   Fields can  be placed with  or without  their
  10750.        field names,  as sideways scrolling  fields, or as  window fields
  10751.        that occupy a  rectangular block on the screen  and automatically
  10752.        word-wraps when  you are  entering text.   Fields  can be  placed
  10753.        anywhere on the  screen if  there is  enough room  for the  field
  10754.        style selected.   Fields can  also be placed  as either  INPUT or
  10755.        DISPLAY.   A field  placed for INPUT  lets you  enter information
  10756.        into it when adding or editing records and can only be placed one
  10757.        time in any particular database view.  DISPLAY fields are a view-
  10758.        only picture of  a field that shows whatever  has previously been
  10759.        entered in an  INPUT version of the same field.  For example, you
  10760.        might place your NAME field as an INPUT field on page one  and as
  10761.        a DISPLAY field at  the top of page  two and three to remind  you
  10762.        what record you are entering.   DISPLAY fields can be placed  any
  10763.        number of times on any page.
  10764.  
  10765.  
  10766.   Regular Input Fields
  10767.        To place an INPUT  field on the screen, move the  cursor to where
  10768.        you  want the field located and press  <Alt-F>.  A window appears
  10769.        on the  screen with  a list  of all  the fields  for the  current
  10770.        database.  The prompt at the bottom of the screen changes to:
  10771.  
  10772.          Use the arrow keys to select a field then press <Enter>
  10773.  
  10774.  
  10775.  
  10776.   234  CUSTOM INPUT SCREENS
  10777.   ----------------------------------------------------------------------
  10778.  
  10779.        To select the  field you want  to place on  the screen, move  the
  10780.        highlighted bar to the desired field by using the <Up> and <Down>
  10781.        cursor keys.  (The <Spacebar> also acts as the <Down> key).  When
  10782.        you have highlighted the correct field, press <Enter>.
  10783.  
  10784.        File Express displays  another window containing all  the options
  10785.        for the field.
  10786.  
  10787.                            Field
  10788.                            Name & Field
  10789.                            Field in Window
  10790.  
  10791.  
  10792.        To  choose an  option, move  the highlight  bar to  it  and press
  10793.        <Enter> (or  the left  mouse button).   Each option  is described
  10794.        below:
  10795.  
  10796.        Field
  10797.             Places  just  the field  portion on  the screen  without the
  10798.             field name.  File Express then asks if you want the field to
  10799.             be an INPUT or DISPLAY field.  Press <I> or <D> accordingly.
  10800.             The field is placed  on the screen  at the cursor  position.
  10801.             If the  full length  field does not  fit between  the cursor
  10802.             position and  any field to the  right, or the  right side of
  10803.             the report, File Express prompts:
  10804.  
  10805.         Field will not fit here, press <L> to change its display length
  10806.  
  10807.             Pressing  <L> puts the  field into "rubber  band" mode where
  10808.             you can use  the <Right> and <Left> cursor  keys to contract
  10809.             or  expand  the field  within  the  area available.    Press
  10810.             <Enter> to "drop" the field in place.  A field that has been
  10811.             shortened  in this manner becomes a sideways scrolling field
  10812.             when  input is  done later.   You  can  still enter  text or
  10813.             numbers  to the full length of the  field but the field will
  10814.             scroll sideways as needed.
  10815.  
  10816.        Both Field Name and Field
  10817.             Displays the field name, followed by the field itself.  File
  10818.             Express asks if you want the field to be an INPUT or DISPLAY
  10819.             field.   Press <I> or <D>  accordingly.  The field  name and
  10820.             field  are placed  on  the  screen  starting at  the  cursor
  10821.             position.   The field name  itself is just  text and  can be
  10822.             changed at any time by just typing over it.  The  field name
  10823.             and field are separated by one space.
  10824.  
  10825.        Window Field
  10826.             If the length  of a field is  40 characters or more  you can
  10827.             place the field on the screen  as a Window field.  A  Window
  10828.             field is  a rectangular  block that works  much like  a mini
  10829.  
  10830.  
  10831.  
  10832.                                                CUSTOM INPUT SCREENS  235
  10833.   ----------------------------------------------------------------------
  10834.  
  10835.             word processor.  When you are entering information into this
  10836.             type of field,  it automatically word wraps the  text as you
  10837.             type it in.   To create  this type of  field, press <W>.   A
  10838.             blinking rectangle of  squares appears that is two rows tall
  10839.             and 20 characters wide.  The prompt at the bottoms tells you
  10840.             to:
  10841.  
  10842.             Use Arrow  keys to  stretch the WINDOW  to size  desired and
  10843.             then press <Enter>
  10844.  
  10845.             You  can make  the  block taller  and wider  as long  as the
  10846.             height times width  does not become greater than  the length
  10847.             of the field.   You can stretch the window over  text on the
  10848.             screen if you like,  but File Express does not let you cover
  10849.             over any other field on the screen.  When you have sized the
  10850.             block as desired, press <Enter>.  File Express then asks  if
  10851.             you want the field to be  an INPUT or DISPLAY field.   Press
  10852.             <I> or <D>.    
  10853.  
  10854.        Display-Only Calculated Fields
  10855.             File  Express lets you define calculated fields that are not
  10856.             actually part of the database record definition but are just
  10857.             calculated and  placed on  the screen  whenever a  record is
  10858.             being  displayed.  To  create such  a field,  press <Alt-C>.
  10859.             File Express prompts to:
  10860.  
  10861.             Enter NAME of field? ___________
  10862.  
  10863.             Type in a name, up to twelve characters, and press  <Enter>.
  10864.             File Express asks you to:
  10865.  
  10866.             Enter TYPE of Calc field, <N>umeric or <T>ext? N
  10867.  
  10868.             Select  the  appropriate  field type.    Next,  File Express
  10869.             prompts you to:
  10870.  
  10871.             Enter FORMULA for this field:
  10872.  
  10873.             Type in the  formula you want calculated and  press <Enter>.
  10874.             If you want  help or examples on the  formula handler, press
  10875.             <Alt-H>.  The final two inquiries are:
  10876.  
  10877.             Enter LENGTH of field? 
  10878.  
  10879.             and, if the field was numeric,
  10880.  
  10881.             How many DECIMAL places?
  10882.  
  10883.             The  field  is then  placed  on  the  screen at  the  cursor
  10884.             position.
  10885.  
  10886.  
  10887.  
  10888.   236  CUSTOM INPUT SCREENS
  10889.   ----------------------------------------------------------------------
  10890.                                      empty
  10891.  
  10892.  
  10893.  
  10894.                                                CUSTOM INPUT SCREENS  237
  10895.   ----------------------------------------------------------------------
  10896.  
  10897.  
  10898.                              Changing Fields
  10899.  
  10900.   Changing Field Attributes
  10901.        Once a  field  has been  placed on  the painted  screen, you  can
  10902.        remove  it or change  its display length.   To make  one of these
  10903.        changes, move the  cursor so  that it  is on top  of the  desired
  10904.        field.   When  you have done  this, a  new prompt appears  at the
  10905.        bottom of the screen:
  10906.  
  10907.        <Alt>:               <R>emove  <S>ize to display  <O>rder fields 
  10908.  
  10909.   Removing a Field
  10910.        To remove  the field,  press <Alt-R>.   File  Express blinks  the
  10911.        field and asks:
  10912.  
  10913.             "Are you sure you want to REMOVE THIS FIELD (Y/N)? N"
  10914.  
  10915.        If you are sure that you want  the field removed from the painted
  10916.        screen, press <Y>.  The blinking  field is erased.  If the  field
  10917.        was preceded by  the field name, the  name remains on the  screen
  10918.        because it is  just considered text.   If you want to  remove it,
  10919.        you must blank it out using the <Spacebar>.
  10920.  
  10921.   Changing the Field Display Length
  10922.        To change the length of the  field that is displayed on the  View
  10923.        screen,  press <Alt-S> while  the cursor is on  top of the field.
  10924.        The field starts  blinking and the  prompt at the  bottom of  the
  10925.        screen changes to:
  10926.  
  10927.        Actual  field  length=xx,  Maximum   Display  length=yy,  Display
  10928.   length=<zz>
  10929.  
  10930.        To change the display length of the field, use the cursor keys to
  10931.        shorten or lengthen the  blinking squares.   A regular field  (as
  10932.        opposed  to a Window field) may be  shortened to one character or
  10933.        lengthened  to whatever  fits on  the  screen or  to its  defined
  10934.        length, whichever is less.  (Note that the actual defined  length
  10935.        of the field is not being changed, just the length displayed.)  A
  10936.        field cannot be  stretched over another field but  can be stretch
  10937.        over existing text on the screen.  If the field is stretched over
  10938.        text and then shrunk  back, the overwritten  text reappears.   If
  10939.        the field was  placed as a Window  field, the whole block  blinks
  10940.        and can be re-sized with the cursor keys.  The minimum size for a
  10941.        Window field is 2 rows high by 20 characters long.
  10942.  
  10943.        A regular field, whose  display length on the screen is less than
  10944.        its defined length,  becomes a sideways scrolling field.   Excess
  10945.        text that is  entered at the  right end of  the field causes  the
  10946.        existing text to slide to  the left.  A Window field that  has an
  10947.  
  10948.  
  10949.  
  10950.   238  CUSTOM INPUT SCREENS
  10951.   ----------------------------------------------------------------------
  10952.  
  10953.        input block that is  smaller than the  size of the defined  field
  10954.        scrolls up and down like a word processor.
  10955.  
  10956.  
  10957.   Input Order
  10958.        As you place fields on the View screen, File Express  keeps track
  10959.        of their order.   Later, when you  are entering information  into
  10960.        the records of  your database,  File Express  presents each field
  10961.        in this same order.  You can, however, change this input order by
  10962.        pressing the <Alt-O> key.  File Express asks:
  10963.  
  10964.      Do you want to <S>et the field order or <T>est the order  [S/T]?
  10965.  
  10966.  
  10967.   Changing Field Input Order
  10968.        To change the field input order, press <S>.   File Express blinks
  10969.        every field on the current page  and the prompt at the bottom  of
  10970.        the screen changes to:
  10971.     
  10972.        "Press <Enter>  on each blinking  field in new  processing order.
  10973.        <F10>-Finished"
  10974.  
  10975.        Move  the cursor  to the field  on the  screen where you  want to
  10976.        begin  input  and  press  <Enter>.   That  field  stops blinking.
  10977.        Continue to move  the cursor to successive fields  in the desired
  10978.        input order and press <Enter> on each one to freeze the blinking.
  10979.        When you have  completed every field on the  screen, File Express
  10980.        remembers the new order and tells you:
  10981.  
  10982.        "All  fields have been assigned new processing order ...press any
  10983.        key".
  10984.  
  10985.        This re-ordering applies only to the fields that are displayed on
  10986.        the current screen.   The input order of  fields on other screens
  10987.        are not affected.  To change them, you must go to the other pages
  10988.        and go through the same process.
  10989.  
  10990.  
  10991.   Testing Input Order
  10992.        To  test the  current input  order of the  fields on  the current
  10993.        screen, press <T>.   File Express blinks  the first field  in the
  10994.        input loop and prompts you to:
  10995.  
  10996.        "Use arrow  keys to  loop through processing  order.   <Esc> when
  10997.        done"
  10998.  
  10999.        Pressing <Down>  moves through the  fields in their  input order.
  11000.        When the bottom is reached, File Express says:
  11001.  
  11002.        "This is the LAST field on this page...press any key". 
  11003.  
  11004.  
  11005.  
  11006.                                                CUSTOM INPUT SCREENS  239
  11007.   ----------------------------------------------------------------------
  11008.  
  11009.        To go back up  through the fields  in reverse input order,  press
  11010.        <Up>.  When you have reached  the first input field on the  page,
  11011.        File Express says: 
  11012.  
  11013.        "This is the 1st field on this page...press any key"
  11014.  
  11015.        Press <Esc> when you are done.
  11016.  
  11017.  
  11018.   Painting Color on the Screen
  11019.  
  11020.  
  11021.        File Express lets you change the color of text on the View screen
  11022.        pages.   Each  individual character  can be  changed if  desired.
  11023.        Press <Alt-P>.  The prompt at the bottom of the screen indicates:
  11024.  
  11025.                Paint mode is OFF, to toggle it ON press <P>
  11026.                         To change colors press <C>
  11027.  
  11028.  
  11029.        Turning Paint  On and Off:  Press <P>  to toggle the Paint option
  11030.        ON and OFF.   The current  status of the  Paint option is  always
  11031.        displayed at the  bottom of the screen.  When the Paint option is
  11032.        ON, any  characters that  are typed  or any  characters that  are
  11033.        passed over with the  cursor change to the  current color.   When
  11034.        the  Paint option  is OFF,  any characters typed  remain whatever
  11035.        color  is in effect  at the  positions where  the text  is typed.
  11036.        Moving  the cursor  around with  the  Paint option  OFF does  not
  11037.        change any existing colors.
  11038.  
  11039.  
  11040.        Changing  The  Current  Color:    To  change  the  current  color
  11041.        selection, press <C>.  The current color combination is displayed
  11042.        at the bottom of the screen along with the prompt:
  11043.  
  11044.    UP/DOWN change foreground, LEFT/RIGHT change background, then press
  11045.   <Enter>
  11046.  
  11047.        Use the  <Up> and <Down> keys to  change the foreground color and
  11048.        <Left>  and <Right>  to change  the background.   As you  do, the
  11049.        color combination display  changes.  There are  sixteen available
  11050.        foreground colors and eight background colors:
  11051.  
  11052.  
  11053.  
  11054.   240  CUSTOM INPUT SCREENS
  11055.   ----------------------------------------------------------------------
  11056.  
  11057.             Foreground Colors        Background Colors
  11058.  
  11059.             Black                    Black
  11060.             Blue                Blue
  11061.             Green                    Green
  11062.             Cyan                Cyan
  11063.             Red                 Red
  11064.             Magenta             Magenta
  11065.             Brown                    Brown
  11066.             White                    White
  11067.             Gray
  11068.             Lt Blue
  11069.             Lt Green
  11070.             Lt Cyan
  11071.             Lt Red
  11072.             Lt Magenta
  11073.             Yellow
  11074.             Lt White
  11075.  
  11076.        If the foreground color is the  same as the background color, you
  11077.        won't  be  able to  see the  color names  printed in  the window.
  11078.        These color combinations should be avoided.
  11079.  
  11080.  
  11081.   Drawing Lines
  11082.        File Express has a powerful line  drawing mode that makes it easy
  11083.        to draw lines and boxes anywhere on your input screens.  Two keys
  11084.        control the Line options, <Alt-L> and  <Alt-B>.  Pressing <Alt-L>
  11085.        toggles the Line  option ON and OFF.   The current status  of the
  11086.        option is always displayed at the bottom of the screen.  When the
  11087.        Line option is ON, you can use the cursor keys to move around the
  11088.        screen drawing lines in  the current Box style.  Whenever  a line
  11089.        intersects another  line, the correct  intersection character  is
  11090.        automatically drawn for the current Box style.
  11091.  
  11092.  
  11093.   Changing the Box Style
  11094.        File Express provides eight different line drawing character sets
  11095.        along with an option to ERASE lines as the cursor is moved.   The
  11096.        Box styles are:
  11097.  
  11098.                               
  11099.                  Registered Version has screen picture here
  11100.                               
  11101.  
  11102.        The current  Box style is always  displayed at the  bottom of the
  11103.        screen.   To change the style, press  <Alt-B>.  The character set
  11104.        changes to the next style.  Repeated pressing of <Alt-B>  rotates
  11105.        through  the eight  available Box  styles and  the  ERASE option.
  11106.        When you have selected the desired Box style and the  Line option
  11107.        is turned on, you can then use  the cursor keys to draw lines and
  11108.  
  11109.  
  11110.  
  11111.                                                CUSTOM INPUT SCREENS  241
  11112.   ----------------------------------------------------------------------
  11113.  
  11114.        boxes.  If the cursor is not at the point where you want to start
  11115.        drawing, press  <Alt-L> to turn the Line option OFF and then move
  11116.        the cursor to the desired starting position and press <Alt-L>  to
  11117.        turn the Line option back on.
  11118.  
  11119.        As  you are drawing  lines and boxes  you should be  aware of the
  11120.        following rules.
  11121.  
  11122.             Lines  can  be drawn  anywhere  on  the screen  except  over
  11123.             fields.  This means that you can  draw a line right over any
  11124.             existing  text that you have previously  typed.  Since Field
  11125.             Names are considered text, they too can be overwritten by  a
  11126.             line or box.
  11127.  
  11128.             When attempting  to draw  a line  over an  input field,  the
  11129.             cursor moves normally but no line is drawn until the  cursor
  11130.             moves off the input field.  This also applies to Display and
  11131.             Calculated fields.
  11132.  
  11133.             Lines cannot  be drawn  off the top,  bottom, left  or right
  11134.             edge of the screen.
  11135.  
  11136.             If the Paint option  is ON, lines  are drawn in the  current
  11137.             color.
  11138.  
  11139.             If the  Paint option  is OFF,  lines are  drawn in  whatever
  11140.             colors are on the screen in the positions the lines cross.
  11141.  
  11142.  
  11143.   Saving or Canceling the View Screens
  11144.        When you have finished laying out your input screen and are ready
  11145.        to save it, press <F10>.  File Express asks if you would like to:
  11146.  
  11147.  
  11148.  
  11149.                         Save all changes (Y/N)? Y 
  11150.                            or <C> to continue
  11151.  
  11152.  
  11153.        To resume editing the View screen, press <C>.
  11154.  
  11155.        To exit without saving the View screens, press <N>.
  11156.  
  11157.        To  save the View  screens, press <Y>  or <Enter>.   File Express
  11158.        prompts for a View name and description and then saves everything
  11159.        in the current data directory and returns to the View Menu.
  11160.  
  11161.        A maximum of ten different views can be defined.
  11162.  
  11163.  
  11164.  
  11165.   242  MACRO KEYS
  11166.   ----------------------------------------------------------------------
  11167.  
  11168.  
  11169.                              Macro Key Setup
  11170.  
  11171.        File  Express  has  built-in keyboard  macro  routines.  Keyboard
  11172.        macros  provide an  alternative to  typing long  strings of  data
  11173.        repeatedly.   If  the same  data  is entered  repeatedly in  your
  11174.        database,  you can  define a  keyboard  macro that  automatically
  11175.        types the  data when  you press  a function  key.   For  example,
  11176.        suppose you are constantly typing Fort Lauderdale, Florida into a
  11177.        field in  your database.   You can set  up a macro so  that every
  11178.        time the <F1> key is pressed, the words Fort Lauderdale,  Florida
  11179.        appear on the screen as if you typed them yourself. 
  11180.  
  11181.        There are two ways  to define macro keys in File Express.  One is
  11182.        to type in the keys in the Macro Key  Setup section and the other
  11183.        is  to record  your keystrokes  as  you actually  go through  the
  11184.        process you want the macro to duplicate.
  11185.  
  11186.  
  11187.  
  11188.                                                          MACRO KEYS  243
  11189.   ----------------------------------------------------------------------
  11190.  
  11191.   Defining a Macro
  11192.        To go to the Macro Key Setup section where you can define a Macro
  11193.        or  to  edit  an existing  Macro,  press  <M>  or  <4>  from  the
  11194.        Maintenance Menu to bring up the Macro Key List:
  11195.  
  11196.  
  11197.  
  11198.  
  11199.  
  11200.  
  11201.                  Registered Version has screen picture here
  11202.  
  11203.  
  11204.  
  11205.  
  11206.  
  11207.  
  11208.  
  11209.  
  11210.  
  11211.  
  11212.  
  11213.        There are  36 Macro  Keys that can  be defined  in File  Express.
  11214.        They are <F1> through <F9>, <Shift-F1> through <Shift-F9>, <Ctrl-
  11215.        F1> through  <Ctrl-F9>, and  <Alt-F1> through  <Alt-F9>.   <F10>,
  11216.        <Shift-F10>,  <Ctrl-F10>,  and  <Alt-F10>  are  reserved  by File
  11217.        Express and cannot be use for Macro keys.
  11218.  
  11219.        To edit an existing  Macro key or to define a new  Macro key, use
  11220.        the <Up> and <Down> cursor keys and <PgDn> and <PgUp> to move the
  11221.        highlighted bar to the desired Macro key and then press <Enter>.
  11222.  
  11223.        When you  press <Enter>, the  prompt at the bottom  of the screen
  11224.        changes to:
  11225.  
  11226.        Type in macro contents...then press <Enter>.  <Alt-H> for Help.
  11227.  
  11228.        You can now type  in the contents of the Macro  key.  This should
  11229.        contain exactly  what you want to have typed  as if it were being
  11230.        entered from  the keyboard when  you press the  Macro key in  the
  11231.        future.   This  can include  any  key on  the keyboard  including
  11232.        cursor keys, tab keys, enter keys etc.  It can even include other
  11233.        Macro keys.  
  11234.  
  11235.        Text: Normal text  and punctuation keys are typed  in just as you
  11236.        would enter them from the keyboard.  If you want the Macro key to
  11237.        enter Seattle, Washington, for example, you would just type: 
  11238.  
  11239.                            Seattle, Washington
  11240.  
  11241.  
  11242.  
  11243.   244  MACRO KEYS
  11244.   ----------------------------------------------------------------------
  11245.  
  11246.        Control  Keys:  All other  keys  are  entered  by their  name  or
  11247.        abbreviation and enclosed within angle brackets, <>.  Below is  a
  11248.        list of all the available control keys that can be entered into a
  11249.        Macro key:
  11250.  
  11251.          Key:           Description:
  11252.        -------------- --------------------------------------------------
  11253.  
  11254.        <Enter>   The Enter key,  often shown  as a  left pointing  arrow
  11255.                  with a right angle to it.
  11256.  
  11257.        <Esc>     The Esc or Escape key.
  11258.        <Up>      The Up cursor key.
  11259.        <Down>    The Down cursor key.
  11260.        <Left>    The Left cursor key.
  11261.        <Right>   The Right cursor key.
  11262.        <Home>    The Home key.
  11263.        <End>     The End key.
  11264.        <PgDn>    The Page Down key.
  11265.        <PgUp>    The Page Up key.
  11266.        <Tab>     The Tab key.
  11267.        <BTab>    The Backtab key.  Also known as <Shift-Tab>.
  11268.  
  11269.        <Alt-A>   Various option keys.
  11270.         through 
  11271.        <Alt-Z>
  11272.  
  11273.        <Ctrl-A>  Various option keys.
  11274.         through
  11275.        <Ctrl-Z>
  11276.  
  11277.        <F1>      Macro keys.
  11278.         through
  11279.        <F9>
  11280.  
  11281.        <F10>     Used throughout File Express to indicate that a process
  11282.                  is finished.
  11283.  
  11284.        <Shift-F1>     Macro keys.
  11285.         through
  11286.        <Shift-F9>
  11287.  
  11288.        <Ctrl-F1> Macro keys.
  11289.         through
  11290.        <Ctrl-F9>
  11291.  
  11292.  
  11293.                                                          MACRO KEYS  245
  11294.   ----------------------------------------------------------------------
  11295.  
  11296.        <Alt-F1>  Macro keys.
  11297.         through
  11298.        <Alt-F9>
  11299.  
  11300.        <Ins>          The Insert key.
  11301.        <Del>          The Delete key.
  11302.        <Backspace>    The Backspace key.
  11303.  
  11304.        <MainMenu>     This is a  special macro command that  enables you
  11305.                       to start a macro from any  location in the program
  11306.                       and have  the macro  execute correctly.   Whenever
  11307.                       this command is  encountered, File Express returns
  11308.                       you  to the Main Menu  and then continues with any
  11309.                       further commands.
  11310.  
  11311.        <Input>   When  this  command  is encountered  in  a  Macro, File
  11312.                  Express pauses,  pops up a small input window, and lets
  11313.                  you type  in  up to  50  characters.   When  you  press
  11314.                  <Enter>, the characters are played back  as part of the
  11315.                  Macro.
  11316.  
  11317.  
  11318.        File Express translates the  } symbol to  an <Enter> key.   Since
  11319.        the <Enter> key is probably  the most popular control key,  the }
  11320.        symbol (without  brackets)  is the  same  as <Enter>.    If  your
  11321.        keyboard macro  needs to actually enter  the } symbol as  part of
  11322.        its data, enclose the symbol in brackets: <}>. 
  11323.  
  11324.        Complex  keyboard  macros   can  perform  an  entire   series  of
  11325.        operations with a  single keystroke.  For example,  with a single
  11326.        macro key you can  tell File Express to return to  the Main Menu,
  11327.        go to the Report section, select an existing report format,  make
  11328.        certain the  Primary  index is  correct,  print the  report,  and
  11329.        return again to  the Main Menu.   This Macro key might  look like
  11330.        this:
  11331.  
  11332.                  <MainMenu>RCAnnual<Enter>PPxx<MainMenu>
  11333.  
  11334.        Translated, this Macro means:  
  11335.  
  11336.             1.   No matter where you are, return to the Main Menu.
  11337.             2.   Select the Report section by pressing <R>.
  11338.             3.   <C>hoose an existing report.
  11339.             4.   Type  in the  name of  the desired report,  Annual, and
  11340.                  press <Enter>.
  11341.             5.   Press <P> to print the report.
  11342.             6.   Press <P> again to send the output to the printer.
  11343.             7.   Press any key, <x> to start the printing.
  11344.             8.   Press any  key again,  <x>, at  the end  of the  report
  11345.                  printout.
  11346.             9.   Return to the Main Menu again.
  11347.  
  11348.  
  11349.   246  MACRO KEYS
  11350.   ----------------------------------------------------------------------
  11351.  
  11352.  
  11353.  
  11354.        With a lengthy macro  such as this one, it is sometimes necessary
  11355.        to interrupt the  processing before it finishes. While a keyboard
  11356.        macro is running, press the <Esc> key to abort it.  The remaining
  11357.        macro  keystrokes are  flushed  from  the  keyboard  buffer,  and
  11358.        control  is returned to the keyboard.  If an operation is already
  11359.        in process, such  as printing a report, press <Esc> a second time
  11360.        to cancel it. 
  11361.  
  11362.        If  you have  made  changes to  existing macros  and you  want to
  11363.        revert to the set last saved to disk, press <R> to read them in.
  11364.  
  11365.   The Keyboard Recorder 
  11366.        It is  difficult  and time-consuming  to create  large macros  by
  11367.        writing down the keystrokes then entering them one-at-a-time into
  11368.        the text string  on the Macro Setup  screen.  There is  an easier
  11369.        way to  define macros  without even  leaving the  screen you  are
  11370.        currently on. 
  11371.  
  11372.        Press <Alt-M> anywhere in  File Express when you want to  turn on
  11373.        the Macro Recorder and have File Express automatically "remember"
  11374.        each keystroke  you make.   When <Alt-M>  is pressed  this window
  11375.        pops onto the screen: 
  11376.  
  11377.  
  11378.                     Press Function Key to record into
  11379.  
  11380.                   F1 - F9 or Alt-F1- F9 or Ctrl-F1 - F9
  11381.                              or Shift-F1 - F9
  11382.  
  11383.  
  11384.        Select one of  the available Macro keys by  pressing the function
  11385.        key, and from that  point forward, every  keystroke you enter  is
  11386.        recorded  into that  Macro.  When  the macro recorder  is on, you
  11387.        will notice a low "blip" sound each time a key  is pressed.  This
  11388.        serves as  a reminder that  macro recording  is in progress.   To
  11389.        turn off the  macro recorder after all your  keystrokes have been
  11390.        entered,   press  <Alt-M>  a  second  time.    A  window  appears
  11391.        indicating that macro recording has ended and asks: 
  11392.  
  11393.                        Save macro to disk (Y/N)? Y
  11394.  
  11395.  
  11396.        If you would like  to save your  Macro recording for future  use,
  11397.        and have it loaded automatically each time you open the  database
  11398.        you are currently working with, press  <Y>.  If the macro is  not
  11399.        saved at this point, the macro  is still available for use during
  11400.        this session only.  It will be lost when you exit File Express.
  11401.  
  11402.  
  11403.                                                          MACRO KEYS  247
  11404.   ----------------------------------------------------------------------
  11405.  
  11406.        Using <Alt-M> you can quickly and easily define a keyboard  macro
  11407.        without  even leaving  the screen  you are  on.   For  example, a
  11408.        database has several records which need to be changed because the
  11409.        state  code has erroneously been  abbreviated AL for both Alabama
  11410.        and Alaska.  You start through the records,  changing them one at
  11411.        a time, and soon realize there are several hundred records  to be
  11412.        reviewed and changed.  You could possibly use Search and Replace,
  11413.        but you decide it's faster to do it with a keyboard macro. 
  11414.  
  11415.        You  are  in the  Find/Edit Records  section, looking  at records
  11416.        where STATE IS AL when you realize that a keyboard macro would be
  11417.        helpful.   You  press <Alt-M>  then  <F1> to  turn  on the  macro
  11418.        recorder.  Then you edit the current  record and change it to AK.
  11419.        Next you press <F10> to save the changes, and press <F> to search
  11420.        forward and display the next record. 
  11421.  
  11422.        You have  just recorded  your first  keyboard macro.   Now  press
  11423.        <Alt-M> to turn off the recorder.  When asked if you want to save
  11424.        the macro, answer  <N> because this is a one-time-only macro.  If
  11425.        the next record  is also supposed to be changed to AK, just press
  11426.        <F1>.  The  following macro is played  back so you don't  have to
  11427.        type all the keystrokes by hand: 
  11428.  
  11429.                        E<Home><Enter><Enter><Enter>AK<F10>F 
  11430.  
  11431.        Granted  it's a  small  macro, and  if  you had  to  exit to  the
  11432.        Maintenance  Menu  to  define  it,  you  probably  wouldn't  have
  11433.        bothered.   But  you were  going  to make  these nine  keystrokes
  11434.        anyway,   so  by  simply  preceding  them  with  <Alt-M><F1>  and
  11435.        following them with a second <Alt-M><N>, a macro was created. 
  11436.  
  11437.        It is not  likely that macros like this one would be saved, since
  11438.        it is small and performs a temporary, limited function.   But the
  11439.        Macro Recorder is  often used for much more  complex macros which
  11440.        definitely need to be saved.  For example, an inventory  database
  11441.        needs some maintenance done to it at  the end of each year.   The
  11442.        maintenance is easy, but since it's only done once a year, nobody
  11443.        remembers the  exact sequence.   So  this year-end  they play  it
  11444.        smart,  turning on the  Macro Recorder to  permanently record the
  11445.        exact process.  Then, when next year-end rolls around, they  only
  11446.        need to remember that they made a macro a year ago. 
  11447.  
  11448.  
  11449.   248  RECALCULATING
  11450.   ----------------------------------------------------------------------
  11451.  
  11452.  
  11453.   Recalculating The Database 
  11454.  
  11455.        If your database has formulas in it, sometimes it is necessary to
  11456.        recalculate all of  them.  Formulas are  automatically calculated
  11457.        when a new record is added  or when a record is changed, so  most
  11458.        of the time  their contents  are correct.   But if  a formula  is
  11459.        changed or  added using  the Change  Database  Specs option,  the
  11460.        formula values  on the records need to be  updated.  Press <4> or
  11461.        <R> to start the recalculation process.  This process starts  out
  11462.        with a  display of the  Record Selection screen  that is  used to
  11463.        specify the  records you  want to have  recalculated.   Enter the
  11464.        appropriate  selection criteria.   For  example, if  you  want to
  11465.        recalculate the entire  database, type  in ALL.   If you want  to
  11466.        recalculate just  tagged  records, type  in  TAGGED.   (For  more
  11467.        detailed  information on  selection  criteria,  see  the  section
  11468.        titled, Finding and Changing Records.) 
  11469.  
  11470.        After specifying the records to recalculate, the following screen
  11471.        appears: 
  11472.  
  11473.                  recalculating....   Progress: 19 
  11474.  
  11475.        Allow  several minutes on  large databases, because  File Express
  11476.        must search  through the entire database looking  for the records
  11477.        you have selected, recalculated them, and rewrite them to disk. 
  11478.  
  11479.  
  11480.   Untagging All Records
  11481.        To have File Express go through the entire database and clear all
  11482.        the  tags  from  all  the  records,  press  <5>  or  <U>  on  the
  11483.        Maintenance Menu.
  11484.  
  11485.  
  11486.                                                       RECALCULATING  249
  11487.   ----------------------------------------------------------------------
  11488.  
  11489.   Printing The Database Format 
  11490.        There are  times when you would like to remember the exact format
  11491.        of your database.  How many fields are there?  How long are they?
  11492.        What  formulas are  used?   To print  the format  of the  current
  11493.        database to either the screen  or your printer, press <6> or  <D>
  11494.        on the Maintenance Menu.  File Express asks: 
  11495.  
  11496.                     Print to <S>creen or <P>rinter?  
  11497.  
  11498.        Pressing <S>  causes the  format report to  be displayed  on your
  11499.        screen.   Pressing <P> sends it  to your printer.  When  a key is
  11500.        pressed,  a report  is produced  like  this one  of the  TUTORIAL
  11501.        database: 
  11502.  
  11503.  
  11504.  
  11505.  
  11506.  
  11507.  
  11508.                  Registered Version has screen picture here
  11509.  
  11510.  
  11511.  
  11512.  
  11513.  
  11514.  
  11515.  
  11516.  
  11517.  
  11518.  
  11519.  
  11520.        The one-character "overhead per record" added to the total record
  11521.        length is an extra byte that File Express uses to mark tagged and
  11522.        deleted records.  It is automatically placed at the end of  every
  11523.        record. 
  11524.  
  11525.  
  11526.   250  PRINTER DEFINITION FILES
  11527.   ----------------------------------------------------------------------
  11528.   Printer Definition Files
  11529.        File Express supports hundreds of printers.  The printer commands
  11530.        for  all these printers are contained in Printer Definition Files
  11531.        (PDF's).  The Printer Definition File Utility lets you select the
  11532.        default PDF file, define new PDF files for  printers that are not
  11533.        included with  the  File Express  package,  and edit  and  delete
  11534.        existing PDF files.
  11535.  
  11536.        The Printer Definition File Utility menu looks like this:
  11537.  
  11538.  
  11539.                                            PRINTER DEFINITION FILES  251
  11540.   ----------------------------------------------------------------------
  11541.   Adding a PDF File
  11542.        Press  <1> or <A>  to define a  new PDF file  to be  used by File
  11543.        Express.  A PDF file consists of a printer port and seven printer
  11544.        code strings:
  11545.  
  11546.  
  11547.  
  11548.  
  11549.  
  11550.  
  11551.                  Registered Version has screen picture here
  11552.  
  11553.  
  11554.  
  11555.  
  11556.  
  11557.  
  11558.  
  11559.  
  11560.  
  11561.  
  11562.        Fill in  the appropriate printer  port on line 1  and the printer
  11563.        codes for the listed features.  The printer codes can be found in
  11564.        your printer  manual.  Enter the codes in  the same manner as you
  11565.        would in a Macro.  (See the  Macro Key Setup section for complete
  11566.        information).  For  example, the code for landscape mode  on a HP
  11567.        Laserjet II is an  escape character followed  by an ampersand,  a
  11568.        lower case  l, the  number one,  and the  number zero.   This  is
  11569.        entered as:
  11570.  
  11571.                                 <Esc>&l1O
  11572.  
  11573.        Enter the commands for all the printer features, pressing <Enter>
  11574.        at  the end  of  each one.    If you  want  to test  the  printer
  11575.        commands, press <Alt-P>.  A  test page will be printed  using all
  11576.        the codes.   When you are satisfied, press  <F10> to save the new
  11577.        file to disk.  If you want to select this file as the Default PDF
  11578.        file, use option 4 on the Printer Definition File Utility menu.  
  11579.  
  11580.  
  11581.   Editing a PDF File
  11582.        To edit an existing  printer definition file,  press <2> or  <E>.
  11583.        The file is  loaded and displayed on  the screen.  The  window is
  11584.        the same as  the one used when adding  a new PDF file.   Make any
  11585.        changes as needed.  If you want to test the printer  commands you
  11586.        have entered, press <Alt-P>.   A test page will be  printed using
  11587.        all the codes.  Press <F10> to save the file.
  11588.  
  11589.  
  11590.   252  PRINTER DEFINITION FILES
  11591.   ----------------------------------------------------------------------
  11592.  
  11593.        To delete a  printer definition file, press <3> or <D>.  A window
  11594.        pops  up displaying a list of the  existing PDF files.  Highlight
  11595.        the  one  you  want   to  delete  and   press  <Enter>.     After
  11596.        confirmation, the file is deleted.
  11597.  
  11598.   Default PDF File
  11599.        The  default printer  definition  file is  used  by File  Express
  11600.        whenever  it prints  anything.   This  includes reports,  labels,
  11601.        database format printout, search & replace reports, etc.  If  you
  11602.        have not selected a PDF or File Express can't find any PDF files,
  11603.        it uses Epson printer commands as a default.
  11604.  
  11605.        To select a  printer definition file, press <4> or <S>.  A window
  11606.        appears  listing the  names of  all the  PDF files  found in  the
  11607.        Program directory (where FE.EXE resides).  Move the highlight bar
  11608.        to the PDF file name you want to use and press <Enter>. 
  11609.  
  11610.  
  11611.                                                 IMPORT/EXPORT/CLONE  253
  11612.   ----------------------------------------------------------------------
  11613.  
  11614.                            Import/Export/Clone 
  11615.  
  11616.  
  11617.        File  Express  offers  many  capabilities  for  bringing  outside
  11618.        information  into  a  database,   putting  out  information  from
  11619.        databases to  other file formats and creating  new databases from
  11620.        existing ones.   We use the words "Import",  "Export" and "Clone"
  11621.        because  they are  commonly  used in  many  software programs  to
  11622.        denote the following functions: 
  11623.  
  11624.        IMPORT means  to load  data into File  Express from  another data
  11625.        source which  is in  a  different format.    Maybe the  data  was
  11626.        created  by a  spreadsheet  program or  word  processor, or  even
  11627.        another database program.  In some  cases for example, if you are
  11628.        converting from  another database to File Express,  you may first
  11629.        have to  unload your  data from  the other  database using  their
  11630.        export utility, creating an intermediate  file, perhaps in DIF or
  11631.        SDF format.  Then you import the intermediate file into your File
  11632.        Express database.   In other cases, you can  directly import data
  11633.        files from other programs into File Express.
  11634.  
  11635.        EXPORT means  to write data  out to  a file in  a format that  is
  11636.        readable  by  other  software programs.    File  Express supports
  11637.        several of the industry standard formats for moving data  between
  11638.        programs, including  ASCII Mail-Merge format,  DIF format, Dbase,
  11639.        Lotus 123,  SDF format, and more.  For  example, if you want data
  11640.        from your  database to  be loaded into  a spreadsheet,  you might
  11641.        export the data to a DIF format, then load it into ExpressCalc or
  11642.        another spreadsheet program that reads DIF formats. 
  11643.  
  11644.        CLONE  means  to use  the data  in one  File Express  database to
  11645.        create a new File Express database.  For example, you might clone
  11646.        your database  called CUSTOMERS to another one  called SCHOOLS by
  11647.        selecting only those records where: 
  11648.  
  11649.             name contains college or name contains university
  11650.  
  11651.        Cloning may  be  used for  much  more than  creating  subsets  of
  11652.        databases.  You can  leave out some fields and add  new ones into
  11653.        the cloned database.   You can change  the lengths of  fields and
  11654.        move them  around.   You might  use cloning  to copy  your entire
  11655.        database to a  new one, and rearrange  some of the fields  into a
  11656.        new sequence. 
  11657.  
  11658.  
  11659.   254  IMPORT/EXPORT/CLONE
  11660.   ----------------------------------------------------------------------
  11661.  
  11662.        pressing <Enter>, or pressing 8  from the Main Menu takes  you to
  11663.        the Import/Export  Menu where  you can  then choose  to Import  a
  11664.        file, Export  a file,  or Clone  a file.   A  quicker way  to get
  11665.        directly to  one of these sub-menus is  to press I, E,  or C from
  11666.        the Main Menu.  The first menu looks like this:
  11667.  
  11668.  
  11669.  
  11670.  
  11671.  
  11672.  
  11673.                  Registered Version has screen picture here
  11674.  
  11675.  
  11676.  
  11677.  
  11678.  
  11679.  
  11680.  
  11681.  
  11682.        From this menu you can press <1> or <I> to go to the Import Menu,
  11683.        <2>  or <E> to go to the Export Menu,  or <3> or <C> to go to the
  11684.        Clone Menu  or <4>  to select  a different  Primary Index  to use
  11685.        while here.
  11686.  
  11687.  
  11688.                                                 IMPORT/EXPORT/CLONE  255
  11689.   ----------------------------------------------------------------------
  11690.  
  11691.        We mentioned earlier that there are a number of industry standard
  11692.        formats  for  moving data  around  between  programs.   A  format
  11693.        usually becomes  a "standard" format because  well-known software
  11694.        packages use it. 
  11695.  
  11696.        Mail Merge (sequential)
  11697.        File Express  supports three different types of mail merge files.
  11698.        The most common is the one  we call "Standard Mail merge" format,
  11699.        which is used  by Microsoft BASIC, WordStar, and  many other word
  11700.        processors.   Because of the  popularity of  BASIC and  WordStar,
  11701.        this format  has become  a standard for  importing and  exporting
  11702.        data in most software programs.  This format is sometimes  called
  11703.        comma-delimited, sequential, CDF, or standard ASCII format.  Each
  11704.        data field in a standard mail-merge file is separated by a comma,
  11705.        and each record is on a new line (i.e. terminated with a carriage
  11706.        return and line feed).  Sometimes text has quotation marks around
  11707.        it.  Here are two examples of Standard Mail-merge files: 
  11708.  
  11709.        "John","Doe","123 Fourth Street, Apt 101","Seattle","WA","98119" 
  11710.  
  11711.        John,Doe,123 Fourth Street,Seattle,WA,98119 
  11712.  
  11713.        In  the first  example  the  address field  has  a comma  in  it.
  11714.        Because  the field  is  enclosed  in  quote marks,  File  Express
  11715.        interprets the comma correctly as part of the address as  opposed
  11716.        to  the beginning of  a new field.   The second  example does not
  11717.        have quotes surrounding the field contents so every comma is read
  11718.        as the beginning of  the next field.  If the address  field had a
  11719.        comma in  it, as it does in the  first example, 123 Fourth Street
  11720.        would  be read as the address field and  Apt 101 would be read as
  11721.        the city field.   Of course, every field after that in the record
  11722.        would be  shifted down one  field, as would  every record  in the
  11723.        rest of the database.
  11724.  
  11725.        The second file type  supported by File  Express is the  "Special
  11726.        Mail merge"  file, in which the  comma is replaced by  some other
  11727.        character such as a slash or asterisk.  For example: 
  11728.  
  11729.        "John"/"Doe"/"123 Fourth Street, Apt 101"/"Seattle"/"WA"/"98119" 
  11730.  
  11731.        John*Doe*123 Fourth Street*Seattle*WA*98119 
  11732.  
  11733.  
  11734.   256  IMPORT/EXPORT/CLONE
  11735.   ----------------------------------------------------------------------
  11736.  
  11737.        This type of file has one field per line:
  11738.  
  11739.                  John
  11740.                  Doe
  11741.                  NWA Corporation
  11742.                  123 Fourth Street, Apt 101
  11743.                  Seattle
  11744.                  WA
  11745.                  98119
  11746.                  Mary
  11747.                  Smith
  11748.  
  11749.                  34 South 22nd Ave.
  11750.                  Seattle
  11751.                  WA
  11752.                  98167
  11753.  
  11754.        This example contains seven fields per record.  File Express  can
  11755.        only tell where  a new record begins  by counting the fields.   A
  11756.        blank line still  counts as a field.   The first seven  lines are
  11757.        the first  record, the  next seven lines  are the  second record,
  11758.        etc.   In  this example,  Mary  Smith's record  does not  contain
  11759.        information in the Company field.
  11760.  
  11761.  
  11762.        WordPerfect Merge Files
  11763.        The WordPerfect word processor from WordPerfect Corp. has its own
  11764.        unique format  for  mail  merge  data, which  File  Express  also
  11765.        supports. 
  11766.  
  11767.  
  11768.        DIF Files
  11769.        The DIF file format (DIF stands for Data Interchange Format)  was
  11770.        created  by  the  developers of  the  first  spreadsheet program,
  11771.        VisiCalc,   to  support   interchanging  data   between  software
  11772.        packages.  It has  become  a  popular  standard  for  spreadsheet
  11773.        programs,  and is supported by Lotus  1-2-3, ExpressCalc and many
  11774.        others. 
  11775.  
  11776.  
  11777.                                                 IMPORT/EXPORT/CLONE  257
  11778.   ----------------------------------------------------------------------
  11779.  
  11780.        Another format  which File  Express supports  when importing  and
  11781.        exporting is the Fixed Length file. This is a file in  which each
  11782.        piece of information  is contained in a specific  number of bytes
  11783.        or character positions regardless of how long the information is.
  11784.        For example: 
  11785.  
  11786.                  John   Doe        Portland     OR97034
  11787.                  Jim    Smith      San FranciscoCA90356    
  11788.                  WilliamJohnson    New York     NY06756 
  11789.  
  11790.        If  you type a  fixed length file  out to the  screen, the fields
  11791.        will rarely line up  in nice columns like the example  above.  We
  11792.        have  lined them up for you to  show that each field takes up the
  11793.        same amount of  room.  Typed to  the screen, the file  would look
  11794.        more like this:
  11795.  
  11796.  
  11797.        John    Doe         Portland       OR97034Jim     Smith       San
  11798.        FranciscoCA90356WilliamJohnson    New York     NY06756 
  11799.  
  11800.  
  11801.        Technical Note: If  you are exporting Fixed Length  files, it may
  11802.        be of interest  to you that your  File Express data is  stored in
  11803.        fixed length format.   Each record in your  database is contained
  11804.        in a file called xxxxxx.DTA (where xxxxxx is your database  name)
  11805.        as a  fixed length record.  Each field  is stored adjacently as a
  11806.        fixed  length  field,  and  the  record  is  terminated  with  an
  11807.        additional byte  that is  used to  tag  records or  mark them  as
  11808.        deleted.   Some  users who  require  their data  in fixed  length
  11809.        format can use the xxx.DTA file which contains their data without
  11810.        doing an export. 
  11811.  
  11812.  
  11813.        SDF or Text Files 
  11814.        The SDF  format is a variant of the  Fixed Length format, and can
  11815.        also be imported  into or exported from File Express.   SDF files
  11816.        are fixed length, but have a carriage return and line feed at the
  11817.        end of each  record.  This carriage return/line  feed combination
  11818.        is "invisible" when  viewing the file with a  word processor, but
  11819.        actually  occupies   an  additional   two  character   positions.
  11820.        Sometimes when  importing a  fixed length file,  the data  in the
  11821.        fields is  offset by  one or more  characters in  each successive
  11822.        record.This  is usually because the length  of one or more of the
  11823.        fields  was incorrectly specified,  or because invisible carriage
  11824.        returns and  line feeds were not accounted for.  If this happens,
  11825.        either try again specifying SDF format, or specify an extra field
  11826.        at the end of the record format for these unseen characters. 
  11827.  
  11828.        Lotus 123 Files
  11829.        File format used by Lotus' spreadsheet program.
  11830.  
  11831.  
  11832.   258  IMPORT/EXPORT/CLONE
  11833.   ----------------------------------------------------------------------
  11834.  
  11835.        File format used by Ashton Tate's database program dBASE III  and
  11836.        dBASE III Plus
  11837.  
  11838.        File Express Files
  11839.        And last  but  not least,  File  Express supports  the  extremely
  11840.        popular File Express Format.  Using Import Menu choice number  7,
  11841.        you  can append  another  File Express  database  to the  current
  11842.        database.  Using the  Clone function  you can  copy databases  to
  11843.        other drives and directories and rearrange their contents. 
  11844.  
  11845.  
  11846.                                                           IMPORTING  259
  11847.   ----------------------------------------------------------------------
  11848.  
  11849.                         Importing Into A Database 
  11850.  
  11851.        Press  <I>  from the  Main  Menu or  press  <1> or  <I>  from the
  11852.        Import/Export Menu, and the following menu is displayed: 
  11853.  
  11854.  
  11855.  
  11856.  
  11857.  
  11858.  
  11859.                  Registered Version has screen picture here
  11860.  
  11861.  
  11862.  
  11863.  
  11864.  
  11865.  
  11866.  
  11867.  
  11868.  
  11869.  
  11870.  
  11871.        Before importing a file, be sure that the currently open database
  11872.        is the one  you want to import  into.  Data is  imported directly
  11873.        into the database that is currently open.  
  11874.  
  11875.        The Import Menu  lists eight  different file  formats which  File
  11876.        Express can read and import. These formats were discussed in  the
  11877.        previous section. If you aren't sure what format your data is in,
  11878.        consult the manual of the program that created them. 
  11879.  
  11880.        After  selecting the type of file  format to be imported, you are
  11881.        asked for the name of the file.  File Express automatically fills
  11882.        in the  path to the current  data drive and/or  subdirectory.  If
  11883.        the  file  you  wish  to  import  is  in  a  different  drive  or
  11884.        subdirectory, you can change it.  Type in the complete file name,
  11885.        including any extension, of the file to import and press <Enter>.
  11886.        When importing records  you can either have File  Express add the
  11887.        new records onto any  existing records in  your database or  have
  11888.        the new records  replace the existing ones.  To indicate that you
  11889.        want to replace all existing records with the new ones, put  a /R
  11890.        at the end of the name of the import file.  Example:
  11891.  
  11892.                                 BOATLIST/R
  11893.  
  11894.        The next screen varies  depending on the file type selected.  For
  11895.        example, if you selected the "Mail merge" file type, File Express
  11896.        asks you if all the fields of  each record are on the same  line.
  11897.        If you  are importing a "Standard mail  merge" file or a "Special
  11898.        mail merge" file, answer <Y>es.  If you are importing a Peachtext
  11899.  
  11900.  
  11901.   260  IMPORTING
  11902.   ----------------------------------------------------------------------
  11903.  
  11904.        answer  <Y>es,  the  next  piece  of  information  needed is  the
  11905.        character  used to separate each field on  the line.  A "Standard
  11906.        mail merge" file uses  a comma, which is the default  answer.  If
  11907.        the file  you are  importing uses  a different  character, answer
  11908.        <N>o to the question and type in the new character.  
  11909.  
  11910.        File Express now  begins the importing process by  reading in the
  11911.        first record and displaying it on the screen.  For example:
  11912.  
  11913.  
  11914.  
  11915.  
  11916.  
  11917.  
  11918.                  Registered Version has screen picture here
  11919.  
  11920.  
  11921.  
  11922.  
  11923.  
  11924.  
  11925.  
  11926.  
  11927.  
  11928.  
  11929.  
  11930.        Take a look at the  record to ensure that  all the fields are  in
  11931.        the correct place.  If they are not correct, then either you have
  11932.        selected the wrong  type of file to  import or the format  of the
  11933.        file does  not match  the database  format you  are pulling  them
  11934.        into.  If either of these are the case, press <Esc> to cancel the
  11935.        import, determine the  error, correct it, and start  again.  Some
  11936.        of  the commonly  encountered problems  and  their solutions  are
  11937.        discussed in the Troubleshooting section of the manual. 
  11938.  
  11939.        If  everything  looks  alright  and  you   want  to  import  this
  11940.        particular  record, press  <Y>es.   File  Express then  reads and
  11941.        displays the next record.  If you are satisfied that  the records
  11942.        are  being read correctly and you want to import the entire file,
  11943.        you can press <G>o  to have File  Express continue importing  the
  11944.        remainder  of the file  without asking you  about each individual
  11945.        record.  While this is happening, you  can press any key to pause
  11946.        the import and  go back to the individual  record permission mode
  11947.        of operation.
  11948.  
  11949.        While importing a file, each record is displayed on the screen so
  11950.        that you can  see that everything is progressing  smoothly.  Even
  11951.        if  you have pressed  <G>o, each record is  flashed to the screen
  11952.        momentarily.  Since  this takes a  little time, you can  turn off
  11953.  
  11954.  
  11955.                                                           IMPORTING  261
  11956.   ----------------------------------------------------------------------
  11957.  
  11958.        <D> toggles the display feature on and off).
  11959.  
  11960.        Note  the  message line  near  the  bottom  of the  screen  which
  11961.        indicates the total number of records in the current database and
  11962.        the number of records that have been imported.  Keep in mind that
  11963.        if  importing is  interrupted, the records  imported so  far have
  11964.        been added  to  your  database,  and  remain  there.    When  the
  11965.        importing  process  is  complete, this  progress  screen remains,
  11966.        showing how many  records were imported and how  many records the
  11967.        database  contains  now.    Press  any  key  to  return  to   the
  11968.        Import/Export Menu. 
  11969.  
  11970.  
  11971.   262  EXPORTING
  11972.   ----------------------------------------------------------------------
  11973.  
  11974.                         Exporting From A Database
  11975.  
  11976.        Press  <E>  from the  Main  Menu or  press  <2> or  <E>  from the
  11977.        Import/Export Menu, and the following sub-menu is displayed: 
  11978.  
  11979.  
  11980.  
  11981.  
  11982.  
  11983.  
  11984.                  Registered Version has screen picture here
  11985.  
  11986.  
  11987.  
  11988.  
  11989.  
  11990.  
  11991.  
  11992.  
  11993.  
  11994.  
  11995.        Before  coming to  this menu,  be  sure that  the currently  open
  11996.        database  is the one  you want to  export from.   The Export Menu
  11997.        lists seven different file formats which File Express can  write.
  11998.        These  formats were  discussed in  an  earlier section.   If  you
  11999.        aren't  sure what  format you  need,  consult the  manual of  the
  12000.        program you are exporting data to.  
  12001.  
  12002.  
  12003.                                                           EXPORTING  263
  12004.   ----------------------------------------------------------------------
  12005.  
  12006.        displays: 
  12007.  
  12008.  
  12009.  
  12010.  
  12011.  
  12012.  
  12013.                  Registered Version has screen picture here
  12014.  
  12015.  
  12016.  
  12017.  
  12018.  
  12019.  
  12020.  
  12021.  
  12022.  
  12023.  
  12024.        This screen  lets you  select the  fields to  send to  the output
  12025.        file.   Enter the  field numbers in  the sequence they  are to be
  12026.        exported.   A string of  fields may be specified  by entering the
  12027.        from/to range of field numbers separated by a dash.  For example,
  12028.        1-5 is the same as entering 1<Enter> then 2<Enter> then  3<Enter>
  12029.        then  4<Enter> then  5<Enter>.   If you  want to  select  all the
  12030.        fields in the database, just type a dash <-> and press <Enter>.
  12031.  
  12032.        When all the  field numbers have  been entered that  you want  to
  12033.        export, press  <F10> or <Enter>.   The standard  Record Selection
  12034.        screen is displayed, asking you to Export all the records where:.
  12035.        This screen is the same as the one used to find records and print
  12036.        reports.   Specify the criteria  for selecting records,  and only
  12037.        those records which  match the criteria are exported.   Enter ALL
  12038.        if  you want  all the  records  in the  database to  be exported.
  12039.        Enter  TAGGED  or  UNTAGGED to  export  just  tagged  or untagged
  12040.        records.
  12041.  
  12042.  
  12043.   264  EXPORTING
  12044.   ----------------------------------------------------------------------
  12045.  
  12046.        file types.  For  example, if you  selected "Fixed Length",  File
  12047.        Express gives you a  chance to change any  field lengths.   After
  12048.        responding to these  special prompts, this screen  displays next,
  12049.        asking for the name of the file where the data is to be written: 
  12050.  
  12051.  
  12052.  
  12053.  
  12054.  
  12055.  
  12056.                  Registered Version has screen picture here
  12057.  
  12058.  
  12059.  
  12060.  
  12061.  
  12062.  
  12063.  
  12064.  
  12065.  
  12066.  
  12067.        If no drive  or path is specified,  the data is written  into the
  12068.        subdirectory  where the currently  open database resides.   If an
  12069.        extension is  included, the file is written  with that extension.
  12070.        If  no extension  is  included,  the file  is  given  one of  the
  12071.        following default extensions: 
  12072.  
  12073.             Standard Mail-merge      .WS
  12074.             Special Mail-merge       .MM
  12075.             Word Perfect merge       .WP
  12076.             DIF                 .DIF
  12077.             Fixed length             .FIX
  12078.             Text Editor              .SDF
  12079.             Lotus 123           .WK1
  12080.             dBASE               .DBF
  12081.  
  12082.  
  12083.        If  you  have  used  the  tilde  character  in  any  fields as  a
  12084.        "flip-field-contents-here" mark,  File Express can  flip the data
  12085.        while exporting.  To enable the flip feature, put a /F at the end
  12086.        of the output file name.  Example:
  12087.  
  12088.                               MAILLIST.WS/F
  12089.  
  12090.  
  12091.                                                           EXPORTING  265
  12092.   ----------------------------------------------------------------------
  12093.  
  12094.        you  want to  have all the  fields from  each record on  the same
  12095.        line.  See  the section  titled Some Common  File Formats if  you
  12096.        have any questions about how the file should look.
  12097.  
  12098.        The exporting process now begins, and this screen displays: 
  12099.  
  12100.  
  12101.  
  12102.  
  12103.  
  12104.  
  12105.                  Registered Version has screen picture here
  12106.  
  12107.  
  12108.  
  12109.  
  12110.  
  12111.  
  12112.  
  12113.  
  12114.  
  12115.  
  12116.  
  12117.        When  the exporting  process is  finished,  this progress  screen
  12118.        remains, showing the record  counts. Press any  key to return  to
  12119.        the Import/Export Menu. 
  12120.  
  12121.  
  12122.   266  CLONING
  12123.   ----------------------------------------------------------------------
  12124.  
  12125.                            Cloning A Database 
  12126.  
  12127.        In its simplest  form, the Clone option can copy  a database from
  12128.        one  drive or  subdirectory to  another.   By specifying  various
  12129.        options, the  soon-to-be-created database  format can  be changed
  12130.        from the original.  It can have  fewer records, the fields can be
  12131.        shortened or  lengthened, and  fields can  be  added, deleted  or
  12132.        moved to a different sequence. 
  12133.  
  12134.        File Express offers two ways to clone a database into a new form.
  12135.        Each has  advantages  over the  other.   The  first  method,  and
  12136.        perhaps the  easiest one,  is to  use the  Change Database  Specs
  12137.        option on the Maintenance Menu.  This lets you add fields, delete
  12138.        fields, move  them around  and change the  types and  lengths and
  12139.        then  write them out to a new database.  This option does not let
  12140.        you select which records are to be included in the  new database.
  12141.        All the  records  are  copied.    The  second  option,  which  is
  12142.        described here, lets you do everything the first option does  and
  12143.        also select which records to include.   It does not, however, let
  12144.        you change field  types or calculated fields.   This can be  done
  12145.        after  the clone is complete,  however, using the Change Database
  12146.        Specs option.
  12147.  
  12148.  
  12149.                                                             CLONING  267
  12150.   ----------------------------------------------------------------------
  12151.  
  12152.        database is the one you want  to clone from.  Press <C>  from the
  12153.        Main Menu or press  <3> or <C> from  the Import/Export Menu,  and
  12154.        the following screen displays: 
  12155.  
  12156.  
  12157.  
  12158.  
  12159.  
  12160.  
  12161.                  Registered Version has screen picture here
  12162.  
  12163.  
  12164.  
  12165.  
  12166.  
  12167.  
  12168.  
  12169.  
  12170.  
  12171.  
  12172.  
  12173.        The box on  the left lists all  the fields in the  currently open
  12174.        database.  The box on the right displays the fields of the output
  12175.        database as you select  them.  Enter each field number to include
  12176.        in the output database and press  <Enter>.  The field number with
  12177.        its  name and length  appears in the  box on  the right and  an X
  12178.        appears  in  the box  on  the left  showing  the  field has  been
  12179.        selected.   A string of  fields may be  specified by entering the
  12180.        from/to range of field numbers separated by a dash.  For example,
  12181.        <1-5><Enter> is the  same as entering 1<Enter> then 2<Enter> then
  12182.        3<Enter> then 4<Enter> then 5<Enter>.  If you want to include all
  12183.        the fields, just type a dash, <->, and press <Enter>.
  12184.  
  12185.        Whenever you  want to  add a  new field to  the output  database,
  12186.        press <Alt-N>. You are  prompted for the  field name and  length.
  12187.        The field  is given a field type of <C>haracter.  If the field is
  12188.        intended to be different type, such as numeric, formula, or date,
  12189.        use the Change  Database Specs option on the  Maintenance Menu to
  12190.        change  the field's attributes after  cloning and opening the new
  12191.        database. 
  12192.  
  12193.        When all  the field  numbers have  been entered,  press <F10>  or
  12194.        <Enter> and File Express lets you change the length of any field.
  12195.        Keep in mind  that if you shorten a field, some of its data could
  12196.        be lost. 
  12197.  
  12198.        The standard Record Selection screen displays next, asking you to
  12199.        "Clone all the records  where:".  This screen is the  same as the
  12200.        one used to find records and print reports.  Specify the criteria
  12201.        for  selecting  records.    Only those  records  which  match the
  12202.  
  12203.  
  12204.   268  CLONING
  12205.   ----------------------------------------------------------------------
  12206.  
  12207.        want all the records in the database to be cloned. 
  12208.  
  12209.        File Express now prompts for the name  of the output file.  Enter
  12210.        any valid database name.  If the drive and path are excluded, the
  12211.        new database is written to the subdirectory of the currently open
  12212.        database.  Do not  specify an extension as File  Express uses its
  12213.        own extensions to identify database files.  If a database already
  12214.        exists with  the name  you specify,  a warning  message is  given
  12215.        allowing you to use a new name or overwrite the old database. 
  12216.  
  12217.        If  you  have  used  the  tilde  character  in  any  fields  as a
  12218.        "flip-field-contents-here" mark,  File Express can flip  the data
  12219.        while  cloning.  To enable the flip  feature, put a /F at the end
  12220.        of the output file name.  Example:
  12221.  
  12222.                                 NEWFILE/F
  12223.  
  12224.        The cloning process  now begins and you can watch the progress on
  12225.        the screen. 
  12226.  
  12227.        When  the  cloning  process has  finished,  this  progress screen
  12228.        remains, showing the  record counts.  Press any  key to return to
  12229.        the Import/Export Menu. 
  12230.  
  12231.  
  12232.  
  12233.  
  12234.  
  12235.  
  12236.  
  12237.  
  12238.  
  12239.    
  12240.  
  12241.  
  12242.                                                  QUIT - EXIT TO DOS  269
  12243.   ----------------------------------------------------------------------
  12244.  
  12245.                            Quit - Exit to DOS 
  12246.  
  12247.  
  12248.        To  quit File Express and return to DOS,  press <9> or <Q> on the
  12249.        Main Menu.  File Express asks: 
  12250.  
  12251.                  "Are you sure you want to Quit (Y/N)?".
  12252.  
  12253.        Press <Y> or  <Enter> to quit.   Pressing <N> returns you  to the
  12254.        Main Menu.
  12255.  
  12256.  
  12257.        Upon exiting,  File Express  clears the  screen and  displays the
  12258.        following message:
  12259.  
  12260.  
  12261.  
  12262.  
  12263.  
  12264.  
  12265.                  Registered Version has screen picture here
  12266.  
  12267.  
  12268.  
  12269.  
  12270.  
  12271.  
  12272.  
  12273.  
  12274.  
  12275.  
  12276.        Be sure  to make regular  backup copies of your  databases.  It's
  12277.        not a matter  of IF  you will need  them, it's  only a matter  of
  12278.        WHEN.  For more  information, see the  section titled Backing  Up
  12279.        Your Data.
  12280.  
  12281.  
  12282.   270  QUIT - EXIT TO DOS
  12283.   ----------------------------------------------------------------------
  12284.                                      empty
  12285.  
  12286.  
  12287.                                                            FORMULAS  271
  12288.   ----------------------------------------------------------------------
  12289.  
  12290.                                 Formulas 
  12291.  
  12292.    
  12293.        Throughout this  manual we  have mentioned  several times  that a
  12294.        formula might be entered in response to a particular File Express
  12295.        prompt.  But then the subject was dropped, referring you  instead
  12296.        to the chapter  titled Formulas.  You  may have wondered  why the
  12297.        subject of  formulas was shuffled to the back  of the manual.  Is
  12298.        it  because  they  aren't  important?  Is  it  because  they  are
  12299.        complicated? The answer to both questions is: Yes and No. 
  12300.  
  12301.        No, formulas  are not important to  the beginning user.   Even an
  12302.        advanced user who maintains large mailing lists with File Express
  12303.        may never  need to use formulas.  But  as people use File Express
  12304.        more, and  for more  varied applications,  they eventually  start
  12305.        asking "can it  do this...?" and "how do I...?".  This chapter on
  12306.        formulas,  and the  next one  on Advanced  Features are  intended
  12307.        primarily for the  "power user" or  advanced File Express  owner.
  12308.        So formulas are discussed at the  back of the manual because they
  12309.        aren't really important...at first.  
  12310.  
  12311.        In  response   to  the   second  question:   yes,  formulas   are
  12312.        complicated, and that's why they're discussed back  here with the
  12313.        other technical topics.  But complicated compared to what? People
  12314.        who  have  used  formulas  in  other  software  will  find  these
  12315.        intuitive and extremely easy to use.  
  12316.  
  12317.        So once again it's a question of the user's familiarity with File
  12318.        Express.   Formulas  get  less  complicated  as  you  spend  time
  12319.        designing reports and  databases.  Nothing creates awareness of a
  12320.        concept faster than  not knowing how to  do it.  In  other words,
  12321.        File Express can't solve a problem until you recognize that  it's
  12322.        a problem.    Once you  recognize  the need,  come  look in  this
  12323.        chapter.  
  12324.  
  12325.        And a final reason  formulas have a chapter of their  own is that
  12326.        they are referenced so often, it wasn't practical to write  about
  12327.        them  in every chapter.   If we  had, the manual  would have been
  12328.        twice this size.   So here it  is: everything you ever  wanted to
  12329.        know about Formulas.  
  12330.  
  12331.        In the chapter titled Finding and Changing Records we learned how
  12332.        to  locate a  record by  completing  the sentence  "Find all  the
  12333.        records where..." with a comparison.  The words we entered had to
  12334.        form a comparison, and that chapter explained in some depth  just
  12335.        how  to  form  one.   When  you  finished  the  sentence  with  a
  12336.        comparison  like ZIP  IS  98,  File Express  used  it  to make  a
  12337.        complete formula like this: 
  12338.  
  12339.                    If zip is 98 then read the record.  
  12340.  
  12341.  
  12342.   272  FORMULAS
  12343.   ----------------------------------------------------------------------
  12344.  
  12345.        discussing  in this  section.  So  if you see  some similarity in
  12346.        finding  records and entering  formulas, that's because  they use
  12347.        the same formula  routine.  You will also see  some similarity in
  12348.        the documentation  in this section  and the Finding  and Changing
  12349.        Records chapter for the same reason.  
  12350.        When a  formula is evaluated,  the result is  usually a piece  of
  12351.        data which can be printed, displayed  on the screen or placed  in
  12352.        the database.  Sometimes the resulting data is numeric, sometimes
  12353.        it is text.   Earlier we  discussed various  forms of the  phrase
  12354.        "State is WA".  Is that a formula?  Not exactly; it's really just
  12355.        part  of a  formula: the  comparison  portion.   If you  included
  12356.        "State is WA" on a report, the word "True" would print on records
  12357.        whose  state  is WA,  and the  word  "False" would  print  on the
  12358.        others.  More typical formulas on a report might be: 
  12359.  
  12360.                  If State is WA then "No Income Tax"                    
  12361.                    
  12362.                  If State is WA then Amount * .082 
  12363.  
  12364.        The first example might  be used on a payroll report  to indicate
  12365.        that employees in Washington are not subject to state income tax.
  12366.        The second example might be found on an invoice report, computing
  12367.        state sales  tax for customers who  live in Washington.   In both
  12368.        cases,  the result of the formula was  not "True" or "False", but
  12369.        some meaningful piece of data to  be shown on the report: in  one
  12370.        case text, in the other a number.  
  12371.  
  12372.  
  12373.   Some Definitions
  12374.        Before  going any  further, let's  define  the terms  we will  be
  12375.        using.  It  is kind of like  learning the parts of a  sentence in
  12376.        English  class.  It may be  boring, obvious or interesting to you
  12377.        but it is important.
  12378.  
  12379.   Function:  
  12380.        A function returns an answer.  The answer is either a text string
  12381.        or a number.  For example, the TODAY function returns the current
  12382.        system date as  a string of  characters, (if the current  date is
  12383.        April 16,  1990, the  string returned  is "04-16-90").   As  File
  12384.        Express  is  evaluating  a formula,  it  actually  replaces every
  12385.        occurrence of the function TODAY with the text "04-16-90".
  12386.  
  12387.        Some functions require parameters  (also known as arguments).   A
  12388.        parameter is a piece of information that the function might  need
  12389.        in order  to  return an  answer.   For  example,  the  FUTUREDATE
  12390.        function,  which adds  a certain  number of  days to  a  date and
  12391.        returns the new date, requires two parameters: the date to  start
  12392.        from and the number of days to add to it.   Parameters are placed
  12393.        within parentheses right after the function name; FUTUREDATE("06-
  12394.        01-90", 45)     This example returns the new date: "07-16-90".
  12395.  
  12396.  
  12397.                                                            FORMULAS  273
  12398.   ----------------------------------------------------------------------
  12399.  
  12400.        be used  wherever a  number or  text string  is allowed.   As  an
  12401.        example we can combine the above two examples.  Because the TODAY
  12402.        function  returns  a  date string,  and  the  FUTUREDATE function
  12403.        requires  a date string  as its first  parameter, we  can use the
  12404.        TODAY  function as that  first parameter:   FUTUREDATE(TODAY, 45)
  12405.        returns the date 45 days from today's date. 
  12406.  
  12407.        We can  take  this "nesting"  even  further.   For  example,  the
  12408.        MONTHNAME function can  accept a date  parameter and returns  the
  12409.        name of the month  portion of that date.  If we  want to find out
  12410.        what month  it  will be  1269  days from  now  we could  use  the
  12411.        following  formula:    MONTHNAME(FUTUREDATE(TODAY,  1269)).   The
  12412.        TODAY function provides the date to the FUTUREDATE function which
  12413.        in  turn  provides  the  date  to  the MONTHNAME  function  which
  12414.        provides the name of the month 1269 days from now.
  12415.  
  12416.        The  previous  examples  have  been  of  text  functions.    Some
  12417.        functions   return  numeric  values.    For  example,  the  INSTR
  12418.        functions returns the position within a string where  a substring
  12419.        is found.  The  parameters for the INSTR function are  the string
  12420.        to search and  the string to search for.   INSTR("ABCDABCD", "C")
  12421.        returns a number  3 because the "C"  is first found in  the third
  12422.        position.   A text field from your database  can also be used for
  12423.        the first parameter.  If you have  a full name field and you want
  12424.        to find  the position of  the first  blank space, you  could use:
  12425.        INSTR(F1,  " "), which  would return an 8  if the field contained
  12426.        "Marilyn Monroe" or a 4 if it contained "Abe Lincoln".  
  12427.  
  12428.        As shown in the previous examples, the INSTR function can be used
  12429.        wherever a number is allowed.   For example, the LEFT function is
  12430.        a text  function that  returns the  left part  of a  string.   It
  12431.        requires two parameters, the string and the  number of characters
  12432.        to get from the left end.  Using the full name field example,  if
  12433.        you wanted to print just  the first name you could  use: LEFT(F1,
  12434.        INSTR(F1, " ")-1).   To  find the answer  for this formula,  File
  12435.        Express first finds the  position of the  first blank space  with
  12436.        the current contents  of field 1, then it subtracts 1 from it and
  12437.        returns that  number of characters from the  left end of field 1.
  12438.        If  the field  contained "Michael  Fox",  the first  blank is  in
  12439.        position 8.  Subtracting 1 from 8 = 7.  The left 7 characters  of
  12440.        the string are "Michael", just the first name.  Of course, if the
  12441.        field  contained  "Mr. and  Mrs.  Tom Jones",  the  formula would
  12442.        return "Mr.", so you must know what kind of information is in the
  12443.        field.
  12444.  
  12445.   Statement:
  12446.        A Statement does  not return any kind of information.   It simply
  12447.        tells File Express  to do something.  For  example, the Statement
  12448.        NOLINEFEED tells the program that when you print this line of the
  12449.        report, don't send  a linefeed character at  the end of it.   The
  12450.  
  12451.  
  12452.   274  FORMULAS
  12453.   ----------------------------------------------------------------------
  12454.  
  12455.        current  page, move  to the  top of  the  next page  and continue
  12456.        printing there.
  12457.  
  12458.  
  12459.                                                            FORMULAS  275
  12460.   ----------------------------------------------------------------------
  12461.  
  12462.        A comparitor  is used to compare two text strings or two numbers.
  12463.        The  equal sign  is a  comparitor, therefore  it can  be  used to
  12464.        compare two items to  see if they are equal.  For  example,  F1 =
  12465.        F6 is true if the contents of  field 1 and field 6 are the  same.
  12466.        (File  Express  ignores  upper  and  lower  case   when  doing  a
  12467.        comparison unless  you specifically tell  it not to).   F1 >  "m"
  12468.        will be true for every record where field 1 has a content greater
  12469.        than an  "m", such as "Nancy"  or "Zelda" or even  "Mary" because
  12470.        "Mary" is considered greater than just a single "m".
  12471.  
  12472.        Another example of  a comparitor is SOUNDS LIKE  which is used to
  12473.        search for  words that  sound like other  words that  are spelled
  12474.        differently.  F1  SOUNDS LIKE "smith" finds  entries like "smit",
  12475.        "smyth", and "smth".
  12476.  
  12477.   Operators:
  12478.        Operators  tell  File Express  to  do  a mathematical  or  string
  12479.        operation on two numbers  or strings.  100 + F32  adds the number
  12480.        100 to the numeric contents of field 32.   F16 MOD 12 divides the
  12481.        number in field 16 by 12 and then only keeps the remainder.   The
  12482.        colon operator can be used to indicate a range  of fields without
  12483.        having to type out each one.  F1:F10 concatenates the contents of
  12484.        the first ten fields and then treats them as if it was one field.
  12485.        Note, however,  that you  should not  use the  equal operator  in
  12486.        conjunction with the colon  operator.  For  example, if fields  1
  12487.        through 5 contain  "one   ",  "two   ",  "three ", "four   ", and
  12488.        "five  ", F1:F5 results in "one   two    three four  five  ".  If
  12489.        you  type F1:F5 = "four", File Express will not find any matching
  12490.        records.    Instead, you  should  use  F1:F5  CONTAINS "four"  to
  12491.        instruct File Express  to look anywhere in the concatenated field
  12492.        group.
  12493.  
  12494.   Logical Operators:
  12495.        AND and OR are logical operators that are used to string together
  12496.        multiple comparison.  For  example, if you  wanted to search  for
  12497.        all your friends in California, you might  use:  State = "CA" AND
  12498.        Category  = "FRIEND".   If you wanted to  search for records from
  12499.        Idaho, Utah, and Washington, you might use STATE = "ID"  OR STATE
  12500.        = "UT" OR STATE = "WA".  
  12501.  
  12502.        AND means  the comparisons on  either side  must be true  for the
  12503.        combination of the two  to be considered true.  OR  means that if
  12504.        either  comparison is true,  the combination is  considered true.
  12505.        You might  say to  yourself that you  want all  the records  from
  12506.        Washington AND Idaho,  but if you type  STATE = "WA" AND  STATE =
  12507.        "ID", you won't find  anything because there  can't be any  field
  12508.        equal to both "WA"  and "ID" at the same time.   Use STATE = "WA"
  12509.        OR STATE = "ID".
  12510.  
  12511.  
  12512.   276  FORMULAS
  12513.   ----------------------------------------------------------------------
  12514.  
  12515.        idea to  use parentheses to make  it clear what  you really mean.
  12516.        STATE = "WA" OR STATE = "ID" AND CATEGORY = "FRIEND"  OR CATEGORY
  12517.        = "WORK" will find all your friends in either state but will also
  12518.        find all your co-workers  in every state  in the country  because
  12519.        the final OR  applies to all  the previous comparisons.   To  get
  12520.        what you really  want use:  (STATE =  "WA" OR STATE  = "ID")  AND
  12521.        (CATEGORY = "FRIEND" OR CATEGORY = "WORK").  The parentheses make
  12522.        it much clearer.
  12523.  
  12524.        The  remainder of this chapter is  a reference section describing
  12525.        each  function,  statement,  comparitor  and  operator  that File
  12526.        Express permits.
  12527.  
  12528.  
  12529.                                                     & (Concatenate)  277
  12530.   ----------------------------------------------------------------------
  12531.  
  12532.    
  12533.   PURPOSE:  The '&'  operator is  used to  combine two  fields with  one
  12534.             space between them.
  12535.  
  12536.   SYNTAX:   text & text [ & text ...]
  12537.  
  12538.             text = any field or text string enclosed in quotes.
  12539.  
  12540.   TYPE:          Operator, text, numeric
  12541.  
  12542.   USE IN:   Any Formula
  12543.  
  12544.   COMMENTS: Leading and trailing  spaces are removed from  fields before
  12545.             being combined with one space between them.  
  12546.  
  12547.             Blank spaces in quoted text strings are not removed.  
  12548.  
  12549.             Spaces are trimmed from numeric fields.
  12550.  
  12551.             See the '+' (Plus) operator for more examples.
  12552.  
  12553.   EXAMPLES: F1 & F2
  12554.  
  12555.             If Field 1 contains "John" and Field 2 contains "Doe",  this
  12556.             formula returns "John Doe".
  12557.  
  12558.             "Dear" & F1 + "," 
  12559.  
  12560.             Using  information from  the  first  example,  this  formula
  12561.             returns "Dear John,". 
  12562.  
  12563.             F6 + "," & F7 & F8
  12564.  
  12565.             If Field 6, Field 7  and Field 8 are the city, state and zip
  12566.             code fields, this example might return "Duvall, WA 98019".
  12567.  
  12568.   ALSO SEE: + (Plus)
  12569.  
  12570.  
  12571.   278  + (Plus)
  12572.   ----------------------------------------------------------------------
  12573.  
  12574.  
  12575.   PURPOSE:  The '+'  plus  operator combines  two  text fields  with  no
  12576.             spaces  between  them  or mathematically  adds  two  numeric
  12577.             fields together.
  12578.  
  12579.   SYNTAX:   text + text [+ text ...] or number + number [+ number ...]
  12580.  
  12581.             text = any character field or text string.
  12582.             number  = any  numeric field,  numeric  function or  numeric
  12583.             constant.
  12584.  
  12585.   TYPE:          Operator, character, numeric
  12586.  
  12587.   USE IN:   Any Formula
  12588.  
  12589.   COMMENTS: Leading and  trailing spaces  are removed  from text  fields
  12590.             before being combined but spaces  are not removed when using
  12591.             constant text within quotes.
  12592.  
  12593.             NOTE: The symbol,  '+', is used for both  adding numbers and
  12594.             combining text.  File Express performs the correct operation
  12595.             according to  the type  of the fields  being used.   If  the
  12596.             first field is a character field, the fields are combined as
  12597.             if  they  are  both text  fields.    If the  first  field is
  12598.             numeric,  the fields  are  combined  as  if  they  are  both
  12599.             numbers.  (A text field containing "John" is treated as a 0.
  12600.             A text field  containing "123ABC" is  treated as the  number
  12601.             123.)
  12602.  
  12603.  
  12604.   EXAMPLES: "Hello" + "Goodbye"
  12605.  
  12606.             This formula returns "HelloGoodbye".
  12607.  
  12608.             F1 + F2
  12609.  
  12610.             If  Field  1  is  "John" and  Field  2  is  a  numeric field
  12611.             containing  123, then this formula returns "John123".  If F2
  12612.             + F1 is used instead, then this formula returns 123  because
  12613.             the first field being combined is numeric.  ("John" will  be
  12614.             treated as 0, so 123 + 0 = 123.)
  12615.  
  12616.             "Dear " + F1 + ","
  12617.  
  12618.             If Field 1 contains  "Tom", this formula will  return: "Dear
  12619.             Tom,".  (Notice the  space after the  word DEAR enclosed  in
  12620.             quotes.)
  12621.  
  12622.   ALSO SEE: & (Concatenate) and Math Operators
  12623.  
  12624.  
  12625.                                                         : (THROUGH)  279
  12626.   ----------------------------------------------------------------------
  12627.  
  12628.  
  12629.  
  12630.   PURPOSE:  The THROUGH or ":" operator specifies a range of fields.
  12631.  
  12632.   SYNTAX:   field : field
  12633.             field THROUGH field 
  12634.  
  12635.             field = any valid field name or field number.
  12636.  
  12637.   TYPE:          Operator, character
  12638.  
  12639.   USE IN:   Any Formula
  12640.  
  12641.   COMMENTS: The   THROUGH  operator  combines  all  the  fields  in  the
  12642.             specified range  and treats  them as a  single field.   This
  12643.             allows  a range  of fields  to  be searched  using a  single
  12644.             search formula.  
  12645.  
  12646.             Leading  and trailing  spaces are  NOT  removed from  fields
  12647.             before being combined.
  12648.  
  12649.             An entire record can be searched by specifying the first and
  12650.             last field as the range.
  12651.  
  12652.   EXAMPLES: Select all records where: F1 THROUGH F15 CONTAINS "SMITH"
  12653.  
  12654.             If the database  has fifteen  fields per  record, then  this
  12655.             formula searches the entire record for the name "SMITH".
  12656.  
  12657.             F1:F3
  12658.  
  12659.             If  Fields 1, 2 and 3  each contain five characters long and
  12660.             contain "David",  "Sue   " and  "John "  respectively,   the
  12661.             result  is "DavidSue    John  " for  a  total length  of  15
  12662.             characters.
  12663.  
  12664.   ALSO SEE: NONE
  12665.  
  12666.  
  12667.   280  ADD ONLY
  12668.   ----------------------------------------------------------------------
  12669.  
  12670.  
  12671.   PURPOSE:  The ADD  ONLY statement  allows a formula  to be  calculated
  12672.             only  when  the record  is  first  being  entered  into  the
  12673.             database.  (The formula is  not recalculated when the record
  12674.             is edited.)
  12675.  
  12676.   SYNTAX:   formula add only
  12677.  
  12678.             formula = any valid formula.
  12679.  
  12680.   TYPE:          Statement
  12681.  
  12682.   USE IN:   DATABASE
  12683.  
  12684.   COMMENTS: The ADD ONLY statement is useful if you  only want a formula
  12685.             to be calculated  when the record is first  being added into
  12686.             the database.
  12687.  
  12688.             If the  ADD ONLY  formula refers to  another field  which is
  12689.             later changed, the formula is NOT recalculated.  (If the ADD
  12690.             ONLY statement is not used, the formula will be recalculated
  12691.             if the record is edited.)
  12692.  
  12693.   EXAMPLES: TODAY ADD ONLY
  12694.  
  12695.             This is  the most  common use  for the  ADD ONLY  statement.
  12696.             This field maintains  the date  the record  was first  added
  12697.             into the  database.   (If  the  date the  record  was  first
  12698.             created  and  the  date  the  record  is  last  updated  are
  12699.             required, use  two  formulas,  one with  ADD  ONLY  and  one
  12700.             without it.)
  12701.  
  12702.             MONTH+ DAY+ LEFT(MILTIME, 2)+ RIGHT(MILTIME, 2) ADD ONLY
  12703.  
  12704.             This formula can be used to produce a unique code every time
  12705.             a record is added into the database.  It combines the digits
  12706.             for the month, day and the hour and minutes of the time when
  12707.             the record  is added.  An example  for this formula might be
  12708.             12250400 which would be December 25 at 4:00 am.  
  12709.   ALSO SEE: NONE
  12710.  
  12711.  
  12712.                                                               AFTER  281
  12713.   ----------------------------------------------------------------------
  12714.  
  12715.  
  12716.   PURPOSE:  The  AFTER comparitor  is used  to  search for  records with
  12717.             dates that come after a certain date.
  12718.  
  12719.   SYNTAX:   date_field AFTER date_field
  12720.  
  12721.             date_field = constant date or a date field.
  12722.  
  12723.   TYPE:          Comparitor, Date fields only
  12724.  
  12725.   USE IN:   IF/THEN Formulas and Record Selection
  12726.  
  12727.   COMMENTS: You must  use the  BEFORE and  AFTER comparitors  when doing
  12728.             date range searches.  Date  fields cannot be searched  using
  12729.             the  "greater than" or  "less than" comparitors  because the
  12730.             YEAR portion  of the  date,  which is  at the  end, must  be
  12731.             looked at first.   (The AFTER comparitor  converts the dates
  12732.             into the YYYYMMDD format to determine the correct result.)
  12733.  
  12734.             Both dates must  be in the same  format as the default  date
  12735.             format.  
  12736.  
  12737.   EXAMPLES: Select all records where: F1 AFTER "04-15-90"
  12738.  
  12739.             This example finds all records where Field 1 is after  April
  12740.             15.
  12741.  
  12742.             Select all records where: F1 AFTER TODAY
  12743.  
  12744.             This example finds all  records where Field  1 is after  the
  12745.             current system date.
  12746.  
  12747.             Select all records where: 
  12748.                F1 AFTER "12-31-90" AND F1 BEFORE "01-01-92"
  12749.  
  12750.             This  example  finds  all records  where  Field  1 is  after
  12751.             January 1st and before December 31st.
  12752.  
  12753.   ALSO SEE: BEFORE, TODAY
  12754.  
  12755.  
  12756.   282  AGE
  12757.   ----------------------------------------------------------------------
  12758.  
  12759.  
  12760.   PURPOSE:  To calculate the number of days between two dates.
  12761.  
  12762.   SYNTAX:   age(date[, date])
  12763.  
  12764.             date = a date field or constant date.
  12765.  
  12766.   TYPE:          Function, numeric
  12767.  
  12768.   USE IN:   Any Formula
  12769.  
  12770.   COMMENTS: If the second date  is omitted, the  current system date  is
  12771.             used.  (See  the TODAY function for more  information on the
  12772.             system date.)
  12773.  
  12774.             The first  date must  chronologically be  before the  second
  12775.             date and they both must be in the default date format.
  12776.  
  12777.             The  AGE function  returns  the number  of days  between two
  12778.             dates.   To return  the number  of weeks,  months or  years,
  12779.             divide the  number of  days by 7,  30 and  365 respectively.
  12780.             For long time  spans, use 30.4375 for months  and 365.25 for
  12781.             years to obtain more precise results.  
  12782.  
  12783.             Since  File Express  ROUNDs  all  numeric  formulas  to  the
  12784.             accuracy  of the  field (the  number of  decimals), the  INT
  12785.             function should be  used with  all AGE  formulas to  prevent
  12786.             erroneous results.
  12787.  
  12788.   EXAMPLES: AGE(F1)
  12789.  
  12790.             If Field  1 is a  birthday, this formula returns  the age of
  12791.             the person in days.
  12792.  
  12793.             INT( AGE( F1) / 365.25)
  12794.  
  12795.             This returns the persons age in years instead of days.  
  12796.  
  12797.             AGE(F1, F2)
  12798.  
  12799.             Calculates the number of days between the first date and the
  12800.             second date.
  12801.  
  12802.             Select all records where: INT(AGE(F1,TODAY)/365.25) >= 18
  12803.  
  12804.             If Field 1  is a birthday, this example  selects all records
  12805.             where the person is 18 or older. 
  12806.  
  12807.   ALSO SEE: FUTUREDATE
  12808.  
  12809.  
  12810.                                                                 AND  283
  12811.   ----------------------------------------------------------------------
  12812.  
  12813.  
  12814.   PURPOSE:  The AND operator is used when making multiple comparisons to
  12815.             tell  File Express that all  comparisons must be true before
  12816.             considering the whole comparison true.
  12817.  
  12818.   SYNTAX:   comparison AND comparison [AND comparison ...]
  12819.  
  12820.             comparison = any valid comparison statement.
  12821.  
  12822.   TYPE:          Logical Operator, character, numeric
  12823.  
  12824.   USE IN:   IF/THEN Formulas and Record Selection
  12825.  
  12826.   COMMENTS: The AND operator is used when more than one comparison  must
  12827.             be true before the whole comparison is considered true.
  12828.  
  12829.             For more help on building valid comparisons, see the chapter
  12830.             titled "Finding Records".
  12831.  
  12832.             See the 'OR' keyword for more examples.
  12833.  
  12834.   EXAMPLES: Select all records where: 
  12835.                F1 AFTER "11-30-91" AND F1 BEFORE "01-01-92"
  12836.  
  12837.             This  example  finds  all  records  where  Field  1  is  any
  12838.             December, 1991 date.  
  12839.  
  12840.             Select   all   records  where:   F3="A"   AND   F8="WA"  AND
  12841.             F10="MARRIED"
  12842.  
  12843.             If Field 3  is a last name  field, Field 8 is a  state field
  12844.             and Field 10 is a status field, then this  example finds all
  12845.             records where a  married person with  a last name  beginning
  12846.             with "A" lives in Washington state.
  12847.  
  12848.   ALSO SEE: OR
  12849.  
  12850.  
  12851.   284  ASC
  12852.   ----------------------------------------------------------------------
  12853.  
  12854.  
  12855.   PURPOSE:  The ASC  function  returns  the  ASCII  value  for  a  given
  12856.             character.
  12857.  
  12858.   SYNTAX:   asc(text)
  12859.  
  12860.             text =  any ASCII character (including special symbols) or a
  12861.             field which contains an ASCII character or string.  The text
  12862.             character must be in quotes.
  12863.    
  12864.   TYPE:          Function, numeric
  12865.  
  12866.   USE IN:   Any Formula
  12867.  
  12868.   COMMENTS: For  a complete list  of characters and  their corresponding
  12869.             ASCII values, consult the Appendix.
  12870.  
  12871.             This function looks only  at the first  character of a  text
  12872.             string.  If a string is empty, a 0 is returned.
  12873.  
  12874.             This function is the opposite of the CHR function.
  12875.  
  12876.   EXAMPLES: ASC("A")
  12877.  
  12878.             Return the number 65.
  12879.  
  12880.             ASC("BANANA")
  12881.  
  12882.             Returns  the number 66.  (Remember, only the first character
  12883.             is being evaluated.)
  12884.  
  12885.             ASC("")
  12886.  
  12887.             Returns 0.
  12888.  
  12889.   ALSO SEE: CHR
  12890.  
  12891.  
  12892.                                                            .AVERAGE  285
  12893.   ----------------------------------------------------------------------
  12894.  
  12895.  
  12896.   PURPOSE:  The  .AVERAGE  function  provides a  numeric  average  for a
  12897.             specified field. 
  12898.  
  12899.   SYNTAX:   field.average
  12900.  
  12901.             field = any numeric field.
  12902.  
  12903.   TYPE:          Function, numeric
  12904.  
  12905.   USE IN:   Label Writer and Report Writer
  12906.  
  12907.   COMMENTS: The  .AVERAGE function divides the accumulative total of the
  12908.             field by the number of records  printed so far in the report
  12909.             (a running average).
  12910.  
  12911.             For more examples, see the chapter titled "Report Writer".
  12912.  
  12913.   EXAMPLES: F1.AVERAGE
  12914.  
  12915.             If  this formula is used in  the Detail Section of a Report,
  12916.             it returns a  running average for Field 1.   If this formula
  12917.             is used in the Total Section, it returns the ending average.
  12918.  
  12919.   ALSO SEE: .SUBAVERAGE
  12920.  
  12921.  
  12922.   286  BEFORE
  12923.   ----------------------------------------------------------------------
  12924.  
  12925.  
  12926.   PURPOSE:  The BEFORE comparitor is used to search for dates that  come
  12927.             before a certain date.
  12928.  
  12929.   SYNTAX:   date_field AFTER date_field
  12930.  
  12931.             date_field = constant date or a date field.
  12932.  
  12933.   TYPE:          Comparitor, date fields only
  12934.  
  12935.   USE IN:   IF/THEN Formulas and Record Selection
  12936.  
  12937.   COMMENTS: You must  use the  BEFORE and  AFTER comparitors  when doing
  12938.             date  range searches.   Date fields can't  be searched using
  12939.             the  "greater than" or  "less than" comparitors  because the
  12940.             YEAR portion  of the  date,  which is  at the  end, must  be
  12941.             looked at first.  (The  BEFORE comparitor converts the dates
  12942.             into the YYYYMMDD format to determine the correct result.)
  12943.  
  12944.             Both dates must  be in the same  format as the default  date
  12945.             format.  
  12946.  
  12947.   EXAMPLES: Select all records where: F1 BEFORE "04-15-90"
  12948.  
  12949.             This example finds all records where Field 1 is before April
  12950.             15.
  12951.  
  12952.             Select all records where: F1 BEFORE TODAY
  12953.  
  12954.             This example finds  all records where Field 1  is before the
  12955.             current system date.
  12956.  
  12957.             Select all records where: F1 AFTER "12-31-89" AND F1  BEFORE
  12958.             "01-01-91"
  12959.  
  12960.             This example finds  all records where Field 1  is both after
  12961.             December 31, 1989 and before January 1, 1991 (all of 1990).
  12962.  
  12963.   ALSO SEE: AFTER, TODAY
  12964.  
  12965.  
  12966.                                                           BLANKLINE  287
  12967.   ----------------------------------------------------------------------
  12968.  
  12969.  
  12970.  
  12971.  
  12972.   PURPOSE:  The BLANKLINE statement  forces a blank line in  a report or
  12973.             label.
  12974.  
  12975.   SYNTAX:   blankline
  12976.  
  12977.   TYPE:          Statement
  12978.  
  12979.   USE IN:   Label Writer and Report Writer
  12980.  
  12981.   COMMENTS: The BLANKLINE forces File Express to print a blankline.  
  12982.  
  12983.             This statement overrides the "Remove blank lines?" option on
  12984.             the Optional Specifications Screen.
  12985.  
  12986.             By using  the BLANKLINE  statement in  conjunction with  the
  12987.             "Remove blank  lines?" option,  blank lines  can be  removed
  12988.             from all but the desired locations on reports and labels.
  12989.  
  12990.   EXAMPLES: BLANKLINE
  12991.  
  12992.             This forces a single blank line.
  12993.  
  12994.             IF LEFT(F1,1) <> LEFT(F1.PREV,1) THEN BLANKLINE ELSE NOPRINT
  12995.  
  12996.             If  the database is sorted alphabetically, this formula will
  12997.             force a        BLANKLINE every  time the first  character in
  12998.             field 1 changes.  (In other  words, all a's will be  grouped
  12999.             with a blankline then all b's then all c's etc.
  13000.  
  13001.   ALSO SEE: NONE
  13002.  
  13003.  
  13004.   288  CENTER
  13005.   ----------------------------------------------------------------------
  13006.  
  13007.  
  13008.  
  13009.   PURPOSE:  The CENTER function is  used to center  text or fields  when
  13010.             printing Reports or Labels.
  13011.  
  13012.   SYNTAX:   center(text [ ,length])
  13013.  
  13014.             text = a field or character string to center.
  13015.  
  13016.             length (optional) = the number of spaces you want your  text
  13017.             centered within.
  13018.  
  13019.   TYPE:          Function, character
  13020.  
  13021.   USE IN:   Label Writer and Report Writer
  13022.  
  13023.   COMMENTS: The CENTER  function is  commonly used  to  center text  for
  13024.             headings.
  13025.  
  13026.             If the  second parameter is  omitted, the  text is  centered
  13027.             within the defined field length.
  13028.  
  13029.             For centering  fields on  reports and  labels, the  CENTERED
  13030.             statement can also be used.
  13031.  
  13032.   EXAMPLES: CENTER("Monthly Report",60)
  13033.  
  13034.             This  example  centers the  phrase  "Monthly Report"  within
  13035.             sixty spaces.
  13036.  
  13037.             CENTER(F1)
  13038.  
  13039.             This example centers Field 1 within the defined field length
  13040.             of Field 1.
  13041.  
  13042.   ALSO SEE: CENTERED, LJUST and RJUST
  13043.  
  13044.  
  13045.                                                            CENTERED  289
  13046.   ----------------------------------------------------------------------
  13047.  
  13048.   PURPOSE:  The  CENTERED  statement  is used  to  center  a field  when
  13049.             printing Reports or Labels.
  13050.  
  13051.   SYNTAX:   field centered
  13052.  
  13053.             field = any field or text formula.
  13054.  
  13055.   TYPE:          Statement
  13056.  
  13057.   USE IN:   Label Writer and Report Writer
  13058.  
  13059.   COMMENTS: The field  or text  is centered within  the field's  defined
  13060.             field length.
  13061.  
  13062.             For  centering a field  within the database,  see the CENTER
  13063.             function.
  13064.  
  13065.   EXAMPLES: F1 CENTERED
  13066.  
  13067.             This example centers Field 1 within the defined field length
  13068.             of Field 1.
  13069.  
  13070.             F1 & F2 CENTERED
  13071.  
  13072.             This formula  first combines  Field 1 and  Field 2  with one
  13073.             space between them, and  then centers the result within  the
  13074.             combined lengths of Field 1 and Field 2.
  13075.  
  13076.   ALSO SEE: CENTER, LEFT JUSTIFIED, LJUST, RIGHT JUSTIFIED and RJUST
  13077.  
  13078.  
  13079.   290  CHR
  13080.   ----------------------------------------------------------------------
  13081.  
  13082.  
  13083.  
  13084.   PURPOSE:  The  CHR function  converts a  number  to the  corresponding
  13085.             ASCII character.
  13086.  
  13087.   SYNTAX:   chr(number)
  13088.  
  13089.             number = a number between 0 and 255.
  13090.  
  13091.   TYPE:          Function, text
  13092.  
  13093.   USE IN:   Any Formula
  13094.  
  13095.   COMMENTS: This function can be used to send a character to the printer
  13096.             which cannot be typed at the keyboard.
  13097.  
  13098.             Common examples include  embedding printer codes to  send to
  13099.             your  printer or to  embed special characters  when creating
  13100.             mail merge files.
  13101.  
  13102.             For a list  of all ASCII characters and  their corresponding
  13103.             ASCII values, see Appendix B.
  13104.  
  13105.   EXAMPLES: CHR(27)
  13106.  
  13107.             Returns the ASCII character 27 (or the ESCAPE character).
  13108.  
  13109.             CHR(27)+chr(65)
  13110.  
  13111.             Returns  the ESCAPE  character plus  the  letter 'A'.   (For
  13112.             EPSON printers, this is the code to turn on underlining.)
  13113.  
  13114.             CHR(27)+"A"
  13115.  
  13116.             This produces the same results as the previous example.
  13117.  
  13118.   ALSO SEE: ASC
  13119.  
  13120.  
  13121.                                                              COMMAS  291
  13122.   ----------------------------------------------------------------------
  13123.  
  13124.  
  13125.    
  13126.   PURPOSE:  The  COMMAS  statement  inserts  commas  into the  billions,
  13127.             millions and thousands places in a number.
  13128.  
  13129.   SYNTAX:   field [with] commas
  13130.  
  13131.             field = a numeric field or formula.
  13132.  
  13133.   TYPE:          Statement
  13134.  
  13135.   USE IN:   Label Writer and Report Writer
  13136.  
  13137.   COMMENTS: File   Express  defaults   to  inserting  commas   into  the
  13138.             appropriate  places when printing  numbers.  If  the default
  13139.             has been  changed using the Setup program,  commas may still
  13140.             be inserted on a field by field basis using this  statement.
  13141.             (Because commas cannot be entered when entering numbers into
  13142.             the  database,  this  option can  be  used  to place  commas
  13143.             correctly on printouts.
  13144.  
  13145.   EXAMPLES: F5 WITH COMMAS
  13146.  
  13147.             This example inserts  commas into the appropriate  places in
  13148.             the numbers  in Field  5.   Example:   "4532" is printed  as
  13149.             "4,532".
  13150.  
  13151.   ALSO SEE: NO COMMAS
  13152.  
  13153.  
  13154.   292  Comparitors
  13155.   ----------------------------------------------------------------------
  13156.  
  13157.  
  13158.  
  13159.   PURPOSE:  Use these keywords to compare fields.
  13160.  
  13161.   SYNTAX:   field Comparitor field
  13162.  
  13163.             field  = any  valid field,  constant,  formula, function  or
  13164.             text.
  13165.  
  13166.   TYPE:          Comparitor, character, numeric
  13167.  
  13168.   USE IN:   IF/THEN Formulas and Record Selection
  13169.  
  13170.   COMMENTS: Here is a list  of the common  Comparitors (for the  special
  13171.             comparitors,  see   the  functions  listed   under  "Related
  13172.             Functions".)
  13173.  
  13174.             Comparitor     Alternate      Description
  13175.             ----------     ---------      -----------
  13176.                =      EQ        Equal
  13177.                       IS        Equal
  13178.                       ARE       Equal
  13179.                       EQUAL     Equal
  13180.                >      GT        Greater than
  13181.                <      LT        Less than
  13182.                >=          GE        Great than or equal
  13183.                <=          LE        Less than or equal
  13184.                <>          NE        Not equal
  13185.  
  13186.             NOTE: Most of the above examples may be proceeded by the NOT
  13187.             keyword to negate the equation.  
  13188.  
  13189.   EXAMPLES: Select all records where: F7 = "WA"
  13190.  
  13191.             This example selects  all records where Field 7  is equal to
  13192.             "WA".
  13193.  
  13194.             Select all records where: F7 IS NOT EQUAL TO "WA"
  13195.  
  13196.             This example selects all records where Field 7 is not  equal
  13197.             to "WA".  (The formula: F7 NE "WA" is the same.)
  13198.  
  13199.   ALSO SEE: AFTER, BEFORE, CONTAINS, EXACTLY and SOUNDS LIKE
  13200.  
  13201.  
  13202.                                                            CONTAINS  293
  13203.   ----------------------------------------------------------------------
  13204.  
  13205.  
  13206.  
  13207.   PURPOSE:  The  CONTAINS comparitor is used to search for text embedded
  13208.             within a field.
  13209.  
  13210.   SYNTAX:   field CONTAINS field
  13211.  
  13212.             field = any text field or constant text.
  13213.  
  13214.   TYPE:          Comparitor, character
  13215.  
  13216.   USE IN:   IF/THEN Formulas and Record Selection
  13217.  
  13218.   COMMENTS: A search using  EQUALS only finds field  contents that begin
  13219.             with the search string.   To find  text anywhere within  the
  13220.             field, use CONTAINS.
  13221.  
  13222.             CONTAINS is  useful when searching  a comment field  (or any
  13223.             other  text  field) when  the  possible match  may  be found
  13224.             anywhere within the field.
  13225.  
  13226.   EXAMPLES: Select all records where: F10 CONTAINS "manager"
  13227.  
  13228.             This  example searches Field  10 throughout looking  for the
  13229.             word "manager".
  13230.  
  13231.             Select all records where: F1:F3 CONTAINS "cat"
  13232.  
  13233.             This example  searches Field 1  through Field 3  looking for
  13234.             the  word  "cat".   Valid  matches  might  include "cattle",
  13235.             "vacate",  "dogcatcher",  "communications",  "photocatalyst"
  13236.             and, of course, "cat". 
  13237.  
  13238.   ALSO SEE: INSTR
  13239.  
  13240.  
  13241.   294  .COUNT
  13242.   ----------------------------------------------------------------------
  13243.  
  13244.  
  13245.  
  13246.   PURPOSE:  The .COUNT function  provides a record count of  the records
  13247.             printed.
  13248.  
  13249.   SYNTAX:   field.count
  13250.  
  13251.             field = any field.
  13252.  
  13253.   TYPE:          Function, numeric
  13254.  
  13255.   USE IN:   Label Writer and Report Writer
  13256.  
  13257.   COMMENTS: The COUNT  function counts  the number  of records  printed.
  13258.             The contents of the  field being counted  do not affect  the
  13259.             count.   (i.e.  numbers within  a  field do  not affect  the
  13260.             count.)
  13261.  
  13262.             This  function returns  the same  number  regardless of  the
  13263.             section of the Report it is used in.
  13264.  
  13265.             See the .NBCOUNT function to exclude records where the field
  13266.             being counted is blank.
  13267.  
  13268.             Also  see  the  chapter  on  the  "Report  Writer"  for more
  13269.             examples.
  13270.  
  13271.   EXAMPLES: F1.COUNT
  13272.  
  13273.             If this formula is used in  the Detail Section of a  Report,
  13274.             it returns  the running  count of the  records printed.   If
  13275.             this formula is used  in the Total  Section, it returns  the
  13276.             total number of records printed.
  13277.  
  13278.   ALSO SEE: .NBCOUNT, .NBSUBCOUNT and .SUBCOUNT
  13279.  
  13280.  
  13281.                                                                 DAY  295
  13282.   ----------------------------------------------------------------------
  13283.  
  13284.  
  13285.  
  13286.   PURPOSE:  The DAY function returns the day number.
  13287.  
  13288.   SYNTAX:   day[(date)]
  13289.  
  13290.             date =  any  valid  date  field  or  constant  date  in  the
  13291.             currently defined date format.
  13292.  
  13293.   TYPE:          Function, numeric
  13294.  
  13295.   USE IN:   Any Formula
  13296.  
  13297.   COMMENTS: If the date  is omitted, this function returns  the day from
  13298.             the  current system date.   (For information  on the current
  13299.             system date, see the TODAY function.)
  13300.  
  13301.   EXAMPLES: DAY
  13302.  
  13303.             If  the current  date  is  "06-07-90",  then  this  function
  13304.             returns "7".
  13305.  
  13306.             DAY(F1)
  13307.  
  13308.             If "04-16-90" is the date in Field 1, this function  returns
  13309.             "16".
  13310.  
  13311.             DAYNAME(F1) + "," & MONTHNAME(F1) & DAY(F1) + "," & YEAR(F1)
  13312.  
  13313.             If  Field 1 has  the date "04-16-90",  this function returns
  13314.             "Monday, April 16, 1990".
  13315.  
  13316.   ALSO SEE: DAYABBV, DAYNAME, FORMATDATE, MONTHNAME, MONTHABBV, and YEAR
  13317.  
  13318.  
  13319.   296  DAYABBV
  13320.   ----------------------------------------------------------------------
  13321.  
  13322.  
  13323.  
  13324.   PURPOSE:  The DAYABBV function returns the abbreviated day name.
  13325.  
  13326.   SYNTAX:   dayabbv([date])
  13327.  
  13328.             date =  any  valid  date  field  or  constant  date  in  the
  13329.             currently defined date format.
  13330.  
  13331.   TYPE:          Function, character
  13332.  
  13333.   USE IN:   Any Formula
  13334.  
  13335.   COMMENTS: If  the  date is  omitted,  this  function returns  the  day
  13336.             abbreviation for the current date.  (For  information on the
  13337.             current date, see the TODAY function.)
  13338.  
  13339.             The  abbreviation is the  standard first three  letters with
  13340.             the first letter  capitalized and a period at the end.  (See
  13341.             examples.)  To convert  all the letters  to upper case,  use
  13342.             DAYABBV with the UPPER function. 
  13343.  
  13344.   EXAMPLES: DAYABBV
  13345.  
  13346.             If  the  current  day is  WEDNESDAY,  this  function returns
  13347.             "Wed.".
  13348.  
  13349.             DAYABBV(F1)
  13350.  
  13351.             If "04-16-90" is the date in Field 1, this function  returns
  13352.             "Mon.".
  13353.  
  13354.             UPPER(DAYABBV("04-16-90"))
  13355.  
  13356.             This example returns "MON.".
  13357.  
  13358.             DAYABBV(F1) + "," & MONTHABBV(F1) & DAY(F1) + "," & YEAR(F1)
  13359.  
  13360.             If  Field 1 has  the date "04-16-90",  this function returns
  13361.             "Mon., Apr. 16, 1990"
  13362.  
  13363.   ALSO SEE: DAYNAME, FORMATDATE, MONTHNAME, MONTHABBV, YEAR
  13364.  
  13365.  
  13366.                                                             DAYNAME  297
  13367.   ----------------------------------------------------------------------
  13368.  
  13369.  
  13370.  
  13371.   PURPOSE:  The DAYNAME function returns the spelled out day name.
  13372.  
  13373.   SYNTAX:   dayname[(date)]
  13374.  
  13375.             date =  any  valid  date  field  or  constant  date  in  the
  13376.             currently defined date format.
  13377.  
  13378.   TYPE:          Function, character
  13379.  
  13380.   USE IN:   Any Formula
  13381.  
  13382.   COMMENTS: If the  date is omitted,  this function returns  the spelled
  13383.             out day name for the current system date.  (For  information
  13384.             on the current system date, see the TODAY function.)
  13385.  
  13386.             The DAYNAME  function returns  the day  name with  the first
  13387.             letter capitalized and the rest in lower case.  (For the day
  13388.             abbreviation, see the DAYABBV function.)
  13389.  
  13390.   EXAMPLES: DAYNAME
  13391.  
  13392.             If  the  current  day is  WEDNESDAY,  this  function returns
  13393.             "Wednesday".
  13394.  
  13395.             DAYNAME(F1)
  13396.  
  13397.             If "04-16-90" is the date in Field 1, this function  returns
  13398.             "Monday".
  13399.  
  13400.             UPPER(DAYNAME("04-16-90"))
  13401.  
  13402.             This formula returns "MONDAY".
  13403.  
  13404.             DAYNAME(F1) + "," & MONTHNAME(F1) & DAY(F1) + "," & YEAR(F1)
  13405.  
  13406.             If Field  1 has the  date "04-16-90", this  function returns
  13407.             "Monday, April 16, 1990".
  13408.  
  13409.   ALSO SEE: DAY, DAYABBV, FORMATDATE, MONTHABBV, MONTHNAME and YEAR
  13410.  
  13411.  
  13412.   298  DOLLAR SIGN  ($)
  13413.   ----------------------------------------------------------------------
  13414.  
  13415.  
  13416.  
  13417.   PURPOSE:  The DOLLAR SIGN  statement adds a floating dollar  sign to a
  13418.             number.
  13419.  
  13420.   SYNTAX:   field [with] dollar sign 
  13421.  
  13422.             field = a numeric field or formula.
  13423.  
  13424.   TYPE:          Statement
  13425.  
  13426.   USE IN:   Report Writer
  13427.  
  13428.   COMMENTS: The DOLLAR SIGN  adds a  dollar sign to  the beginning of  a
  13429.             number.
  13430.  
  13431.             The '$' symbol  may be used  in place of  the "DOLLAR  SIGN"
  13432.             statement.
  13433.  
  13434.   EXAMPLES: F5 WITH DOLLAR SIGN
  13435.  
  13436.             This example  adds a dollar  sign to the output  of Field 5.
  13437.             Example:  if  it originally had the value  "12.34", the text
  13438.             printed is "$12.34".
  13439.  
  13440.             F5 WITH $
  13441.  
  13442.             This is the same to the previous example.
  13443.  
  13444.   ALSO SEE: MONEY SIGN
  13445.  
  13446.  
  13447.                                                             EXACTLY  299
  13448.   ----------------------------------------------------------------------
  13449.  
  13450.  
  13451.  
  13452.   PURPOSE:  The "EXACTLY" comparitor  is used to force a  case sensitive
  13453.             comparison.
  13454.  
  13455.   SYNTAX:   field = EXACTLY field
  13456.  
  13457.             field = any text field or constant text.
  13458.  
  13459.   TYPE:          Comparitor, character
  13460.  
  13461.   USE IN:   IF/THEN Formulas and Record Selection
  13462.  
  13463.   COMMENTS: Use the EXACTLY keyword when  making comparisons if the case
  13464.             is important.
  13465.  
  13466.             The default  for File  Express is  to ignore  the case  when
  13467.             making searches.
  13468.  
  13469.   EXAMPLES: Select all records where: F1 IS EXACTLY "Smith"
  13470.  
  13471.             This example  finds all  matches where Field  1 is  equal to
  13472.             "Smith";  "SMITH"  and  "smith"   are  not  valid   matches.
  13473.             Constant text must be in quotes.
  13474.  
  13475.   ALSO SEE: NONE
  13476.  
  13477.  
  13478.   300  FIRSTLINE
  13479.   ----------------------------------------------------------------------
  13480.  
  13481.  
  13482.  
  13483.   PURPOSE:  The  FIRSTLINE function  is used  to  see if  the report  is
  13484.             printing the first Detail line on the current page.
  13485.  
  13486.   SYNTAX:   firstline
  13487.  
  13488.   TYPE:          Function, true or false
  13489.  
  13490.   USE IN:   Report Writer
  13491.  
  13492.   COMMENTS: The  FIRSTLINE  function  returns  a  true  or  false  value
  13493.             depending  on whether or not  the Report Writer is currently
  13494.             printing the  first detail  line at the  top of  the current
  13495.             page.
  13496.  
  13497.             Since the FIRSTLINE keyword represents the first Detail line
  13498.             of a  page,  it  is not  affected  by the  contents  of  the
  13499.             Headings or Titles Section.  
  13500.  
  13501.   EXAMPLES: IF FIRSTLINE AND F1=F1.PREV THEN F1 & "(Continued)"
  13502.  
  13503.             This formula prints Field 1 and the text "(Continued)" if  a
  13504.             new  page is  started and  Field  1 is  continuing from  the
  13505.             previous page.
  13506.  
  13507.   ALSO SEE: LINE
  13508.  
  13509.  
  13510.                                                          FORMATDATE  301
  13511.   ----------------------------------------------------------------------
  13512.  
  13513.  
  13514.  
  13515.   PURPOSE:  The  FORMATDATE  function  converts a  date  in  the default
  13516.             format to one of 93 different formats.
  13517.  
  13518.   SYNTAX:   formatdate(date, format_number)
  13519.  
  13520.             date = any date field or constant date.
  13521.  
  13522.             format_number = any number from 1 to 93.  See Appendix E for
  13523.             a list of all the format options.
  13524.  
  13525.  
  13526.   TYPE:          Function, character
  13527.  
  13528.   USE IN:   Report Writer, Label Writer
  13529.  
  13530.   COMMENTS: The FORMATDATE function  is used to convert a  date from the
  13531.             current default  date format  (either mm-dd-yy,  mm-dd-yyyy,
  13532.             dd-mm-yy,  or dd-mm-yyyy), to one of  the 93 formats offered
  13533.             by File Express.  See Appendix E for a complete list  of all
  13534.             the date formats offered.
  13535.  
  13536.  
  13537.   EXAMPLES: FORMATDATE("12-25-89", 15)
  13538.  
  13539.             This example converts the date to: "December 25, 1989"
  13540.  
  13541.             FORMATDATE(TODAY, 40)
  13542.  
  13543.             If  today's  date  is  "06-18-90",  this  function  returns:
  13544.             "Monday 18 June, 1990"
  13545.  
  13546.   ALSO SEE: DAYNAME, DAYABBV, DAY, MONTHNAME, MONTHABBV, MONTH, YEAR
  13547.  
  13548.  
  13549.   302  Functions, Math
  13550.   ----------------------------------------------------------------------
  13551.  
  13552.  
  13553.  
  13554.   PURPOSE:  To perform higher level math calculations.
  13555.  
  13556.   SYNTAX:   Math_Function(expression)
  13557.  
  13558.             expression = any numeric constant, result, or field.
  13559.  
  13560.   TYPE:          Function, numeric
  13561.  
  13562.   USE IN:   Any Formula
  13563.  
  13564.   COMMENTS: The following is a complete list of the functions which make
  13565.             up Math Functions:
  13566.  
  13567.             ABS(expression)          Absolute Value
  13568.             ATN(expression)     Arctangent
  13569.             COS(expression)     Cosine
  13570.             EXP(expression)     Exponent
  13571.             INT(expression)          Integer
  13572.             LOG(expression)     Natural Log
  13573.             SIN(expression)          Sine
  13574.             SQR(expression)     Square Root
  13575.             TAN(expression)     Tangent
  13576.  
  13577.             For  information   on  general  math   operators,  see  Math
  13578.             Operators.
  13579.  
  13580.             For  complete information  on  the uses  and rules  of these
  13581.             functions, consult a math reference manual.
  13582.  
  13583.   EXAMPLES: INT(F1)
  13584.  
  13585.             This example takes  the integer of Field  1.  If Field  1 is
  13586.             10.53,  the result  is 10.   (Note:    the decimal  value is
  13587.             dropped, not rounded.)
  13588.  
  13589.             SQR(F1)
  13590.  
  13591.             If Field 1 contains a value of 144, the result is 12.
  13592.  
  13593.   ALSO SEE: Math Operators, RANDOM, ROUND, SUM and VALUE
  13594.  
  13595.  
  13596.                                                          FUTUREDATE  303
  13597.   ----------------------------------------------------------------------
  13598.  
  13599.  
  13600.  
  13601.  
  13602.   PURPOSE:  The FUTUREDATE function calculates a date in the future.
  13603.  
  13604.   SYNTAX:   futuredate(date, days_in_future)
  13605.  
  13606.             date = any date field or constant date.
  13607.  
  13608.             days_in_future = any numeric field or constant number.
  13609.  
  13610.   TYPE:          Function, character
  13611.  
  13612.   USE IN:   Any formula
  13613.  
  13614.   COMMENTS: The  FUTUREDATE works on a  days basis.  To add  a week to a
  13615.             date, add 7  days; to add two  weeks, add 14 days;  to add a
  13616.             year, add 365 days (or 365.25 days for long term dates).
  13617.  
  13618.             To determine the  number of days between two  dates, use the
  13619.             AGE function.
  13620.  
  13621.   EXAMPLES: FUTUREDATE(F1,14)
  13622.  
  13623.             This example  adds two  weeks (or  14 days)  to the date  in
  13624.             Field 1.
  13625.  
  13626.             FUTUREDATE(F1,365)
  13627.  
  13628.             This example adds a year (provided it is not a leap year) to
  13629.             the date in Field 1.
  13630.  
  13631.             FUTUREDATE(F1,F5)
  13632.  
  13633.             This formula adds  the number of days in Field 5 to the date
  13634.             in Field 1.
  13635.  
  13636.   ALSO SEE: AGE
  13637.  
  13638.  
  13639.   304  GRAPH
  13640.   ----------------------------------------------------------------------
  13641.  
  13642.  
  13643.  
  13644.   PURPOSE:  The GRAPH function produces a simple horizontal graph.
  13645.  
  13646.   SYNTAX:   graph(field_to_graph, scaling_factor [ , shading_factor])
  13647.  
  13648.             field_to_graph = any numeric field, function or constant 
  13649.  
  13650.             scaling_factor = numeric field or constant
  13651.  
  13652.             shading_factor = numeric field or constant
  13653.  
  13654.   TYPE:          Function, character
  13655.  
  13656.   USE IN:   Report Writer
  13657.  
  13658.   COMMENTS: The shading  value can  be from  1 to  4.   A 1  is a  solid
  13659.             character and a 4 is the lightest.  If the shading  value is
  13660.             omitted, a solid character is printed.  (Any value over 4 or
  13661.             less than 1 also produces a solid character.)
  13662.  
  13663.             The scaling factor is divided into the value to be  graphed.
  13664.             This is useful to scale down large numbers.
  13665.  
  13666.             This function only works with printers which support the IBM
  13667.             Graphics  Character Set  #2.   If  strange characters  print
  13668.             instead of graphic characters, then  your printer is not set
  13669.             to  print  IBM Graphics  Character  Set #2.    (Consult your
  13670.             printer manual or your printer company.)
  13671.  
  13672.   EXAMPLES: GRAPH(F1,10)
  13673.  
  13674.             This example graphs the value of Field 1 after  it is scaled
  13675.             down by ten.
  13676.  
  13677.             GRAPH(F1,10,4)
  13678.  
  13679.             This example  produces the same  result as  in the  previous
  13680.             example but in the lightest possible shading.
  13681.  
  13682.             GRAPH(F1,F2)+GRAPH(F5,F6,4)
  13683.  
  13684.             This example produces two  graphs next to  each other.   The
  13685.             result is something like a stacked graph except it is laying
  13686.             sideways.  (Note: in this example, the '+' is being used  to
  13687.             combine the two text fields.)
  13688.  
  13689.   ALSO SEE: REPEAT and SPACE
  13690.  
  13691.  
  13692.                                                               INSTR  305
  13693.   ----------------------------------------------------------------------
  13694.  
  13695.  
  13696.  
  13697.   PURPOSE:  The  INSTR function returns the character position of a text
  13698.             string within another text string.
  13699.  
  13700.   SYNTAX:   instr(character_field, text_to_search_for[ ,direction])
  13701.  
  13702.             character_field = a character field which is to be searched.
  13703.  
  13704.             text_to_search_for = the text string which you are searching
  13705.             for.
  13706.  
  13707.             direction (optional) = if direction is 0, the search is done
  13708.             from  left to right.  If direction  is any other number, the
  13709.             search is done from right to left.  If direction is omitted,
  13710.             the search is done from left to right.
  13711.  
  13712.   TYPE:          Function, numeric
  13713.  
  13714.   USE IN:   Any Formula
  13715.  
  13716.   COMMENTS: When searching for a match, this function starts at the left
  13717.             and moves to  the right.  It  stops when it finds  the first
  13718.             match.    If  the  direction option  is  used,  File Express
  13719.             searches from  right to  left.  In  either case,  the number
  13720.             returned is the character position counted from the left end
  13721.             of the string.   If no match  is found, the result  is zero.
  13722.             See the LEFT and MID functions for more examples.
  13723.  
  13724.   EXAMPLES: INSTR(F10,"-")
  13725.  
  13726.             If Field 10 is "788-0932", this formula returns the value 4.
  13727.  
  13728.             INSTR(F10,"8",1)
  13729.  
  13730.             Using  the  phone  number from  the  previous  example, this
  13731.             example searches from right to left and returns the value of
  13732.             3,  which is the  position of the first  "8" found from that
  13733.             direction.
  13734.  
  13735.             LEFT(F1,INSTR(F1,","))
  13736.  
  13737.             Since the LEFT function extracts the left-most characters of
  13738.             a text string.  This formula will extract all the characters
  13739.             up to and including  the first comma.   (The INSTR  function
  13740.             provides the character position  for the first comma.   This
  13741.             example could be useful in situations where a last and first
  13742.             name are in the same field with a comma separating them.)
  13743.  
  13744.   ALSO SEE: CONTAINS and REPLACE
  13745.  
  13746.  
  13747.   306  LEFT
  13748.   ----------------------------------------------------------------------
  13749.  
  13750.  
  13751.  
  13752.   PURPOSE:  The  LEFT function is used to extract  the left portion of a
  13753.             text field.
  13754.  
  13755.   SYNTAX:   LEFT(text_field , number_of_characters_to_extract)
  13756.  
  13757.             text_field  =  the  character  field  you  want  to  extract
  13758.             characters from.
  13759.  
  13760.             number_of_characters_to_extract =  the number  of characters
  13761.             to extract starting from  the left.   This may be a  number,
  13762.             numeric field or numeric function.
  13763.  
  13764.   TYPE:          Function, character
  13765.  
  13766.   USE IN:   Any Formula
  13767.  
  13768.   COMMENTS: The result of  this function can be  used by itself or  in a
  13769.             formula.
  13770.  
  13771.   EXAMPLES: LEFT(F8,2)
  13772.  
  13773.             If Field 8 is "98007", then this formula returns "98".
  13774.  
  13775.             Select all records where: LEFT(F8,2) > 58
  13776.  
  13777.             If Field 8 contains zip codes, this formula returns all  zip
  13778.             codes which start with "59" or higher.
  13779.  
  13780.             LEFT(F2,LENGTH(F2)-4)
  13781.  
  13782.             If this is used in a Search and Replace  formula, the affect
  13783.             is the  same  as removing  the  last four  characters.    By
  13784.             letting  File Express  calculate the  length  of each  field
  13785.             entry, this formula works with fields of varying lengths.
  13786.  
  13787.             LEFT(F2,INSTR(F2," ")-1)
  13788.  
  13789.             This  formula  returns all  the  characters up  to,  but not
  13790.             including, the first  space character.  This  is useful when
  13791.             extracting  a first name  from a  field which  contains both
  13792.             first name and  last name.   Example:  If  Field 2 is  "John
  13793.             Smith", this  formula returns "John".  (See MID function for
  13794.             more examples.)
  13795.  
  13796.   ALSO SEE: MID, REPLACE and RIGHT
  13797.  
  13798.  
  13799.                                                 LEFT JUSTIFIED (LJ)  307
  13800.   ----------------------------------------------------------------------
  13801.  
  13802.  
  13803.  
  13804.   PURPOSE:  The  LEFT JUSTIFIED keyword  is used to  left justify fields
  13805.             when printing through the Report Writer and Label Writer.
  13806.  
  13807.   SYNTAX:   field left justified
  13808.  
  13809.             field = any field or constant value.
  13810.  
  13811.   TYPE:          Statement
  13812.  
  13813.   USE IN:   Label Writer and Report Writer
  13814.  
  13815.   COMMENTS: The  field or  constant  is left  justified  to the  field's
  13816.             defined field length.
  13817.  
  13818.             To  left  justify  text within  a  database,  see  the LJUST
  13819.             function.
  13820.  
  13821.             Since  numeric fields  are  normally  right justified,  this
  13822.             keyword may be used to override this default.
  13823.  
  13824.   EXAMPLES: F1 LEFT JUSTIFIED
  13825.  
  13826.             This  example left  justifies the contents  in Field  1 when
  13827.             printing.
  13828.  
  13829.             F1 LJ
  13830.  
  13831.             This  example produces  the  same  output  as  the  previous
  13832.             example.
  13833.  
  13834.             F1.TOTAL LJ
  13835.  
  13836.             This formula left justifies the running total of Field 1.
  13837.  
  13838.   ALSO SEE: CENTER, CENTERED, RIGHT JUSTIFIED, LJUST and RJUST
  13839.  
  13840.  
  13841.   308  LENGTH (LEN)
  13842.   ----------------------------------------------------------------------
  13843.  
  13844.  
  13845.  
  13846.   PURPOSE:  The LENGTH function returns the length of a text string.
  13847.  
  13848.   SYNTAX:   length(text)
  13849.  
  13850.             text = any character field.
  13851.  
  13852.   TYPE:          Function, numeric
  13853.  
  13854.   USE IN:   Record Selection and Search and Replace
  13855.  
  13856.   COMMENTS: This function returns  the length of a character field after
  13857.             removing leading and trailing  spaces.  It  can be used  any
  13858.             place a numeric value is required.
  13859.  
  13860.   EXAMPLES: LEN(F1)
  13861.  
  13862.             Returns the length of Field 1.
  13863.  
  13864.             Select all records where: LENGTH(F10) > 5
  13865.  
  13866.             This example  selects all  records where  Field 10  has more
  13867.             than five characters.  
  13868.  
  13869.             LEFT(F1,LEN(F1)-4)
  13870.  
  13871.             This formula returns all  but the last four  characters from
  13872.             Field 1.  (See the LEFT function for more information.)  
  13873.  
  13874.   ALSO SEE: NONE
  13875.  
  13876.  
  13877.                                                                LINE  309
  13878.   ----------------------------------------------------------------------
  13879.  
  13880.  
  13881.  
  13882.   PURPOSE:  The  LINE function  returns the  current  line on  which the
  13883.             report or label writer is printing.
  13884.  
  13885.   SYNTAX:   line
  13886.  
  13887.   TYPE:          Function, numeric
  13888.  
  13889.   USE IN:   Label Writer and Report Writer
  13890.  
  13891.   COMMENTS: If  the LINE  function is  used  by itself,  it returns  the
  13892.             current line number  on which the Report Writer is printing.
  13893.             (Line 1 is the  first line to print  after the top  margin.)
  13894.             This is useful when initially designing a report.  By  using
  13895.             this keyword in a formula, there is no  guessing as to which
  13896.             line  is   being  printed.    After  the  line  numbers  are
  13897.             established, this formula can be deleted.
  13898.  
  13899.             The LINE keyword may also be used in an IF/THEN formula.
  13900.  
  13901.   EXAMPLES: LINE
  13902.  
  13903.             This example returns the current line number  of the report.
  13904.  
  13905.  
  13906.             IF (LINE MOD 10) = 0  THEN LINE
  13907.  
  13908.             This example prints the line number on every tenth line.
  13909.  
  13910.   ALSO SEE: FIRSTLINE
  13911.  
  13912.  
  13913.   310  LJUST 
  13914.   ----------------------------------------------------------------------
  13915.  
  13916.  
  13917.  
  13918.   PURPOSE:  The LJUST function left justifies a field or text string.
  13919.  
  13920.   SYNTAX:   ljust(field_to_justify [ ,number])
  13921.  
  13922.             field_to_justify = the field or character string to be  left
  13923.             justified.
  13924.  
  13925.             number (optional) = the number of characters to left justify
  13926.             within.
  13927.  
  13928.   TYPE:          Function, character
  13929.  
  13930.   USE IN:   Label Writer, Report Writer and  Search and Replace
  13931.  
  13932.   COMMENTS: If the number is omitted, the text is left justified  to the
  13933.             fields' defined length.
  13934.  
  13935.             Blank spaces are  used to pad the output  to the appropriate
  13936.             number.
  13937.  
  13938.             Since  numeric  fields  are normally  right  justified, this
  13939.             function may be used to left justify them.
  13940.  
  13941.   EXAMPLES: All  of these  examples left  justify the field  contents or
  13942.             text.
  13943.  
  13944.             LJUST("Hello",30)
  13945.  
  13946.             This example returns "Hello                         ".
  13947.  
  13948.             LJUST(F1,10)
  13949.  
  13950.             This example pads Field 1 to ten characters.
  13951.  
  13952.             LJUST(F1)
  13953.  
  13954.             This example pads Field 1 to its defined length.
  13955.  
  13956.             LJ(F1)
  13957.  
  13958.             This is the same as the previous example.
  13959.  
  13960.   ALSO SEE: CENTER, RJUST
  13961.  
  13962.  
  13963.                                                              LOOKUP  311
  13964.   ----------------------------------------------------------------------
  13965.  
  13966.  
  13967.  
  13968.   PURPOSE:  The LOOKUP function  looks into another database  to extract
  13969.             information.
  13970.  
  13971.   SYNTAX:   lookup(database_name,                       field_to_search,
  13972.             [>][<]search_criteria, field_to_return)
  13973.  
  13974.             database_name  = the  name of  the database  to search  (may
  13975.             include  drive  and path).   The  database_name must  be the
  13976.             typed out name of the database.   It cannot be a field  name
  13977.             or formula containing the name.
  13978.  
  13979.             field_to_search = the field in the other database to search.
  13980.             The field_to_search must be in the Fxx format.  It cannot be
  13981.             a field name.
  13982.  
  13983.             search_criteria =  the information  to use  for the  search.
  13984.             The  search_criteria parameter can have one of the following
  13985.             comparison signs preceding it:  
  13986.             =,  >, <,  >=,  <=, ><,  or  <>.   If  a comparitor  is  not
  13987.             specified,  an exact match is looked for (disregarding upper
  13988.             and  lower  case  letters).    The  search_criteria  can  be
  13989.             constant  text enclosed in  quotes, for example, "BASEBALL",
  13990.             or a field number, F4, or a field name, BALANCE DUE.
  13991.  
  13992.             field_to_return = the field contents  to return once a match
  13993.             is found.  The  field_to_return must be  in the Fxx  format.
  13994.             It cannot be a field name.
  13995.  
  13996.   TYPE:          Function, character, numeric
  13997.  
  13998.   USE IN:   Database and Report Writer
  13999.  
  14000.   COMMENTS: The LOOKUP function returns one field at a time. 
  14001.  
  14002.             When a  LOOKUP is made, the  record accessed is stored  in a
  14003.             buffer.  The  next LOOKUP checks this buffer  for a possible
  14004.             match  before rechecking a database.  Therefore, to decrease
  14005.             lookup time, all  LOOKUPs which reference the  same database
  14006.             should be grouped together.
  14007.  
  14008.             If no match  is found in  the lookup  database, a string  of
  14009.             asterisks is returned.
  14010.  
  14011.             To put  information into  another database,  use the  UPDATE
  14012.             statement.
  14013.  
  14014.  
  14015.   312  LOOKUP
  14016.   ----------------------------------------------------------------------
  14017.  
  14018.   EXAMPLES: LOOKUP(PRICES, F1, F1, F2)
  14019.  
  14020.             In this example,  PRICES refers to a database  called PRICES
  14021.             in the current data directory.  The first F1 refers to Field
  14022.             1 in the PRICES database, the second F1 refers to Field 1 in
  14023.             the current record in the current database and the F2 refers
  14024.             to Field 2 in  the PRICES database.  If F1  from the current
  14025.             record  contains "Lawn Mower", this example searches Field 1
  14026.             in the PRICES database for "Lawn  Mower".  Once the match is
  14027.             found,  it returns the value in Field 2.
  14028.  
  14029.             LOOKUP(C:\FE\DATA\PAYROLL, F1, >=Gross Pay, F2)
  14030.  
  14031.             Here  is an example of a payroll  lookup table.  The PAYROLL
  14032.             database contains  two fields  per record,  UPPER LIMIT  and
  14033.             TAX.  The records are filled with payroll tax table  bracket
  14034.             amounts and their corresponding tax.  For example:
  14035.  
  14036.                            UPPER LIMIT    TAX
  14037.                            -----------    ---
  14038.                                    200     10
  14039.                                    300     15
  14040.                                    400     21
  14041.                                    500     28
  14042.                                    600     33
  14043.  
  14044.  
  14045.  
  14046.             This example uses  the PAYROLL database which is  on Drive C
  14047.             in the subdirectory  \FE\DATA.  It searches the  UPPER LIMIT
  14048.             field for  a number  that is  greater than  or equal  to the
  14049.             Gross  Pay field  in the  current database  and returns  the
  14050.             amount from the  TAX field.  If  the Gross Pay was  390, the
  14051.             example would return 21.
  14052.  
  14053.   ALSO SEE: UPDATE
  14054.  
  14055.  
  14056.                                                       LOWER (LCASE)  313
  14057.   ----------------------------------------------------------------------
  14058.  
  14059.  
  14060.  
  14061.   PURPOSE:  The  LOWER function converts  all characters in  a string to
  14062.             lower case.
  14063.  
  14064.   SYNTAX:   lower(text_field)
  14065.  
  14066.             text_field = a character field or character string.
  14067.  
  14068.   TYPE:          Function, character
  14069.  
  14070.   USE IN:   Label Writer, Report Writer and Search and Replace
  14071.  
  14072.   COMMENTS: A field is  converted to all lower case  characters by using
  14073.             this function.  To convert data in an existing database, use
  14074.             the Search and Replace option.
  14075.  
  14076.             Only letters are affected.  Numbers and other characters are
  14077.             not changed.
  14078.  
  14079.   EXAMPLES: LOWER("Hello")
  14080.  
  14081.             This example produces "hello".
  14082.  
  14083.             LOWER("HELLO 2 YOU")
  14084.  
  14085.             This example produces "hello 2 you".
  14086.  
  14087.             LOWER(F1)
  14088.  
  14089.             This converts all letters in Field 1 to lower case.
  14090.  
  14091.   ALSO SEE: PROPER, UPPER
  14092.  
  14093.  
  14094.   314  LTRIM
  14095.   ----------------------------------------------------------------------
  14096.  
  14097.  
  14098.  
  14099.   PURPOSE:  The  LTRIM function  removes  leading  spaces  from  a  text
  14100.             string.
  14101.  
  14102.   SYNTAX:   ltrim(text_field)
  14103.  
  14104.             text_field = a character field or character string.
  14105.  
  14106.   TYPE:          Function, character
  14107.  
  14108.   USE IN:   Label Writer, Report Writer and Search and Replace
  14109.  
  14110.   COMMENTS: The LTRIM function removes all blank spaces up to the  first
  14111.             non-blank character from the  left side of  the string.   It
  14112.             does not remove blank  spaces from the  middle or the  right
  14113.             end.
  14114.  
  14115.   EXAMPLES: LTRIM("  Tom  ")
  14116.  
  14117.             This example produces "Tom   ".
  14118.  
  14119.             LTRIM("   BJ THOMAS   ")
  14120.  
  14121.             This example produces "BJ THOMAS   ".
  14122.  
  14123.             LTRIM("Tom Smith")
  14124.  
  14125.             This example produces "Tom Smith".  (In this  example, there
  14126.             is nothing for the function to do.)
  14127.  
  14128.   ALSO SEE: RTRIM, TRIM
  14129.  
  14130.  
  14131.                                                      Math Functions  315
  14132.   ----------------------------------------------------------------------
  14133.  
  14134.  
  14135.  
  14136.   PURPOSE:  To perform higher level math calculations.
  14137.  
  14138.   SYNTAX:   Math_Function(expression)
  14139.  
  14140.             expression = any numeric constant, result, or field.
  14141.  
  14142.   TYPE:          Function, numeric
  14143.  
  14144.   USE IN:   Any Formula
  14145.  
  14146.   COMMENTS: The following is a complete list of the functions which make
  14147.             up Math Functions:
  14148.  
  14149.                  ABS(expression)          Absolute Value
  14150.                  ATN(expression)     Arctangent
  14151.                  COS(expression)     Cosine
  14152.                  EXP(expression)     Exponent
  14153.                  INT(expression)          Integer
  14154.                  LOG(expression)     Natural Log
  14155.                  SIN(expression)          Sine
  14156.                  SQR(expression)     Square Root
  14157.                  TAN(expression)     Tangent
  14158.  
  14159.             For  information   on  general  math   operators,  see  Math
  14160.             Operators.
  14161.  
  14162.             For  complete information  on  the uses  and rules  of these
  14163.             functions, consult a math reference manual.
  14164.  
  14165.   EXAMPLES: INT(F1)
  14166.  
  14167.             This example takes  the integer of Field  1.  If Field  1 is
  14168.             10.53,  the result  is 10.   (Note:    the decimal  value is
  14169.             dropped, not rounded.)
  14170.  
  14171.             SQR(F1)
  14172.  
  14173.             If Field 1 contains a value of 144, the result is 12.
  14174.  
  14175.   ALSO SEE: Math Operators, ROUND, SUM, RANDOM, VALUE
  14176.  
  14177.  
  14178.   316  Math Operators
  14179.   ----------------------------------------------------------------------
  14180.  
  14181.  
  14182.  
  14183.  
  14184.   PURPOSE:  To perform basic math calculations on fields.
  14185.  
  14186.   SYNTAX:   number Math Operator number 
  14187.  
  14188.             number =  any numeric  field, numeric  function or  constant
  14189.             numeric value.
  14190.  
  14191.   TYPE:          Operator, character, numeric
  14192.  
  14193.   USE IN:   Any Formula
  14194.  
  14195.   COMMENTS: Operator  Alternate      Description       
  14196.             ________  _________      ___________       
  14197.                +      PLUS           Addition
  14198.                -      MINUS          Subtraction
  14199.                *      TIMES               Multiply
  14200.                /      DIVIDED BY          Divide
  14201.                ^      TO THE POWER OF     To the power of
  14202.                %      PERCENT        Percentage
  14203.                \      REMAINDER, MOD Remainder      
  14204.  
  14205.             NOTE: The symbol,  '+', is used for both  adding numbers and
  14206.             combining text.  File Express performs the correct operation
  14207.             according  to the type  of the  fields used.   If  the first
  14208.             field   is  numeric,    the  fields  are  numerically  added
  14209.             together.)
  14210.  
  14211.             File Express calculates  math according to the  normal rules
  14212.             of precedence.  The order of precedence is as follows:
  14213.  
  14214.             1. Lowest level of Parentheses  (If parentheses are  nested,
  14215.             expressions  inside the  parentheses are performed  in their
  14216.             normal order starting with the lowest level.)
  14217.             2. Math Functions
  14218.             3. Exponents
  14219.             4. Multiplication,  Division and Remainders  calculated from
  14220.             left to right.
  14221.             5. Addition and Subtraction calculated from left to right.
  14222.  
  14223.             To force  an expression  to  be calculated  in a  particular
  14224.             order, use parentheses.
  14225.  
  14226.  
  14227.                                                      Math Operators  317
  14228.   ----------------------------------------------------------------------
  14229.  
  14230.   EXAMPLES: F1 + 10
  14231.  
  14232.             If  Field 1 is numeric, this formula will add ten to it.  If
  14233.             it is a  character field, it will concatenate  "10" onto the
  14234.             end of F1.
  14235.  
  14236.             F1 - F2
  14237.  
  14238.             This example subtracts Field 2 from Field 1.
  14239.  
  14240.             ((F1 - F2) + F3 ) * F4
  14241.  
  14242.             Using  the normal  order of  math  precedence, this  formula
  14243.             first  subtracts Field 2 from Field 1,  then it adds Field 3
  14244.             and finishes by multiplying the result by Field 4.  
  14245.  
  14246.   ALSO SEE: Math Functions
  14247.  
  14248.  
  14249.   318  .MAX
  14250.   ----------------------------------------------------------------------
  14251.  
  14252.  
  14253.  
  14254.   PURPOSE:  The .MAX function returns the maximum numeric value found so
  14255.             far in a report.
  14256.  
  14257.   SYNTAX:   field.max
  14258.  
  14259.   TYPE:          Function, numeric
  14260.  
  14261.   USE IN:   Label Writer and Report Writer
  14262.  
  14263.   COMMENTS: The  .MAX function returns  the maximum numeric  value found
  14264.             for  the field specified in  the report.  (Character fields,
  14265.             unless  they  contain  numeric  information  or  begin  with
  14266.             numbers, equate to zeros.)
  14267.  
  14268.             For more examples, see the chapter titled "Report Writer". 
  14269.  
  14270.   EXAMPLES: F1.MAX
  14271.  
  14272.             This formula  returns the  maximum numeric  value found  for
  14273.             Field 1 so far in the report.
  14274.  
  14275.   ALSO SEE: .MIN, .SUBMAX and .SUBMIN
  14276.  
  14277.  
  14278.                                                                 MID  319
  14279.   ----------------------------------------------------------------------
  14280.  
  14281.  
  14282.       
  14283.   PURPOSE:  The MID function is used to extract a portion of a string.
  14284.  
  14285.   SYNTAX:   MID(text, starting_position[, length_of_string])
  14286.  
  14287.             text = character field, or string constant to extract from.
  14288.  
  14289.             starting_position =  character position to  begin extracting
  14290.             characters from.
  14291.  
  14292.             length_of_string = number of characters to extract.
  14293.  
  14294.   TYPE:          Function, character
  14295.  
  14296.   USE IN:   Any Formula
  14297.  
  14298.   COMMENTS: If  the length_of_string is  omitted,  File  Express returns
  14299.             all remaining characters in the string.
  14300.  
  14301.             This function can be  used any place  a character string  or
  14302.             field is required.
  14303.  
  14304.   EXAMPLES: MID(F1,5,3)
  14305.  
  14306.             If Field 1  contains "123456789", then this  formula returns
  14307.             "567".
  14308.  
  14309.             MID(F1,5)
  14310.  
  14311.             Using the previous example, this formula returns "56789".
  14312.  
  14313.             MID(F2,INSTR(F2," ")+1)
  14314.  
  14315.             If  Field 2  contains a first  and last name  separated by a
  14316.             space, this formula  returns all characters after  the first
  14317.             space.  Example:  If F2 is "John Smith", then  the result is
  14318.             "Smith".  (Also see the LEFT function.)
  14319.  
  14320.   ALSO SEE: LEFT, RIGHT and REPLACE
  14321.  
  14322.  
  14323.   320  MILTIME
  14324.   ----------------------------------------------------------------------
  14325.  
  14326.  
  14327.  
  14328.   PURPOSE:  The  MILTIME function returns  the current time  in military
  14329.             (or 24 hour) format.
  14330.  
  14331.   SYNTAX:   miltime
  14332.  
  14333.   TYPE:          Function, character
  14334.  
  14335.   USE IN:   Any formula
  14336.  
  14337.   COMMENTS: The MILTIME function  returns the current time as  stored in
  14338.             your computer.  To change  the current time, you must  be at
  14339.             the DOS  level and  use the  DOS TIME  function.  (For  more
  14340.             information, consult the  TIME function in your  DOS manual.
  14341.             Computers without a clock battery must be set every time the
  14342.             computer is rebooted.)
  14343.  
  14344.             Also see the TIME function for AM/PM time format.
  14345.  
  14346.   EXAMPLES: MILTIME
  14347.  
  14348.             This function  simply returns  the current  time in  24 hour
  14349.             format.   If this is a text formula  in a database, the time
  14350.             the record was last updated is stored here.
  14351.  
  14352.             If this function is used in a Report,  it prints the current
  14353.             time when the report is printed.
  14354.  
  14355.             MILTIME ADD ONLY
  14356.  
  14357.             By using the ADD ONLY  keywords, File Express calculates the
  14358.             field only  when initially  ADDING the record.   (It  is not
  14359.             updated when the record is edited, as in the first example.)
  14360.  
  14361.   ALSO SEE: TIME and TODAY
  14362.  
  14363.  
  14364.                                                                .MIN  321
  14365.   ----------------------------------------------------------------------
  14366.  
  14367.  
  14368.  
  14369.   PURPOSE:  The .MIN function returns the minimum numeric value found so
  14370.             far in a report.
  14371.  
  14372.   SYNTAX:   field.min
  14373.  
  14374.   TYPE:          Function, numeric
  14375.  
  14376.   USE IN:   Label Writer and Report Writer
  14377.  
  14378.   COMMENTS: The .MIN function returns the minimum numeric value found so
  14379.             far  for  the field  specified  in the  report.   (Character
  14380.             fields, unless  they contain  numeric  information or  begin
  14381.             with numbers, equate to zeros.)
  14382.  
  14383.             For more  examples of using  this function, see  the chapter
  14384.             titled Report Writer. 
  14385.  
  14386.   EXAMPLES: F1.MIN
  14387.  
  14388.             This formula  returns the  minimum numeric  value found  for
  14389.             Field 1 up to the time it is printed.
  14390.  
  14391.   ALSO SEE: .MAX, .SUBMAX and .SUBMIN
  14392.  
  14393.  
  14394.   322  MINUTES
  14395.   ----------------------------------------------------------------------
  14396.  
  14397.  
  14398.  
  14399.   PURPOSE:  The  MINUTES function  returns the  number  of minutes  from
  14400.             midnight to the time specified.
  14401.  
  14402.   SYNTAX:   minutes(time)
  14403.  
  14404.             time = any valid time in 24 hour format.
  14405.  
  14406.   TYPE:          Function, numeric
  14407.  
  14408.   USE IN:   Any Formula
  14409.  
  14410.   COMMENTS: The MINUTES function  returns the number of  minutes between
  14411.             midnight and the  time specified as the argument.   The time
  14412.             argument  can be  a quoted string  containing a  valid time,
  14413.             "14:05" or a field name or number containing a time.
  14414.  
  14415.  
  14416.   EXAMPLES: MINUTES(F1)
  14417.  
  14418.             If field one contains "5:37" this formula returns 337.
  14419.  
  14420.   ALSO SEE: TIMEDIFF
  14421.  
  14422.  
  14423.                                                 MONEY SIGN  ($, , )  323
  14424.   ----------------------------------------------------------------------
  14425.  
  14426.  
  14427.  
  14428.   PURPOSE:  The MONEY SIGN statement adds a floating monetary sign to  a
  14429.             number.
  14430.  
  14431.   SYNTAX:   field [with] money sign
  14432.  
  14433.             field = a numeric field or formula.
  14434.  
  14435.   TYPE:          Statement
  14436.  
  14437.   USE IN:   Report Writer
  14438.  
  14439.   COMMENTS: The MONEY  SIGN adds  a monetary  sign (as  selected in  the
  14440.             Setup program: $,  ,  ) to the beginning of a number.
  14441.  
  14442.             The $  or   or   symbol  may be used in place  of the "MONEY
  14443.             SIGN" statement.
  14444.  
  14445.   EXAMPLES: F5 WITH MONEY SIGN
  14446.  
  14447.             This example adds a monetary sign to the output  of Field 5.
  14448.             Example:   if it  originally had the  value "12.34"  and the
  14449.             current monetary sign is set to the British Pound sign,  the
  14450.             text printed is " 12.34".
  14451.  
  14452.             F5 WITH  
  14453.  
  14454.             This is the same to the previous example.
  14455.  
  14456.   ALSO SEE: DOLLAR SIGN
  14457.  
  14458.  
  14459.   324  MONTH
  14460.   ----------------------------------------------------------------------
  14461.  
  14462.  
  14463.  
  14464.   PURPOSE:  The MONTH  function  returns the  two  digit month  for  the
  14465.             current date or for the date specified.
  14466.  
  14467.   SYNTAX:   month[(date)]
  14468.  
  14469.             date =  any  valid  date  field  or  constant  date  in  the
  14470.             currently defined date format.
  14471.  
  14472.   TYPE:          Function, numeric
  14473.  
  14474.   USE IN:   Any Formula
  14475.  
  14476.   COMMENTS: If the  date  is omitted,  this function  returns the  month
  14477.             number from the  current system date.   (For information  on
  14478.             the current date, see the TODAY function.)
  14479.  
  14480.   EXAMPLES: MONTH
  14481.  
  14482.             If  the current  month is  December,  this function  returns
  14483.             "12".
  14484.  
  14485.             MONTH(F1)
  14486.  
  14487.             If "04-16-90" is the date in Field 1, this function  returns
  14488.             "04".
  14489.  
  14490.   ALSO SEE: DAY, DAYABBV, DAYNAME, FORMATDATE, MONTHABBV, MONTHNAME, and
  14491.             YEAR
  14492.  
  14493.  
  14494.                                                           MONTHNAME  325
  14495.   ----------------------------------------------------------------------
  14496.  
  14497.  
  14498.  
  14499.   PURPOSE:  The MONTHNAME function returns the spelled out month name.
  14500.  
  14501.   SYNTAX:   monthname[(date)]
  14502.  
  14503.             date =  any  valid  date  field  or  constant  date  in  the
  14504.             currently defined date format.
  14505.  
  14506.   TYPE:          Function, character
  14507.  
  14508.   USE IN:   Any Formula
  14509.  
  14510.   COMMENTS: If the date is omitted, this function returns the month name
  14511.             for the current date.  (For information on the current date,
  14512.             see the TODAY function.)
  14513.  
  14514.   EXAMPLES: MONTHNAME
  14515.  
  14516.             If the current month is APRIL, this formula returns "April".
  14517.  
  14518.             MONTHNAME(F1)
  14519.  
  14520.             If  Field  1  contains  "04-16-90",  this  function  returns
  14521.             "April".
  14522.  
  14523.             UPPER(MONTHNAME("04-16-90"))
  14524.  
  14525.             This example returns "APRIL".
  14526.  
  14527.             DAYNAME(F1) + "," & MONTHNAME(F1) & DAY(F1) + "," & YEAR(F1)
  14528.  
  14529.             If  Field  1  contains the  date  "04-16-90",  this function
  14530.             returns "Monday, April 16, 1990".
  14531.  
  14532.   ALSO SEE: DAY, DAYABBV, DAYNAME, FORMATDATE, MONTH, MONTHABBV and YEAR
  14533.  
  14534.  
  14535.   326  MONTHABBV
  14536.   ----------------------------------------------------------------------
  14537.  
  14538.  
  14539.  
  14540.   PURPOSE:  The MONTHABBV function returns the abbreviated month name.
  14541.  
  14542.   SYNTAX:   monthabbv[(date)]
  14543.  
  14544.             date =  any  valid  date  field  or  constant  date  in  the
  14545.             currently defined date format.
  14546.  
  14547.   TYPE:          Function, character
  14548.  
  14549.   USE IN:   Any Formula
  14550.  
  14551.   COMMENTS: If  the date  is omitted,  this function  returns the  month
  14552.             abbreviation for the current date.  (For  information on the
  14553.             current date, see the TODAY function.)
  14554.  
  14555.             The abbreviation returned  is the first three  characters of
  14556.             the month with the first character capitalized followed by a
  14557.             period.  (See examples.)
  14558.  
  14559.             To  convert  the characters  to  upper case,  use  the UPPER
  14560.             function. 
  14561.  
  14562.   EXAMPLES: MONTHABBV
  14563.  
  14564.             If the current month is APRIL, this function returns "Apr.".
  14565.  
  14566.             MONTHABBV(F1)
  14567.  
  14568.             If  Field  1  contains the  date  "04-16-90",  this function
  14569.             returns "Apr.".
  14570.  
  14571.             UPPER(DAYNAME("04-16-90"))
  14572.  
  14573.             This formula returns "APR.".
  14574.  
  14575.             DAYABBV(F1) + "," & MONTHABBV(F1) & DAY(F1) & YEAR(F1)
  14576.  
  14577.             If  Field  1  contains the  date  "04-16-90",  this function
  14578.             returns "Mon., Apr. 16 1990".
  14579.  
  14580.   ALSO SEE: DAY, DAYABBV, DAYNAME, FORMATDATE, MONTH, MONTHNAME and YEAR
  14581.  
  14582.  
  14583.                                                            .NBCOUNT  327
  14584.   ----------------------------------------------------------------------
  14585.  
  14586.  
  14587.  
  14588.   PURPOSE:  The .NBCOUNT function  counts the number of  records printed
  14589.             so far in  a report that are  not blank.  (This  function is
  14590.             read as "Non Blanks Count".)
  14591.  
  14592.   SYNTAX:   field.nbcount
  14593.  
  14594.   TYPE:          Function, numeric
  14595.  
  14596.   USE IN:   Report Writer
  14597.  
  14598.   COMMENTS: The .NBCOUNT function  counts the number of  records printed
  14599.             where the field specified  is not empty.   (The contents  of
  14600.             the field being counted  does not make  a difference on  the
  14601.             count   (i.e.    numeric  fields  and character  fields  are
  14602.             counted the same- each as one.)
  14603.  
  14604.             This  function returns  the same  number  regardless of  the
  14605.             section of  the Report it is  used in (i.e. the  same values
  14606.             are  returned  if used  in  the  Detail,  Total or  Subtotal
  14607.             Section.)   For a  running count, use  this function  in the
  14608.             Detail Section.
  14609.  
  14610.             Also see the chapter titled Report Writer for more examples.
  14611.  
  14612.   EXAMPLES: F1.NBCOUNT
  14613.  
  14614.             If this formula is  used in the Detail Section  of a Report,
  14615.             it  returns the running  count of the  records printed where
  14616.             Field 1 is not  blank. If this formula is used  in the Total
  14617.             Section, it  returns the total  count of records  printed on
  14618.             the entire report where Field 1 is not blank.
  14619.  
  14620.   ALSO SEE: .COUNT, .NBSUBCOUNT and .SUBCOUNT 
  14621.  
  14622.  
  14623.   328  .NBSUBCOUNT
  14624.   ----------------------------------------------------------------------
  14625.  
  14626.  
  14627.  
  14628.   PURPOSE:  The  .NBSUBCOUNT  function  counts  the  number  of  records
  14629.             printed in the current subtotal group ignoring blank fields.
  14630.             (This function is read as "Non Blank Subtotal Count".)
  14631.  
  14632.   SYNTAX:   field.nbsubcount
  14633.  
  14634.   TYPE:          Function, numeric
  14635.  
  14636.   USE IN:   Report Writer
  14637.  
  14638.   COMMENTS: The NBSUBCOUNT  function returns  the count  of the  records
  14639.             from the current  subtotal level where the  field referenced
  14640.             is not blank.
  14641.  
  14642.             The  actual field  contents do  not  have an  affect on  the
  14643.             count.   (i.e.  character  fields are  counted  the same  as
  14644.             numeric fields- each as one.)
  14645.  
  14646.             If .NBSUBCOUNT is used in the Detail or Subtotal 1  section,
  14647.             level 1  non-blank counts  are generated.   If  used in  the
  14648.             Subtotal  2 section, level 2 non-blank counts are generated.
  14649.             If used in the Subtotal 3 section, level 3 non-blank  counts
  14650.             are generated.
  14651.  
  14652.             For more examples, see the chapter titled Report Writer. 
  14653.  
  14654.   EXAMPLES: F1.NBSUBCOUNT
  14655.  
  14656.             This formula counts all records where Field 1 is not  blank.
  14657.             If this formula is  used in the Detail Section of  a Report,
  14658.             it returns a running count of each subtotal group.
  14659.  
  14660.   ALSO SEE: .COUNT, .NBSUBCOUNT and .NBSUBCOUNT
  14661.  
  14662.  
  14663.                                                             NEWPAGE  329
  14664.   ----------------------------------------------------------------------
  14665.  
  14666.  
  14667.  
  14668.  
  14669.   PURPOSE:  The NEWPAGE statement forces a new page.
  14670.  
  14671.   SYNTAX:   newpage
  14672.  
  14673.   TYPE:          Statement
  14674.  
  14675.   USE IN:   Report Writer
  14676.  
  14677.   COMMENTS: By using the NEWPAGE in an IF/THEN formula, you can  control
  14678.             when File Express begins a new page.  
  14679.  
  14680.             If  a line  contains a  formula  that results  in a  NEWPAGE
  14681.             keyword,  File Express  moves to the  next page,  prints the
  14682.             Title and  Header, if any,  and then continues  printing the
  14683.             report.
  14684.  
  14685.   EXAMPLES: NEWPAGE
  14686.  
  14687.             Used by itself in a formula, File Express begins  a new page
  14688.             every time it is encountered.  By using this formula on  the
  14689.             last line  of the Detail section  of a report,  you can have
  14690.             each record print in its own page.
  14691.  
  14692.             IF F1 <> F1.PREV THEN NEWPAGE ELSE NOPRINT
  14693.  
  14694.             This  formula, placed on a line by itself, only prints a new
  14695.             page every  time the  information in  Field 1  changes.   If
  14696.             Field  1  does not  change,  then the  NOPRINT  will prevent
  14697.             anything from printing.   (If the NOPRINT  is not used,  you
  14698.             will have a blank space print if the field does not change.)
  14699.  
  14700.  
  14701.   ALSO SEE: NONE
  14702.  
  14703.  
  14704.   330  NO COMMAS
  14705.   ----------------------------------------------------------------------
  14706.  
  14707.  
  14708.    
  14709.   PURPOSE:  The NO COMMAS statement prints numbers without commas.
  14710.  
  14711.   SYNTAX:   field [with] no commas
  14712.  
  14713.             field = a numeric field
  14714.  
  14715.   TYPE:          Statement
  14716.  
  14717.   USE IN:   Report Writer
  14718.  
  14719.   COMMENTS: The default  setting for  File Express  is to insert  commas
  14720.             when  printing  large  numeric fields.    However,  for some
  14721.             numbers (such as  an invoice number or zip code),  it is not
  14722.             appropriate to  have the commas inserted.   Use this keyword
  14723.             to avoid the commas.
  14724.  
  14725.             Remember,   File  Express  can  insert  the  commas  in  the
  14726.             appropriate  places  when  printing, but  commas  cannot  be
  14727.             included when entering the  numbers.  It must be left  up to
  14728.             File Express.
  14729.  
  14730.             The default setting may be changed using the Setup program.
  14731.  
  14732.   EXAMPLES: F5 WITH NO COMMAS
  14733.  
  14734.             This example prints Field 5 without commas inserted into the
  14735.             number.   If Field  5 is  a  numeric field  and contains  an
  14736.             invoice  number of "122590123", this formula will prevent it
  14737.             from printing as "122,590,123". 
  14738.  
  14739.   ALSO SEE: NO COMMAS
  14740.  
  14741.  
  14742.                                                          NOLINEFEED  331
  14743.   ----------------------------------------------------------------------
  14744.  
  14745.  
  14746.  
  14747.   PURPOSE:  The NOLINEFEED statement  is used to prevent the  paper from
  14748.             being advanced on a line printer after a line is printed.
  14749.  
  14750.   SYNTAX:   nolinefeed
  14751.  
  14752.   TYPE:          Statement
  14753.  
  14754.   USE IN:   Label Writer and Report Writer
  14755.  
  14756.   COMMENTS: The NOLINEFEED statement  causes the next line  to overprint
  14757.             the current line.
  14758.  
  14759.             The statement is generally used to underline or double print
  14760.             portions  of a report.   By not advancing  the paper after a
  14761.             line   is  printed,  bold   type  and  underlining   can  be
  14762.             accomplished.   (See examples.)     Not all  printer support
  14763.             this option.
  14764.  
  14765.             This statement affects  the entire line regardless  of where
  14766.             it physically occurs on the line.
  14767.  
  14768.   EXAMPLES: Line #1: "HELLO"      NOLINEFEED
  14769.             Line #2: "HELLO"
  14770.  
  14771.             By placing  "HELLO" in  the same  column on  two consecutive
  14772.             lines, the NOLINEFEED  keyword causes "HELLO" to  be printed
  14773.             twice on the  printout, making it darker.   (Note: the text,
  14774.             "HELLO",  and the NOLINEFEED formula are two separate items,
  14775.             they are not combined into one formula.)
  14776.  
  14777.             Line #1: "HELLO Dave"      NOLINEFEED
  14778.             Line #2: "      ____"
  14779.  
  14780.             This example underlines just the word Dave.
  14781.  
  14782.   ALSO SEE: NOPRINT
  14783.  
  14784.  
  14785.   332  NOPRINT
  14786.   ----------------------------------------------------------------------
  14787.  
  14788.  
  14789.  
  14790.   PURPOSE:  The NOPRINT statement is used to stop a line from printing.
  14791.  
  14792.   SYNTAX:   noprint
  14793.  
  14794.   TYPE:          Statement
  14795.  
  14796.   USE IN:   Label Writer and Report Writer
  14797.  
  14798.   COMMENTS: The NOPRINT statement  prevents the current line  from being
  14799.             printed.  This keyword affects the entire line regardless of
  14800.             where it physically occurs on the line.
  14801.  
  14802.             By using  NOPRINT  in a  formula,  duplicate values  can  be
  14803.             eliminated from printouts.  See examples.
  14804.  
  14805.  
  14806.   EXAMPLES: IF F1 <> F1.PREV THEN F1 ELSE NOPRINT
  14807.  
  14808.             This formula compares the values of the current Field 1 with
  14809.             the values from  Field 1 of  the previously printed  record.
  14810.             If they are different,  the field is  printed.  If they  are
  14811.             the same, the entire line  is not printed.  If Field 1  is a
  14812.             last name field, the report prints only the first occurrence
  14813.             of each last name.
  14814.  
  14815.             IF F1 <> F1.PREV THEN NEWPAGE ELSE NOPRINT
  14816.  
  14817.             This formula moves  to a new page each time Field 1 changes.
  14818.             If Field 1 does not change, nothing is printed.
  14819.  
  14820.   ALSO SEE: NOLINEFEED
  14821.  
  14822.  
  14823.                                                            NO ZEROS  333
  14824.   ----------------------------------------------------------------------
  14825.  
  14826.  
  14827.    
  14828.   PURPOSE:  The NO ZEROS  statement forces File Express to  print blanks
  14829.             instead of zeros when printing numeric fields.
  14830.  
  14831.   SYNTAX:   numeric_field [with] no zeros
  14832.  
  14833.             numeric_field = a numeric field or formula.
  14834.  
  14835.   TYPE:          Statement
  14836.  
  14837.   USE IN:   Report Writer
  14838.  
  14839.   COMMENTS: This is the default  for File Express.   If the default  has
  14840.             been changed in the Setup program, then this keyword may  be
  14841.             used to print blanks on an individual field basis.
  14842.  
  14843.   EXAMPLES: F5 WITH NO ZEROS
  14844.  
  14845.             If Field 5  has a value of zero, this  formula prints blanks
  14846.             instead.
  14847.  
  14848.   ALSO SEE: ZEROS
  14849.  
  14850.  
  14851.   334  Operators, Math
  14852.   ----------------------------------------------------------------------
  14853.  
  14854.  
  14855.  
  14856.   PURPOSE:  To perform basic math calculations on fields.
  14857.  
  14858.   SYNTAX:   number Math Operator number 
  14859.  
  14860.             number =  any numeric  field, numeric  function or  constant
  14861.             numeric value.
  14862.  
  14863.   TYPE:          Operator, character, numeric
  14864.  
  14865.   USE IN:   Any Formula
  14866.  
  14867.   COMMENTS: Operator  Alternate      Description       
  14868.             ________  _________      ___________       
  14869.                +      PLUS           Addition
  14870.                -      MINUS          Subtraction
  14871.                *      TIMES               Multiply
  14872.                /      DIVIDED BY          Divide
  14873.                ^      TO THE POWER OF     To the power of
  14874.                %      PERCENT        Percentage
  14875.                \      REMAINDER, MOD Remainder      
  14876.  
  14877.  
  14878.             NOTE: The symbol,  '+', is used for both  adding numbers and
  14879.             combining text.  File Express performs the correct operation
  14880.             according  to the type  of the  fields used.   If  the first
  14881.             field   is  numeric,    the  fields  are  numerically  added
  14882.             together.)
  14883.  
  14884.             File Express calculates  math according to the  normal rules
  14885.             of precedence.  The order of precedence is as follows:
  14886.  
  14887.             1. Lowest level of Parentheses  (If parentheses are  nested,
  14888.             expressions  inside the  parentheses are performed  in their
  14889.             normal order starting with the lowest level.)
  14890.             2. Math Functions
  14891.             3. Exponents
  14892.             4. Multiplication,  Division and Remainders  calculated from
  14893.             left to right.
  14894.             5. Addition and Subtraction calculated from left to right.
  14895.  
  14896.             To force  an expression  to  be calculated  in a  particular
  14897.             order, use parentheses.
  14898.  
  14899.  
  14900.                                                     Operators, Math  335
  14901.   ----------------------------------------------------------------------
  14902.  
  14903.   EXAMPLES: F1 + 10
  14904.  
  14905.             If  Field 1 is numeric, this formula will add ten to it.  If
  14906.             it is a  character field, it will concatenate  "10" onto the
  14907.             end of F1.
  14908.  
  14909.             F1 - F2
  14910.  
  14911.             This example subtracts Field 2 from Field 1.
  14912.  
  14913.             ((F1 - F2) + F3 ) * F4
  14914.  
  14915.             Using  the normal  order of  math  precedence, this  formula
  14916.             first  subtracts Field 2 from Field 1,  then it adds Field 3
  14917.             and finishes by multiplying the result by Field 4.  
  14918.  
  14919.   ALSO SEE: Math Functions
  14920.  
  14921.  
  14922.   336  OR
  14923.   ----------------------------------------------------------------------
  14924.  
  14925.  
  14926.  
  14927.   PURPOSE:  The  OR operator requires  that only one  comparison be true
  14928.             for the statement to be considered true.
  14929.  
  14930.   SYNTAX:   comparison OR comparison [OR comparison ...]
  14931.  
  14932.             comparison = any valid comparison statement.
  14933.  
  14934.   TYPE:          Logical Operator
  14935.  
  14936.   USE IN:   Any Formula
  14937.  
  14938.   COMMENTS: The OR operator tells File Express that only one of  several
  14939.             comparisons must  be  true for  the whole  comparison to  be
  14940.             considered true.
  14941.  
  14942.             For  more detailed explanations  on making formulas  see the
  14943.             chapter titled "Finding Records".
  14944.  
  14945.             For more examples, see the "AND" keyword.
  14946.  
  14947.   EXAMPLES: Select all records where: F8 = "92307" OR F8 = "92308"
  14948.  
  14949.             This example selects  all records where Field 8  (a zip code
  14950.             field) is either equal to 92307 or 92308.  Since the city of
  14951.             Apple Valley has two zip codes, we must  use the OR keyword.
  14952.             If we had used  AND, we would have been saying  that Field 8
  14953.             had to  be equal to  both 92307 and  92308 at the  same time
  14954.             (which, of course, it cannot be).
  14955.  
  14956.             Select  all records where: F7  = "WA" OR  F7 = "OR"  OR F7 =
  14957.             "CA"
  14958.  
  14959.             If Field 7 contains a state abbreviation, this formula finds
  14960.             all records where the state is equal to Washington or Oregon
  14961.             or California.   (Also note  that the  abbreviation for  the
  14962.             state of  Oregon  is the  same  as the  keyword.   For  this
  14963.             reason, the quotation marks around the OR are required.)
  14964.  
  14965.             Select all records where: F1 BEFORE "01-01-90" OR F7 = "Y"
  14966.  
  14967.             This example finds all records where the date is before "01-
  14968.             01-90" or where Field 7 is equal to "Y"
  14969.  
  14970.   ALSO SEE: AND
  14971.  
  14972.  
  14973.                                                                PAGE  337
  14974.   ----------------------------------------------------------------------
  14975.  
  14976.  
  14977.  
  14978.   PURPOSE:  The PAGE function returns the current page number.
  14979.  
  14980.   SYNTAX:   page
  14981.  
  14982.   TYPE:          Function, numeric
  14983.  
  14984.   USE IN:   Label Writer and Report Writer
  14985.  
  14986.   COMMENTS: The PAGE keyword is used to print the current page number on
  14987.             a report.
  14988.  
  14989.   EXAMPLES: PAGE
  14990.  
  14991.             This formula prints the current page number.
  14992.  
  14993.             "Page #" & PAGE
  14994.  
  14995.             This  formula prints  the  text, "Page  #", followed  by the
  14996.             current page number.
  14997.  
  14998.   ALSO SEE: NONE
  14999.  
  15000.  
  15001.   338  PARENTHESES (PARENS)
  15002.   ----------------------------------------------------------------------
  15003.  
  15004.  
  15005.    
  15006.   PURPOSE:  The PARENTHESES keyword prints parentheses around a negative
  15007.             number.
  15008.  
  15009.   SYNTAX:   field [with] parentheses
  15010.  
  15011.             field = a numeric field or formula.
  15012.  
  15013.   TYPE:          Statement
  15014.  
  15015.   USE IN:   Report Writer
  15016.  
  15017.   COMMENTS: The  PARENTHESES  keyword  places  parentheses  around   any
  15018.             negative number.
  15019.  
  15020.             To change the default bracket type, use the Setup program to
  15021.             change the default settings.
  15022.  
  15023.             When this  keyword is used,  positive numbers have  an extra
  15024.             space at  the end  to insure a  proper lineup  with negative
  15025.             numbers.  (See example.)
  15026.  
  15027.   EXAMPLES: F5 WITH PARENTHESES
  15028.  
  15029.             If  the  value in  Field  5  is  -43.21, then  this  keyword
  15030.             produces (43.21).   Here  are examples  showing the  line-up
  15031.             using this keyword:
  15032.  
  15033.                    "123.45"       "123.45 "
  15034.                   "-999.99"      "(999.99)"
  15035.                     "-1.23"        "(1.23)"
  15036.                  "9,876.54"     "9,876.54 "
  15037.  
  15038.             The  quotation marks  are used  here only to  illustrate the
  15039.             lineup and extra  space positive numbers require  when using
  15040.             the  PARENTHESES keyword.   The  quotation  marks themselves
  15041.             will not print.
  15042.  
  15043.   ALSO SEE: NONE
  15044.  
  15045.  
  15046.                                                               .PREV  339
  15047.   ----------------------------------------------------------------------
  15048.  
  15049.  
  15050.  
  15051.   PURPOSE:  The .PREV function is  used to access a field value from the
  15052.             previously printed record.
  15053.  
  15054.   SYNTAX:   field.prev
  15055.  
  15056.             field = field number or field name.
  15057.  
  15058.   TYPE:          Function, character, numeric
  15059.  
  15060.   USE IN:   Report Writer
  15061.  
  15062.   COMMENTS: The .PREV keyword returns the  value for the specified field
  15063.             from the previous record printed, not the previous record in
  15064.             the database.
  15065.  
  15066.             This function works only in the Report Writer option of File
  15067.             Express.
  15068.  
  15069.             By accessing the  value from the previous  record, duplicate
  15070.             records can be checked.
  15071.  
  15072.   EXAMPLES: F1.PREV
  15073.  
  15074.             This  formula   returns  the  value  of  Field  1  from  the
  15075.             previously printed record.  This value can then be used in a
  15076.             comparison formula  (as in  the next example)  or used  in a
  15077.             mathematical formula.
  15078.  
  15079.             IF F1 <> F1.PREV THEN F1 ELSE NOPRINT
  15080.  
  15081.             This formula  compares the  value for  the current  records'
  15082.             Field  1 with the  previous records' Field  1.  If  they are
  15083.             equal, then  the line is suppressed.  If they are not equal,
  15084.             then the new Field 1 is printed.
  15085.  
  15086.   ALSO SEE: NONE
  15087.  
  15088.  
  15089.   340  PROPER
  15090.   ----------------------------------------------------------------------
  15091.  
  15092.  
  15093.  
  15094.   PURPOSE:  The PROPER  function converts  the first  character of  each
  15095.             word to upper case and all other characters to lower case.
  15096.  
  15097.   SYNTAX:   proper(text)
  15098.  
  15099.             text = a character field or character string.
  15100.  
  15101.   TYPE:          Function, character
  15102.  
  15103.   USE IN:   Label Writer, Report Writer and Search and Replace
  15104.  
  15105.   COMMENTS: This   function  converts   the  first  character   and  any
  15106.             characters  following  a non  alphabetic character  to upper
  15107.             case.   If two  characters are next  to each  other, such as
  15108.             initials, only  the first  character is  converted to  upper
  15109.             case.  To avoid this, use periods to separate the letters.
  15110.  
  15111.   EXAMPLES: PROPER("TOM JONES")
  15112.  
  15113.             This example produces "Tom Jones".
  15114.  
  15115.             PROPER("BJ THOMAS")
  15116.  
  15117.             This example produces "Bj Thomas".
  15118.  
  15119.             PROPER("B.J. THOMAS")
  15120.  
  15121.             This example produces "B.J. Thomas".
  15122.  
  15123.   ALSO SEE: LOWER and UPPER
  15124.  
  15125.  
  15126.                                                              RANDOM  341
  15127.   ----------------------------------------------------------------------
  15128.  
  15129.  
  15130.  
  15131.   PURPOSE:  The RANDOM function generates a random number.
  15132.  
  15133.   SYNTAX:   random
  15134.  
  15135.   TYPE:          Function, numeric
  15136.  
  15137.   USE IN:   Any Formula
  15138.  
  15139.   COMMENTS: The RANDOM function is useful if random record  selection is
  15140.             needed. 
  15141.  
  15142.             The RANDOM function returns a random number between zero and
  15143.             one.   (See  examples on  how  to generate  a random  number
  15144.             between one and any number.)
  15145.  
  15146.             To print records in  a random order: 1) Add  a formula field
  15147.             to your database format containing the  formula: RANDOM.  2)
  15148.             Use  the   Recalculate  Entire  Database  option   from  the
  15149.             Maintenance Menu to generate the random numbers.  3)  Create
  15150.             an  index with this new formula  field as the sort field and
  15151.             rebuild it.  When  you print, the  records are printed in  a
  15152.             random   order.    To   re-randomize  the   records,  simply
  15153.             recalculate the database and sort again.
  15154.  
  15155.   EXAMPLES: RANDOM
  15156.  
  15157.             Used by itself, the RANDOM function returns a number between
  15158.             zero and one.  (Such as 0.43632.)  
  15159.  
  15160.             Select all records where: F0 = (RANDOM * 100) + 1
  15161.  
  15162.             This formula randomly  selects records with a  record number
  15163.             between 1 and  100.  (NOTE: the parentheses  are not needed,
  15164.             but they help to make the formula easier to read.)
  15165.  
  15166.   ALSO SEE: NONE
  15167.  
  15168.  
  15169.   342  RECORD NUMBER (F0)
  15170.   ----------------------------------------------------------------------
  15171.  
  15172.  
  15173.  
  15174.   PURPOSE:  The keyword RECORD NUMBER may be used to access the  "Record
  15175.             Number" as assigned by File Express.
  15176.  
  15177.   SYNTAX:   record number or F0
  15178.  
  15179.   TYPE:          Function, numeric
  15180.  
  15181.   USE IN:   Any Formula
  15182.  
  15183.   COMMENTS: Because the record number  is stored at  the beginning of  a
  15184.             record, it may  also be referred  to as Field  0 (F0, as  in
  15185.             zero).
  15186.  
  15187.             It is  important to  remember  that the  record numbers  can
  15188.             change by cloning.  For that reason, it is recommended  that
  15189.             you do NOT rely on the record number.  
  15190.  
  15191.   EXAMPLES: Select all records where: RECORD NUMBER > 1000
  15192.  
  15193.             This example selects  all records where the record number is
  15194.             greater than 1000. 
  15195.  
  15196.             Select all records where: F0 > 1000
  15197.  
  15198.             This  example  produces  the same  results  as  the previous
  15199.             example but with less typing.
  15200.  
  15201.   ALSO SEE: NONE
  15202.  
  15203.  
  15204.                                                              REPEAT  343
  15205.   ----------------------------------------------------------------------
  15206.  
  15207.  
  15208.  
  15209.   PURPOSE:  The REPEAT function repeats a character.
  15210.  
  15211.   SYNTAX:   repeat(number, text)
  15212.  
  15213.             number = the number of times to repeat. 
  15214.  
  15215.             text = the character or string to repeat.
  15216.  
  15217.   TYPE:          Function, character
  15218.  
  15219.   USE IN:   Label Writer and Report Writer
  15220.  
  15221.   COMMENTS: The REPEAT function  is handy for creating  simple graphical
  15222.             output when a "picture" is more practical than numbers.
  15223.  
  15224.             The text to repeat may either be the ASCII value used in the
  15225.             CHR function,  a constant  character or  string enclosed  in
  15226.             quotes, or a field which contains a character or string.
  15227.  
  15228.             For serious  graphing requirements,  use ExpressGraph,  also
  15229.             from Expressware.  Data from File Express can be transferred
  15230.             to  ExpressGraph.  Call  Expressware for current information
  15231.             on ExpressGraph.
  15232.  
  15233.   EXAMPLES: REPEAT(F5,"$")
  15234.  
  15235.             If  Field  5 contains  numbers representing  dollar amounts,
  15236.             this formula can  be used to produce a simple bar graph with
  15237.             the dollar sign.  If Field 5 contains the number 6, then the
  15238.             output would be "$$$$$$".
  15239.  
  15240.             REPEAT(5,"----*")
  15241.  
  15242.             This example returns "----*----*----*----*----*".
  15243.  
  15244.             F4 + REPEAT(15-LEN(F1),".")
  15245.  
  15246.             This example prints  Field 4 followed  by enough periods  to
  15247.             fill a fifteen character space.  Example:    "123 Main  St .
  15248.             . . .Seattle" 
  15249.                                 or   "Box 1800. . . . . . .Duvall". 
  15250.  
  15251.   ALSO SEE: GRAPH and SPACE
  15252.  
  15253.  
  15254.   344  REPLACE
  15255.   ----------------------------------------------------------------------
  15256.  
  15257.  
  15258.  
  15259.   PURPOSE:  The REPLACE function  is used to replace a  text string with
  15260.             another text string.
  15261.  
  15262.   SYNTAX:   replace(field, search_for, replace_with[ ,times_to_replace])
  15263.  
  15264.             field = the field to search and replace.
  15265.  
  15266.             search_for = constant  text or a  character field to  search
  15267.             for.  Be sure to put quotes around constant text.
  15268.  
  15269.             replace_with = constant text or a character field to replace
  15270.             with.  Be sure to put quotes around constant text.
  15271.  
  15272.             times_to_replace  =  the   number  of  times  to   look  for
  15273.             search_for.  If this parameter is not included, File Express
  15274.             makes a maximum of one replacement.
  15275.  
  15276.   TYPE:          Function, character
  15277.  
  15278.   USE IN:   Search and Replace
  15279.  
  15280.   COMMENTS: The fourth  parameter, if  used, instructs  File Express  to
  15281.             replace  that number of  occurrences of the  search_for text
  15282.             within the  specified field.   If this  option is  not used,
  15283.             only the  first occurrence  is replaced.   To  replace every
  15284.             occurrence of a text  string, use a  large number like  999.
  15285.             File Express stops after the last replacement automatically.
  15286.  
  15287.             The text  is replaced  exactly as  specified.  If  uppercase
  15288.             characters  are   used,  they  are  replaced   as  uppercase
  15289.             characters.
  15290.  
  15291.             If the search_for text is not found, no replacement is made.
  15292.  
  15293.   EXAMPLES: REPLACE(F5,"MONDAY","TUESDAY")
  15294.  
  15295.             This  example  replaces  the first  occurrence  of  the word
  15296.             "MONDAY" with "TUESDAY" in Field 5.
  15297.  
  15298.             REPLACE(F5,"T","-",2)
  15299.  
  15300.             If Field 5  contains "Statement", then this  formula returns
  15301.             "S-a-ement".
  15302.  
  15303.  
  15304.   ALSO SEE: LEFT, MID and RIGHT
  15305.  
  15306.  
  15307.                                                               RIGHT  345
  15308.   ----------------------------------------------------------------------
  15309.  
  15310.  
  15311.  
  15312.   PURPOSE:  The RIGHT function is used to extract the right-most portion
  15313.             of a text string.
  15314.  
  15315.   SYNTAX:   right(text_field, number_of_characters)
  15316.  
  15317.             text_field  = the  character  field or  string  you want  to
  15318.             extract characters from.
  15319.  
  15320.             number_of_characters = the number  of characters to extract,
  15321.             from the right side of the field.
  15322.  
  15323.   TYPE:          Function, character
  15324.  
  15325.   USE IN:   Any Formula
  15326.  
  15327.   COMMENTS: This  function may be used  any place that  a text string is
  15328.             required.
  15329.  
  15330.   EXAMPLES: RIGHT(F2,4)
  15331.  
  15332.             If Field  2 contains  the company  name "Expressware",  this
  15333.             function returns the string "ware".
  15334.  
  15335.   ALSO SEE: LEFT, MID and REPLACE
  15336.  
  15337.  
  15338.   346  RIGHT JUSTIFIED (RJ)
  15339.   ----------------------------------------------------------------------
  15340.  
  15341.  
  15342.  
  15343.   PURPOSE:  The RIGHT JUSTIFIED keyword is used to right justify a field
  15344.             when printing.
  15345.  
  15346.   SYNTAX:   field right justified
  15347.  
  15348.             field = any field or constant text.
  15349.  
  15350.   TYPE:          Statement
  15351.  
  15352.   USE IN:   Label Writer and Report Writer
  15353.  
  15354.   COMMENTS: The field or text is right justified to the field's  defined
  15355.             length.
  15356.  
  15357.             Character  fields are normally left justified.  This default
  15358.             may be overridden by using the RIGHT JUSTIFIED keyword.
  15359.  
  15360.             To  right justify  text  within a  database,  see the  RJUST
  15361.             function.
  15362.  
  15363.   EXAMPLES: F1 RIGHT JUSTIFIED
  15364.  
  15365.             This  example right  justifies Field 1  within   the defined
  15366.             length of Field 1.
  15367.  
  15368.             F1 RJ
  15369.  
  15370.             This is exactly the same as the previous example.
  15371.  
  15372.             F1 & F2 RJ
  15373.  
  15374.             This example  combines Field  1 and Field  2 with  one space
  15375.             between them  and then right justifies the result within the
  15376.             combined length of both fields.
  15377.  
  15378.   ALSO SEE: CENTER, CENTERED, LEFT JUSTIFIED, LJUST and RJUST
  15379.  
  15380.  
  15381.                                                               RJUST  347
  15382.   ----------------------------------------------------------------------
  15383.  
  15384.  
  15385.  
  15386.   PURPOSE:  The RJUST function right justifies text within a field.
  15387.  
  15388.   SYNTAX:   rjust(field[, width])
  15389.  
  15390.             field = the field or character string to right justified.
  15391.  
  15392.             width  (optional)  =  the number  of  characters  to justify
  15393.             within.
  15394.  
  15395.   TYPE:          Function, character
  15396.  
  15397.   USE IN:   Label Writer, Report Writer and Search and Replace
  15398.  
  15399.   COMMENTS: If the width is omitted, the text is  right justified to the
  15400.             fields' defined length.  
  15401.  
  15402.             Since  character  fields  are stored  in  the  database left
  15403.             justified,  this function is commonly used when printing.
  15404.  
  15405.   EXAMPLES: RJUST("Hello",30)
  15406.  
  15407.             This example right justifies the word "Hello" to a width  of
  15408.             thirty spaces.  (Example: "                          Hello")
  15409.  
  15410.             RJUST(F1)
  15411.  
  15412.             This example right justifies Field 1 to the  fields' defined
  15413.             width.
  15414.  
  15415.   ALSO SEE: CENTER, CENTERED, LJUST, LEFT JUSTIFIED, and RIGHT JUSTIFIED
  15416.  
  15417.  
  15418.   348  ROUND
  15419.   ----------------------------------------------------------------------
  15420.  
  15421.  
  15422.  
  15423.   PURPOSE:  The ROUND function is  used to round off  a number to  fewer
  15424.             decimal places.
  15425.  
  15426.   SYNTAX:   round(field, decimal_places)
  15427.  
  15428.             field = any numeric field or result.
  15429.  
  15430.             decimal_places  = a numeric field or constant reflecting the
  15431.             number of decimal places to round to.
  15432.  
  15433.   TYPE:          Function, numeric
  15434.  
  15435.   USE IN:   Any Formula
  15436.  
  15437.   COMMENTS: The ROUND function  is used to reduce the  number of decimal
  15438.             places of a number.  This is commonly done after calculating
  15439.             dollar amounts to round tenths of a penny.
  15440.  
  15441.             When you  want to  drop the  decimal entirely,  use the  INT
  15442.             function.
  15443.  
  15444.             If a  number  is rounded  to  more decimal  places  than  it
  15445.             already has, there is no effect.
  15446.  
  15447.   EXAMPLES: ROUND(F10 * .081,2)
  15448.  
  15449.             This example  multiplies the contents  of Field  10 by  .081
  15450.             (the Seattle area's TAX rate) and returns the result to  the
  15451.             nearest penny.
  15452.  
  15453.   ALSO SEE: INT
  15454.  
  15455.  
  15456.                                                               RTRIM  349
  15457.   ----------------------------------------------------------------------
  15458.  
  15459.  
  15460.  
  15461.   PURPOSE:  The RTRIM function removes trailing blank spaces.
  15462.  
  15463.   SYNTAX:   rtrim(text)
  15464.  
  15465.             text = a character field or character string.
  15466.  
  15467.   TYPE:          Function, character
  15468.  
  15469.   USE IN:   Label Writer, Report Writer and Search and Replace
  15470.  
  15471.   COMMENTS: The RTRIM function  removes blank spaces after the last non-
  15472.             blank character.   It does  not remove blank  spaces between
  15473.             words in the text string.  (See examples.)
  15474.  
  15475.   EXAMPLES: RTRIM("Tom    ")
  15476.  
  15477.             This example produces "Tom".
  15478.  
  15479.             RTRIM("   BJ THOMAS   ")
  15480.  
  15481.             This example produces "   BJ THOMAS".
  15482.  
  15483.             RTRIM("Tom Smith")
  15484.  
  15485.             This example produces "Tom Smith".
  15486.  
  15487.   ALSO SEE: LTRIM, TRIM
  15488.  
  15489.  
  15490.   350  SOUNDS LIKE (SL)
  15491.   ----------------------------------------------------------------------
  15492.  
  15493.  
  15494.  
  15495.   PURPOSE:  The SOUNDS  LIKE comparitor  allows searches to  be made  by
  15496.             close matches instead of exact matches.
  15497.  
  15498.   SYNTAX:   field sounds like text
  15499.  
  15500.             field = any valid field.
  15501.  
  15502.             text = any valid field or text constant.
  15503.  
  15504.   TYPE:          Comparitor, character
  15505.  
  15506.   USE IN:   Record Selection
  15507.  
  15508.   COMMENTS: A SOUNDS LIKE  search is done by dividing  the alphabet into
  15509.             groups that  sound similar and  then assigning each  group a
  15510.             number.  The first  letter is taken  as is, figuring  people
  15511.             generally  use  the correct  first letter.   Words  are then
  15512.             converted to  numeric codes by  taking the group  number for
  15513.             each letter.  (Vowels and repeating consonants are ignored.)
  15514.             Words  that end  up with  the  same code  are considered  to
  15515.             "sound alike".
  15516.  
  15517.             Due to the nature of the SOUNDS LIKE comparitor (also  known
  15518.             as Soundex), some very unusual results can be returned. 
  15519.  
  15520.             File Express uses the  same phonetic grouping as  defined by
  15521.             the United States Standard Phonetic Alphabet. 
  15522.  
  15523.   EXAMPLES: Select all records where: F1 SOUNDS LIKE "SMITH"
  15524.  
  15525.             This  example finds matches such as "SMYTH", "SMTH", "SMIT",
  15526.             "SMITHE", ""SNITH" etc.
  15527.  
  15528.   ALSO SEE: NONE
  15529.  
  15530.  
  15531.                                                               SPACE  351
  15532.   ----------------------------------------------------------------------
  15533.  
  15534.  
  15535.  
  15536.   PURPOSE:  The SPACE function returns a given number of spaces.
  15537.  
  15538.   SYNTAX:   space(number)
  15539.  
  15540.             number = the number of spaces to be returned.
  15541.  
  15542.   TYPE:          Function, character
  15543.  
  15544.   USE IN:   Any Formula
  15545.  
  15546.   COMMENTS: The  SPACE  function is  basically  the same  as  the REPEAT
  15547.             function, except it repeats only the space character.
  15548.  
  15549.   EXAMPLES: SPACE(10)
  15550.  
  15551.             This example returns ten spaces.
  15552.  
  15553.             SPACE(30-LEN(F1))+F1
  15554.  
  15555.             This example  prints enough  spaces in front  of Field  1 to
  15556.             cause it to  line up with the  thirtieth character position.
  15557.             (Basically,   this  is  the  same  as  the  RIGHT  JUSTIFIED
  15558.             function.)
  15559.  
  15560.   ALSO SEE: GRAPH and REPEAT
  15561.  
  15562.  
  15563.   352  .SUBAVERAGE
  15564.   ----------------------------------------------------------------------
  15565.  
  15566.  
  15567.  
  15568.   PURPOSE:  The  .SUBAVERAGE function provides a numeric average for the
  15569.             current subtotal level.
  15570.  
  15571.   SYNTAX:   field.subaverage
  15572.  
  15573.             field = any numeric field.
  15574.  
  15575.   TYPE:          Function, numeric
  15576.  
  15577.   USE IN:   Report Writer
  15578.  
  15579.   COMMENTS: The  .SUBAVERAGE function divides the subtotal for the field
  15580.             by  the number  of records  in  the subtotal  group.   Blank
  15581.             fields in the records are counted.
  15582.  
  15583.             If  you  want  to  exclude blank  fields  from  the  Average
  15584.             calculation, use field.SUBTOTAL / field.NBSUBCOUNT.
  15585.  
  15586.             For more examples, see the chapter titled "Report Writer".
  15587.  
  15588.   EXAMPLES: F1.SUBAVERAGE
  15589.  
  15590.             If  this formula is used in the  Detail Section of a Report,
  15591.             it returns a  running average for Field 1.   If this formula
  15592.             is  used in  the  Subtotal Section,  it  returns the  ending
  15593.             average for each group.
  15594.  
  15595.   ALSO SEE: .AVERAGE
  15596.  
  15597.  
  15598.                                                           .SUBCOUNT  353
  15599.   ----------------------------------------------------------------------
  15600.  
  15601.  
  15602.  
  15603.   PURPOSE:  The  .SUBCOUNT function counts the number of records printed
  15604.             so far in the subtotal group.
  15605.  
  15606.   SYNTAX:   field.subcount
  15607.  
  15608.             field = any field or formula
  15609.  
  15610.   TYPE:          Function, numeric
  15611.  
  15612.   USE IN:   Report Writer
  15613.  
  15614.   COMMENTS: The  .SUBCOUNT function counts the number of records printed
  15615.             since the last trigger field changed.
  15616.  
  15617.             The  actual field  contents do  not  have an  affect on  the
  15618.             count.   (i.e.  character  fields are  counted  the same  as
  15619.             numeric fields; each as 1.)
  15620.  
  15621.             If .SUBCOUNT  is used  in the Detail  section or  Subtotal 1
  15622.             section, level 1  counts are returned.  If  used in Subtotal
  15623.             2, level  2 counts  are returned.   If used  in Subtotal  3,
  15624.             level 3 counts are returned.
  15625.  
  15626.             To  count  only  non  blank  entries,  see  the  .NBSUBCOUNT
  15627.             function.
  15628.  
  15629.   EXAMPLES: F1.SUBCOUNT
  15630.  
  15631.             This formula counts the number of records printed.  (It does
  15632.             not  matter which field is counted, i.e. F1.COUNT, F2.COUNT,
  15633.             F3.COUNT, etc. all return the same number.)
  15634.  
  15635.             If this formula is used  in the Detail Section of  a Report,
  15636.             it  provides a  running  count.   In  this way,  consecutive
  15637.             numbers can be generated in a printout.
  15638.  
  15639.   ALSO SEE: .COUNT, .NBSUBCOUNT and .NBCOUNT
  15640.  
  15641.  
  15642.   354  .SUBMAX
  15643.   ----------------------------------------------------------------------
  15644.  
  15645.  
  15646.  
  15647.   PURPOSE:  The .SUBMAX  function  provides the  maximum  numeric  value
  15648.             found for the current subtotal group.
  15649.  
  15650.   SYNTAX:   field.submax
  15651.  
  15652.   USE IN:   Label Writer and Report Writer
  15653.  
  15654.   COMMENTS: The .SUBMAX function returns the maximum numeric value found
  15655.             for the  field in the  current subtotal  group.   (Character
  15656.             fields,  unless they  contain  numeric information  or begin
  15657.             with numbers, equate to zeros.)
  15658.  
  15659.             If  .SUBMAX is  used in  the  Detail section  or Subtotal  1
  15660.             section, level 1 maximums are returned.  If used in Subtotal
  15661.             2, level 2  maximums are returned.   If used in  Subtotal 3,
  15662.             level 3 maximums are returned.
  15663.  
  15664.             For more examples, see the chapter titled "Report Writer". 
  15665.  
  15666.   EXAMPLES: F1.SUBMAX
  15667.  
  15668.             This formula  returns the  maximum numeric  value found  for
  15669.             Field 1 in the current subtotal group.
  15670.  
  15671.   ALSO SEE: .MAX, .MIN, .SUBMIN
  15672.  
  15673.  
  15674.                                                             .SUBMIN  355
  15675.   ----------------------------------------------------------------------
  15676.  
  15677.  
  15678.  
  15679.   PURPOSE:  The .SUBMIN  function  provides the  minimum  numeric  value
  15680.             found for the current subtotal group.
  15681.  
  15682.   SYNTAX:   field.submin
  15683.  
  15684.             field = any field or formula
  15685.  
  15686.   TYPE:          Function, numeric
  15687.  
  15688.   USE IN:   Report Writer
  15689.  
  15690.   COMMENTS: The .SUBMIN function returns the minimum numeric value found
  15691.             for  the field in  the current  subtotal group.   (Character
  15692.             fields,  unless they  contain numeric  information  or begin
  15693.             with numbers, equate to zeros.)
  15694.  
  15695.             If  .SUBMIN is  used in  the  Detail section  or Subtotal  1
  15696.             section, level 1 minimums are returned.  If used in Subtotal
  15697.             2, level 2  minimums are returned.   If used in Subtotal  3,
  15698.             level 3 minimums are returned.
  15699.  
  15700.             For more examples, see the chapter titled "Report Writer". 
  15701.  
  15702.   EXAMPLES: F1.SUBMIN
  15703.  
  15704.             This formula  returns the  minimum numeric  value found  for
  15705.             Field 1 in the current subtotal group.
  15706.  
  15707.   ALSO SEE: .MAX, .MIN and .SUBMAX
  15708.  
  15709.  
  15710.   356  .SUBTOTAL
  15711.   ----------------------------------------------------------------------
  15712.  
  15713.  
  15714.  
  15715.   PURPOSE:  The .SUBTOTAL function provides a numeric subtotal. 
  15716.  
  15717.   SYNTAX:   field.subtotal
  15718.  
  15719.             field = any numeric value or field
  15720.  
  15721.   USE IN:   Report Writer
  15722.  
  15723.   COMMENTS: The  .SUBTOTAL function  provides a  subtotal  based on  the
  15724.             numeric  value of the field.  (Character fields, unless they
  15725.             contain numeric information or begin with numbers, equate to
  15726.             zeros.)
  15727.  
  15728.             The level  of the subtotal generated depends  on the section
  15729.             in which it is  used.  (If used in the  Detail or Subtotal 1
  15730.             section, it returns a level 1 subtotal.  If used in Subtotal
  15731.             2 section, it  returns a level 2  subtotal.  If used  in the
  15732.             Subtotal 3 section, it returns a level 3 subtotal.)
  15733.  
  15734.             For more examples, see the chapter title "Report Writer".
  15735.  
  15736.   EXAMPLES: F1.SUBTOTAL
  15737.  
  15738.             If this formula is used in the Detail Section of the Report,
  15739.             it returns  the  running subtotal  for  Field 1.    If  this
  15740.             formula is used  in the Total Section, it  returns the grand
  15741.             total.
  15742.  
  15743.             F1.SUBTOTAL / 100
  15744.  
  15745.             If this formula is  used in a  Subtotal Section, it  divides
  15746.             the ending subtotal by 100. 
  15747.  
  15748.   ALSO SEE: .TOTAL
  15749.  
  15750.  
  15751.                                                                 SUM  357
  15752.   ----------------------------------------------------------------------
  15753.  
  15754.  
  15755.  
  15756.  
  15757.   PURPOSE:  The SUM function is used when you  want the sum of fields in
  15758.             a range.
  15759.  
  15760.   SYNTAX:   sum(field, field) OR sum(field:field)
  15761.  
  15762.             field = The first field is  the beginning field of the range
  15763.             and the second field is the ending field.  All fields within
  15764.             the range are added together.
  15765.  
  15766.   TYPE:          Function, numeric
  15767.  
  15768.   USE IN:   Any Formula
  15769.  
  15770.   COMMENTS: A comma or a colon may be used to separate the fields.
  15771.  
  15772.             If  there  are  any character  fields  within  the specified
  15773.             range, the VALUE of each field is used in the SUM function.
  15774.  
  15775.   EXAMPLES: SUM(F1,F10)
  15776.  
  15777.             This example adds Field 1 through Field 10.
  15778.  
  15779.             SUM(F1:F10)
  15780.  
  15781.             This example is exactly the same as the first.
  15782.  
  15783.   ALSO SEE: + (Plus)
  15784.  
  15785.  
  15786.   358  TIME
  15787.   ----------------------------------------------------------------------
  15788.  
  15789.  
  15790.  
  15791.   PURPOSE:  The TIME function returns the current time in standard AM/PM
  15792.             format.
  15793.  
  15794.   SYNTAX:   time
  15795.  
  15796.   TYPE:          Function, character
  15797.  
  15798.   USE IN:   Any Formula
  15799.  
  15800.   COMMENTS: The  TIME function returns  the current time  stored in your
  15801.             computer in AM/PM  format.  To change the  current time, you
  15802.             must be  at the  DOS level  and use  the DOS TIME  function.
  15803.             (For more information, consult the TIME function in your DOS
  15804.             manual.  
  15805.  
  15806.             Also see the MILTIME function for military (or 24 hour) time
  15807.             format.
  15808.  
  15809.   EXAMPLES: TIME
  15810.  
  15811.             If you have this  function in a  formula, it simply  returns
  15812.             the  current time  (i.e. 03:27  AM or  11:30  PM).   If this
  15813.             formula field is  defined in your  database, it updates  the
  15814.             time whenever the record is edited.
  15815.  
  15816.             If this function is used in a Report, it prints  the current
  15817.             time when each record is printed.
  15818.  
  15819.             TIME ADD ONLY
  15820.  
  15821.             The  ADD ONLY keywords  tells File Express  to calculate the
  15822.             formula only when  initially ADDING the record.   (It is not
  15823.             updated if the record is later edited.)
  15824.  
  15825.   ALSO SEE: MILTIME and TODAY
  15826.  
  15827.  
  15828.                                                            TIMEDIFF  359
  15829.   ----------------------------------------------------------------------
  15830.  
  15831.  
  15832.  
  15833.   PURPOSE:  The  TIMEDIFF function returns the number of minutes between
  15834.             two times.
  15835.  
  15836.   SYNTAX:   timediff(time[, time])
  15837.  
  15838.             time = any valid time in 24 hour format.  
  15839.  
  15840.   TYPE:          Function, numeric
  15841.  
  15842.   USE IN:   Any Formula
  15843.  
  15844.   COMMENTS: If the second TIME  is omitted, the  default system TIME  is
  15845.             used.  (For more  information on the  default TIME, see  the
  15846.             TIME function.)  The default time is in 24 hour format.
  15847.  
  15848.             If  the second time is earlier than the second time, then it
  15849.             is assumed that  the time difference extends  past midnight.
  15850.             In this case, File Express adds  24 hours to the second time
  15851.             to give the correct time difference.
  15852.  
  15853.             The  TIMEDIFF function returns the number of minutes between
  15854.             the first TIME and the  second TIME.  To convert  the number
  15855.             of minutes returned to hours and minutes, use the divide and
  15856.             MOD functions.  (See examples.)
  15857.  
  15858.   EXAMPLES: TIMEDIFF("09:00","17:00")
  15859.  
  15860.             This example  returns the  number of  minutes between  09:00
  15861.             (9:00 am) and 17:00 (5:00 pm).  The result is 480 minutes.
  15862.  
  15863.             INT(TIMEDIFF("09:00","17:00")) / 60
  15864.  
  15865.             This example divides the time difference by 60, this returns
  15866.             the number of hours (8 in this example).
  15867.  
  15868.             TIMEDIFF("23:00","00:30")
  15869.  
  15870.             Even though this example extends past midnight, this formula
  15871.             still returns the correct answer of 90.
  15872.  
  15873.   ALSO SEE: AGE and FUTUREDATE
  15874.  
  15875.  
  15876.   360  TODAY
  15877.   ----------------------------------------------------------------------
  15878.  
  15879.  
  15880.  
  15881.   PURPOSE:  The TODAY function  returns the current date in  the current
  15882.             date format.
  15883.  
  15884.   SYNTAX:   today
  15885.  
  15886.   TYPE:          Function, character
  15887.  
  15888.   USE IN:   Any Formula
  15889.  
  15890.   COMMENTS: The TODAY  function returns  the current date  as stored  in
  15891.             your computer.  To  change the date, you must be  at the DOS
  15892.             level and use the DOS DATE function.  (For more information,
  15893.             consult  the DATE function  in your  DOS manual.   Computers
  15894.             without a clock battery  must have the  date updated   every
  15895.             time the computer is rebooted.)
  15896.  
  15897.             For more examples, see the AGE function.
  15898.  
  15899.   EXAMPLES: TODAY
  15900.  
  15901.             This formula simply  returns the current date  (i.e. "12-25-
  15902.             90"  or  "25-12-1990"  etc. depending  on  the  current date
  15903.             format as defined in the Setup program).  If this is used as
  15904.             a formula in a database, this updates the date each time the
  15905.             record is edited.
  15906.  
  15907.             If  this function is used in a Report, it prints the current
  15908.             date when the report is printed.
  15909.  
  15910.  
  15911.             TODAY ADD ONLY
  15912.  
  15913.             The ADD  ONLY keywords tells  File Express to  calculate the
  15914.             formula only when  initially ADDING the record.   (It is not
  15915.             updated if the record is later edited.)
  15916.  
  15917.   ALSO SEE: MILTIME and TIME
  15918.  
  15919.  
  15920.                                                              .TOTAL  361
  15921.   ----------------------------------------------------------------------
  15922.  
  15923.  
  15924.  
  15925.   PURPOSE:  The .TOTAL function provides a numeric total.
  15926.  
  15927.   SYNTAX:   field.total
  15928.  
  15929.             field = any field
  15930.  
  15931.   TYPE:          Function, numeric
  15932.  
  15933.   USE IN:   Label Writer and Report Writer
  15934.  
  15935.   COMMENTS: The .TOTAL function  provides a total  based on the  numeric
  15936.             value of the field.   (Character fields, unless they contain
  15937.             numeric information or begin with numbers, equate to zeros.)
  15938.  
  15939.             For more examples, see the chapter titled "Report Writer".
  15940.  
  15941.   EXAMPLES: F1.TOTAL
  15942.  
  15943.             If this formula is used in the Detail Section of the Report,
  15944.             it returns the  running total for Field  1.  If used  in the
  15945.             Total Section, it returns the grand total.
  15946.  
  15947.             F1.TOTAL / 100
  15948.  
  15949.             If this formula is used in the Total Section, it divides the
  15950.             ending total by 100.
  15951.  
  15952.   ALSO SEE: .SUBTOTAL
  15953.  
  15954.  
  15955.   362  TRIM
  15956.   ----------------------------------------------------------------------
  15957.  
  15958.  
  15959.  
  15960.   PURPOSE:  The TRIM function removes leading and trailing spaces.
  15961.  
  15962.   SYNTAX:   trim(text)
  15963.  
  15964.             text = a character field or character string.
  15965.  
  15966.   TYPE:          Function, character
  15967.  
  15968.   USE IN:   Label Writer, Report Writer and Search and Replace
  15969.  
  15970.   COMMENTS: The trim function removes blank spaces before the first non-
  15971.             blank character and after the last non-blank character.  (It
  15972.             does not remove blank spaces between words.)
  15973.  
  15974.   EXAMPLES: TRIM("  Tom  ")
  15975.  
  15976.             This example produces "Tom".
  15977.  
  15978.             TRIM("   BJ THOMAS   ")
  15979.  
  15980.             This example produces "BJ THOMAS".
  15981.  
  15982.             TRIM("Tom Smith")
  15983.  
  15984.             This  example produces  "Tom Smith".   (Since  there are  no
  15985.             leading  or trailing  spaces to  remove,  this formula  does
  15986.             nothing.)
  15987.  
  15988.   ALSO SEE: LTRIM, RTRIM
  15989.  
  15990.  
  15991.                                                              UPDATE  363
  15992.   ----------------------------------------------------------------------
  15993.  
  15994.  
  15995.  
  15996.   PURPOSE:  The UPDATE statement puts information into another database.
  15997.  
  15998.   SYNTAX:   update(database,        search_field,       search_criteria,
  15999.             field_to_put_to, what_to_put)
  16000.  
  16001.             database = the  name of the database to  search (may include
  16002.             drive and path,  but no file extension).   The database must
  16003.             be the typed out name of the database.  It cannot be a field
  16004.             name or formula containing the name.
  16005.  
  16006.             search_field = the  field in the  other database to  search.
  16007.             The search_field must  be in the Fxx format.  It cannot be a
  16008.             field name.
  16009.  
  16010.             search_criteria =  the information  to use  for the  search.
  16011.             The  search_criteria parameter can have one of the following
  16012.             comparison signs preceding it:  
  16013.             =,  >,  <, >=,  <=,  ><, or  <>.    If a  comparitor  is not
  16014.             specified,  an exact match is looked for (disregarding upper
  16015.             and  lower  case  letters).    The  search_criteria  can  be
  16016.             constant text enclosed in  quotes, for example,  "BASEBALL",
  16017.             or a field number, F4, or a field name, BALANCE DUE.
  16018.  
  16019.             field_to_put_to =  the field number in the other database to
  16020.             put information  into.  This must be in  the Fxx format.  It
  16021.             cannot be a field name.
  16022.  
  16023.             what_to_put  = information to put into other database.  This
  16024.             can be a quoted text string, field name or field number.
  16025.  
  16026.   TYPE:          Statement
  16027.  
  16028.   USE IN:   Database
  16029.  
  16030.   COMMENTS: When an UPDATE  is made, the record accessed is  stored in a
  16031.             buffer.  The  next UPDATE checks this buffer  for a possible
  16032.             match  before rechecking a database.  Therefore, to decrease
  16033.             search time, all  UPDATEs which reference the  same database
  16034.             should be grouped together.
  16035.  
  16036.             If  no match  is found  in  the other  database, nothing  is
  16037.             written.
  16038.  
  16039.  
  16040.   364  UPDATE
  16041.   ----------------------------------------------------------------------
  16042.  
  16043.   EXAMPLES: UPDATE(PRICES, F1, F1, F2, F5)
  16044.  
  16045.             In this example,  PRICES refers to a database  called PRICES
  16046.             in the current data directory.  The first F1 refers to Field
  16047.             1 in the PRICES database, the second F1 refers to Field 1 in
  16048.             the current record in the current database, the F2 refers to
  16049.             Field 2 in the PRICES database, and  F5 refers to field 5 in
  16050.             the  current database.    If  F1  from  the  current  record
  16051.             contains "Lawn Mower", this example  searches Field 1 in the
  16052.             PRICES database for "Lawn Mower".  Once the match is  found,
  16053.             it puts the information from field 5 in the current database
  16054.             into field 2 of the PRICES database.
  16055.  
  16056.             UPDATE(C:\FE5\DATA\MAILLIST,F3,=name,F6, address)
  16057.  
  16058.             This example uses the MAILLIST database which is on Drive  C
  16059.             in the  subdirectory \FE5\DATA.  It searches the third field
  16060.             for a match  with the information from  the current records'
  16061.             name field.   Once a match is found, it puts into MAILLIST's
  16062.             sixth  field, the  contents  of  current database's  address
  16063.             field.
  16064.  
  16065.   ALSO SEE: LOOKUP
  16066.  
  16067.  
  16068.                                                       UPPER (UCASE)  365
  16069.   ----------------------------------------------------------------------
  16070.  
  16071.  
  16072.  
  16073.  
  16074.   PURPOSE:  The  UPPER function  is used  to convert  all  characters to
  16075.             upper case.
  16076.  
  16077.   SYNTAX:   upper(text)
  16078.  
  16079.             text = a character field or character string.
  16080.  
  16081.   TYPE:          Function, character
  16082.  
  16083.   USE IN:   Label Writer, Report Writer and Search and Replace
  16084.  
  16085.   COMMENTS: A field  may be  converted to all  upper case  characters by
  16086.             using this function.  This is commonly done when printing or
  16087.             using the Search and Replace option.
  16088.  
  16089.   EXAMPLES: UPPER("Hello")
  16090.  
  16091.             This example produces "HELLO".
  16092.  
  16093.             UPPER("hello")
  16094.  
  16095.             This also produces "HELLO".
  16096.  
  16097.             UPPER(F1)
  16098.  
  16099.             This converts Field 1 to all upper case characters.
  16100.  
  16101.   ALSO SEE: LOWER, PROPER
  16102.  
  16103.  
  16104.   366  VALUE (VAL)
  16105.   ----------------------------------------------------------------------
  16106.  
  16107.  
  16108.  
  16109.   PURPOSE:  The VALUE functions returns the numeric value from a field.
  16110.  
  16111.   SYNTAX:   value(field)
  16112.  
  16113.             field = any field.
  16114.  
  16115.   TYPE:          Function, numeric
  16116.  
  16117.   USE IN:   Any Formula
  16118.  
  16119.   COMMENTS: Generally this function  is used on Character fields so that
  16120.             the true numeric value in the field can be used.
  16121.  
  16122.             The VALUE function starts  on the left  side of a  character
  16123.             field  and continues  taking numbers  until  it reaches  the
  16124.             first non numeric character.  
  16125.  
  16126.             If the  character field does not  start with a number,   the
  16127.             result is zero.
  16128.  
  16129.             If the VALUE  is taken on a numeric field, the result is the
  16130.             numeric field.  (Basically it does nothing.)
  16131.  
  16132.   EXAMPLES: VALUE(F1)
  16133.  
  16134.             If Field 1 contains "142", the result is 142.
  16135.  
  16136.             VALUE(F5)
  16137.  
  16138.             If Field 5 contains "125 Stella St.", the result is 125.
  16139.  
  16140.             VALUE(F5)
  16141.  
  16142.             If Field 5 contains "PO Box 1800", the result is 0.
  16143.  
  16144.   ALSO SEE: SUM 
  16145.  
  16146.  
  16147.                                                                YEAR  367
  16148.   ----------------------------------------------------------------------
  16149.  
  16150.  
  16151.  
  16152.   PURPOSE:  The  YEAR  function returns  the  four  digit  year for  the
  16153.             current date or for the date specified.
  16154.  
  16155.   SYNTAX:   year[(date)]
  16156.  
  16157.             date = any valid date field or constant date.
  16158.  
  16159.   TYPE:          Function, numeric
  16160.  
  16161.   USE IN:   Any Formula
  16162.  
  16163.   COMMENTS: If the date is omitted, this function returns the year  from
  16164.             the  current system date.   (For information  on the current
  16165.             date, see the TODAY function.)
  16166.  
  16167.   EXAMPLES: YEAR
  16168.  
  16169.             If the current year is 1990, this function returns "1990".
  16170.  
  16171.             YEAR(F1)
  16172.  
  16173.             If "04-16-90" is the date in Field 1, this function  returns
  16174.             "1990".
  16175.  
  16176.             DAYNAME(F1) + "," & MONTHNAME(F1) & DAY(F1) + "," & YEAR(F1)
  16177.  
  16178.             If Field  1 has the  date "04-16-90", this  function returns
  16179.             "Monday, April 16, 1990".
  16180.  
  16181.   ALSO SEE: DAY, DAYABBV,  DAYNAME,  FORMATDATE,  MONTH,  MONTHABBV  and
  16182.             MONTHNAME
  16183.  
  16184.  
  16185.   368  ZEROS
  16186.   ----------------------------------------------------------------------
  16187.  
  16188.  
  16189.  
  16190.   PURPOSE:  The  ZEROS statement  tells  File  Express  to  print  zeros
  16191.             instead of blanks when printing numeric fields.
  16192.  
  16193.   SYNTAX:   numeric_field [with] zeros
  16194.  
  16195.             numeric_field = any numerical field or formula.
  16196.  
  16197.   TYPE:          Statement
  16198.  
  16199.  
  16200.   COMMENTS: The default for  File Express is to print  blanks instead of
  16201.             zeros  if  a numeric  field is  equal  to zero.    The ZEROS
  16202.             keywords can be  used to override this default.   (To change
  16203.             the default, use the Setup program.)
  16204.  
  16205.             When zeros  are printed, enough  zeros are used  to maintain
  16206.             decimal places.
  16207.  
  16208.   EXAMPLES: F5 WITH ZEROS
  16209.  
  16210.             If Field 5 is  blank with no  decimal places, the output  is
  16211.             "0".
  16212.  
  16213.             F5 WITH ZEROS
  16214.  
  16215.             If Field 5  is blank with  2 decimal places,  the output  is
  16216.             "0.00".
  16217.  
  16218.   ALSO SEE: NO ZEROS
  16219.  
  16220.  
  16221.                                                   ADVANCED FEATURES  369
  16222.   ----------------------------------------------------------------------
  16223.  
  16224.  
  16225.                             Advanced Features
  16226.  
  16227.        This  section discusses several of  the more technical aspects of
  16228.        File Express,  which the  average user does  not usually  need to
  16229.        know.   The section  assumes the  reader has  a complete  working
  16230.        knowledge of DOS, File Express and EDLIN (or another text  editor
  16231.        or word processor). 
  16232.  
  16233.  
  16234.   Screen Dumps To Disk 
  16235.        As you  probably know, the contents of the  screen can be sent to
  16236.        the printer by pressing the <Shift-PrtSc> key (this is a  feature
  16237.        of DOS and  can be used with any program, not just File Express).
  16238.        File Express has  expanded on this concept, letting  you send the
  16239.        contents of the screen to  a disk file.  Whenever <Shift-F10>  is
  16240.        pressed on any screen in File Express, the screen's contents  are
  16241.        placed on disk in a file called SCREEN.DMP.   If the file already
  16242.        has data in  it, the  current screen  dump is added  at the  end.
  16243.        This screen dump  file can be sent  to your printer with  the DOS
  16244.        command: 
  16245.                           COPY SCREEN.DMP PRN: 
  16246.        and can be deleted with the DOS command: 
  16247.                               DEL SCREEN.DMP
  16248.        and can be edited  and printed with most word processors and text
  16249.        editors. 
  16250.  
  16251.    
  16252.  
  16253.  
  16254.   370  ADVANCED FEATURES
  16255.   ----------------------------------------------------------------------
  16256.  
  16257.   Custom Banner Screens 
  16258.        Because  File Express is  so versatile, many  software developers
  16259.        and value-added resellers use  it as a  starting point for  their
  16260.        own vertical  market  applications.   At  the  request  of  these
  16261.        developers, we have added  a custom banner  screen option to  the
  16262.        File Express start-up process.   After File Express displays  its
  16263.        own banner screen, it checks the selected subdirectory to see  if
  16264.        there is a file called BANNER on disk.  If such a file exists, it
  16265.        is loaded and displayed on the screen. 
  16266.  
  16267.        The format of the BANNER file  is fairly simple.  The first  line
  16268.        contains  three numbers, separated  by commas.   The first number
  16269.        indicates  the  length  of  time,  in  seconds,  to  pause  after
  16270.        displaying the custom banner.   If the first number is zero, File
  16271.        Express  pauses  until  a  key  is  pressed.  The  second  number
  16272.        indicates the foreground color to be used for the banner display.
  16273.        The third number indicates the background color.  
  16274.  
  16275.        The second and subsequent lines of BANNER are read and  displayed
  16276.        on the screen  using the colors specified.  If the computer has a
  16277.        monochrome  board, or if  the operator specified  /M at start-up,
  16278.        the custom banner screen  is displayed in  white characters on  a
  16279.        black background. 
  16280.  
  16281.        Referring to the table below, the foreground color value may be a
  16282.        number from zero  to fifteen.  The background color  value may be
  16283.        from zero to seven: 
  16284.  
  16285.                  0  Black        8  Gray 
  16286.                  1  Blue         9  Light Blue 
  16287.                  2  Green       10  Light Green 
  16288.                  3  Cyan        11  Light Cyan 
  16289.                  4  Red         12  Light Red 
  16290.                  5  Magenta     13  Light Magenta 
  16291.                  6  Brown       14  Yellow 
  16292.                  7  White       15  High-intensity White 
  16293.  
  16294.  
  16295.        To create  the BANNER file, use a text  editor and place the file
  16296.        in the same subdirectory as the File Express program files.
  16297.  
  16298.  
  16299.                                                   ADVANCED FEATURES  371
  16300.   ----------------------------------------------------------------------
  16301.  
  16302.        Example:
  16303.  
  16304.             Line 1 :0,7,1
  16305.             Line 2 :
  16306.             Line 3 :
  16307.             Line 4 :
  16308.             Line 5 :
  16309.             Line 6 :       Joe's Database Service
  16310.             Line 7 :
  16311.             Line 8 :
  16312.             Line 9 :
  16313.             Line 10:            Fishing Holes in the USA
  16314.             Line 11:
  16315.             Line 12:
  16316.             Line 13:
  16317.             Line 14:              206-555-7385
  16318.             Line 15:
  16319.             Line 16:
  16320.             Line 17:
  16321.             Line 18:
  16322.             Line 19:
  16323.             Line 20:
  16324.             Line 21:          ...press any key to continue
  16325.             Line 22:
  16326.             Line 23:
  16327.             Line 24:
  16328.             Line 25:
  16329.  
  16330.  
  16331.  
  16332.        The example above displays the banner screen in white letters  on
  16333.        a  blue  background and  waits  for a  key to  be  pressed before
  16334.        continuing. 
  16335.  
  16336.  
  16337.   372  ADVANCED FEATURES
  16338.   ----------------------------------------------------------------------
  16339.  
  16340.  
  16341.  
  16342.                         Customizing File Express 
  16343.  
  16344.  
  16345.        This section describes the profile feature of File Express.  Many
  16346.        aspects of  File Express can be tailored  to special environments
  16347.        or personal tastes.   For example, all  the colors used  for File
  16348.        Express screens and menus can be  changed.  Defaults, such as the
  16349.        disk drive and path can also be changed. 
  16350.  
  16351.        These custom  changes  are placed  in  a special  file  called  a
  16352.        profile, which  resides in  the directory  with the File  Express
  16353.        programs.   The  name of  the file  with the  profile  options is
  16354.        FE.PRO.   If the file  doesn't exist,  File Express uses  all its
  16355.        standard options. 
  16356.  
  16357.        FE.PRO  is  a  binary file  and  CANNOT  be  edited with  a  word
  16358.        processor or text editor.   The File  Express package includes  a
  16359.        program called FESETUP.EXE  which is used to make  changes in the
  16360.        configuration file.
  16361.  
  16362.   Starting the Setup Program
  16363.        The  Setup  program must  be  run  from  your Program  drive  and
  16364.        directory so it can load and save FE.PRO in the correct location.
  16365.  
  16366.  
  16367.        Floppy System:  If you are running File Express from a two floppy
  16368.        drive   system,   place   the   Supplemental   Disk   (containing
  16369.        FE5SETUP.EXE) in the B: drive and the Program Disk (where  FE.PRO
  16370.        resides) in the A: drive.  From the A:> prompt type
  16371.  
  16372.                             B:FE5SETUP <Enter>
  16373.  
  16374.        Hard Disk System:   If you are  running File Express from  a hard
  16375.        disk, change directories  to the  subdirectory containing  FE.EXE
  16376.        and then type:
  16377.  
  16378.                              FE5SETUP <Enter>
  16379.  
  16380.  
  16381.                                                         CUSTOMIZING  373
  16382.   ----------------------------------------------------------------------
  16383.  
  16384.        Using Setup:  When the program is loaded, the Opening Instruction
  16385.        screen appears:
  16386.  
  16387.  
  16388.  
  16389.  
  16390.  
  16391.  
  16392.                  Registered Version has screen picture here
  16393.  
  16394.  
  16395.  
  16396.  
  16397.  
  16398.  
  16399.  
  16400.  
  16401.  
  16402.  
  16403.  
  16404.   General Defaults
  16405.        Sound Option: File Express makes a variety of beeps  and blips as
  16406.        data is being entered.   These sounds  can be helpful,  providing
  16407.        audio feedback as you progress  through the screens.  But  if you
  16408.        find  the sound annoying, you can turn  it off, either by setting
  16409.        this option to  NO or by using /S  as a command line  option when
  16410.        starting File Express. 
  16411.  
  16412.        Most people find the sound feature useful, so we have made it the
  16413.        default.   But  some people  turn it  off because the  speaker on
  16414.        their  PC is  too  loud or  because others  around  them find  it
  16415.        annoying.   If you  aren't sure  about the  sound, try  it for  a
  16416.        couple days.    Once you  have  become accustomed  to  the  audio
  16417.        feedback from  the  program, you  may  find it  hard  to  operate
  16418.        without it. 
  16419.  
  16420.        Screen Display:   If your computer's  video memory is not  at the
  16421.        same address as IBM video memory, you can  still use File Express
  16422.        by either  specifying /B on the command  line, or by setting this
  16423.        option to SLOW. 
  16424.  
  16425.        Snow:   If annoying "snow"  appears on  your screen when  data is
  16426.        displayed, set this option to YES.  
  16427.  
  16428.        Menu  Lines:   File Express  normally  displays it  menus with  a
  16429.        surrounding double  line.  If you would like to remove this line,
  16430.        answer NO.
  16431.  
  16432.        Auto  Enter Option:  Normally  File Express requires that <Enter>
  16433.        be pressed  to advance to the next field.  If you prefer that the
  16434.  
  16435.  
  16436.   374  CUSTOMIZING
  16437.   ----------------------------------------------------------------------
  16438.  
  16439.        cursor automatically move  to the next field when  it reaches the
  16440.        end of a field, answer YES. 
  16441.  
  16442.        This  option is  only in  effect when  entering data  on the  Add
  16443.        Records screen or changing data on the Find  Records screen.  All
  16444.        other prompts function  as described in the  Keyboard Conventions
  16445.        chapter. 
  16446.  
  16447.        Space  Character:   When File  Express  displays a  field on  the
  16448.        screen, it normally pads  the right-hand side  of the field  with
  16449.        underline characters.  If  the field is  empty, it is  completely
  16450.        filled  with underline  characters.   If  it has  some data,  the
  16451.        underlines  appear to  the right  of  the data,  filling out  the
  16452.        field.    These  underlines  are  useful  because  they  visually
  16453.        indicate the  maximum length of the  field.  If you  would prefer
  16454.        another character,  press the  <Spacebar> to  toggle through  the
  16455.        thirteen available pad characters.  Press <Enter> when finished.
  16456.  
  16457.        Default Date Format:  File Express supports four date format: 
  16458.             MM-DD-YY, MM-DD-YYYY, DD-MM-YY and DD-MM-YYYY.
  16459.        These formats are  used for  date input  only.   The actual  date
  16460.        representation  is always  stored in  the database  the  same way
  16461.        (YYYYMMDD).  This lets you change the date format at any time and
  16462.        still display all existing dates in the correct format.
  16463.  
  16464.        Default Monetary Sign:   You can select between  the dollar sign,
  16465.        the British  pound sign and the Japanese Yen  sign.  This sign is
  16466.        used on reports when printing monetary amounts.
  16467.  
  16468.        Block Field  Exit Key:   You have  two choices concerning  how to
  16469.        exit a block field: <Enter> and <Ctrl-Enter>.  All other types of
  16470.        fields are exited by the <Enter> key but in a block field you may
  16471.        want to use <Enter> to  move the cursor down to the  next line as
  16472.        you would in a word processor.  
  16473.  
  16474.        Search Method For  EQUAL Operator:  In previous  versions of File
  16475.        Express a search criteria like: 
  16476.                                 F1 = CAN 
  16477.        would find all  records where Field  1 started with CAN,  such as
  16478.        CANADA,  CANDY, CAN, CANCER, CANDLE  etc.  If  you just wanted to
  16479.        find the records where Field 1 just equaled CAN and nothing else,
  16480.        you had to use something like: 
  16481.                          F1 = CAN AND LEN(F1) = 3
  16482.        This was not easy to remember and inconsistent with the way other
  16483.        products  work.  A  better way is  to handle EQUAL  searches like
  16484.        this:
  16485.                                  F1 = CAN
  16486.        finds records where  field one is CAN  and nothing else.   If you
  16487.        want to find records where Field 1 starts with CAN, use:
  16488.                                 F1 = CAN..
  16489.  
  16490.  
  16491.                                                         CUSTOMIZING  375
  16492.   ----------------------------------------------------------------------
  16493.  
  16494.        So, if you want to use the new method, select EXACT.  If you like
  16495.        the old method, select STARTS WITH.  The choice is yours.
  16496.         
  16497.  
  16498.  
  16499.   376  CUSTOMIZING
  16500.   ----------------------------------------------------------------------
  16501.  
  16502.   Color Defaults
  16503.        Color  or Mono:   If your  computer has a  monochrome video card,
  16504.        File  Express recognizes its  presence and displays  screens with
  16505.        white characters on a  black background.  If it has  a color card
  16506.        but a  monochrome  monitor, or  if  you prefer  black  and  white
  16507.        displays on your color monitor, specify /M on the command line or
  16508.        set this option to MONO.
  16509.  
  16510.        Screen Colors:   If your  computer has  a color monitor,  you can
  16511.        change the  colors which  File Express  uses on  its screens  and
  16512.        menus.   To change any  one of the  color combinations,  move the
  16513.        highlight bar to it and press <F> to change the foreground  color
  16514.        and <B>  to change the background color.  Press <Enter> to accept
  16515.        your choice.  
  16516.  
  16517.             General color                 lt white ON blue 
  16518.             General Highlight color       yellow ON blue 
  16519.             Main Menu color               red ON white 
  16520.             Main Menu Highlight color          black ON white 
  16521.             Sub Menu color                blue ON cyan 
  16522.             Sub Menu Highlight color           black ON cyan 
  16523.             Shadow color                  black ON blue 
  16524.             Title color                   lt white ON red 
  16525.             Input color                   yellow ON black 
  16526.             Field color                   lt cyan ON blue 
  16527.             Error color                   lt white ON red 
  16528.  
  16529.        The foreground color (the first one specified) may be any  of the
  16530.        sixteen colors  listed below.   The background color  (the second
  16531.        one specified) may be any of the eight colors on the left. 
  16532.  
  16533.                  Black          Gray 
  16534.                  Blue      Lt Blue 
  16535.                  Green          Lt Green 
  16536.                  Cyan      Lt Cyan 
  16537.                  Red       Lt Red 
  16538.                  Magenta   Lt Magenta 
  16539.                  Brown          Yellow 
  16540.                  White          Lt White 
  16541.  
  16542.  
  16543.                                                         CUSTOMIZING  377
  16544.   ----------------------------------------------------------------------
  16545.  
  16546.   Data Entry Defaults 
  16547.        Drive and Path  name: File Express defaults to  the current drive
  16548.        and path on hard disk systems and to the root directory  of drive
  16549.        B on  diskette  systems.   You  can override  these  defaults  by
  16550.        filling in a different drive and path.  Examples:
  16551.  
  16552.                                 D:\FE\DATA
  16553.                                    C:\
  16554.                                     B:
  16555.  
  16556.        If  the directory  and  backslashes  are  omitted,  File  Express
  16557.        defaults to  the root  directory of the  specified drive.   If  a
  16558.        directory is specified, it must be one that exists; File  Express
  16559.        does not create new  directories.  If the command line contains a
  16560.        drive and path  at startup, it overrides these defaults.   If the
  16561.        command line contains no drive and path, and this field is empty,
  16562.        the prompt for drive and path is displayed.  
  16563.  
  16564.  
  16565.        Database  File Name:    To specify  a database  to  be opened  at
  16566.        startup,  fill  in this  field  with  the  name of  the  database
  16567.        (without an extension).  Example:
  16568.  
  16569.                                  MAILLIST
  16570.  
  16571.  
  16572.        Clear Buffer Option: File Express writes records to disk as  soon
  16573.        as they are changed.  However, DOS does not update information in
  16574.        the disk directory  at the time the  records are written.   So if
  16575.        something  were to  interrupt your  computer's  processing before
  16576.        File Express ended, some  of your data could be lost.   To reduce
  16577.        the possibility of data loss, File Express issues a Close command
  16578.        to DOS after every five records are written to disk.   This Close
  16579.        command tells  DOS  to go  update  the disk  directory  and  file
  16580.        allocation tables. 
  16581.  
  16582.        You  can  tell  File  Express  to  issue  a  Close  command  more
  16583.        frequently by setting this prompt to a lower number.  This number
  16584.        is  the number  of writes to  disk before  the buffer  is cleared
  16585.        (i.e. the files are  closed).  If you specify a value of one, the
  16586.        buffers are  cleared every  time a  database record  is added  or
  16587.        changed. 
  16588.  
  16589.        A value of one provides the most security for your data, although
  16590.        it  adds a  small amount  of  overhead to  the process  of adding
  16591.        records.   But consider  this typical  example: an  office has  a
  16592.        database which several employees use for inquiry during  the day.
  16593.        Sometimes  the employees make minor changes to the database, then
  16594.        they leave the Find Records menu displayed on  the screen for the
  16595.        next person.  In this environment,  a change to a record can  sit
  16596.        in the computer's memory for hours, maybe  even overnight, before
  16597.  
  16598.  
  16599.   378  CUSTOMIZING
  16600.   ----------------------------------------------------------------------
  16601.  
  16602.        it  is finally  updated on  disk.   If  the electricity  goes off
  16603.        during that time, or if someone re-boots the computer or  removes
  16604.        the diskette, the data  is lost because it  was never written  to
  16605.        disk by DOS.
  16606.  
  16607.        File  Express automatically clears  the buffers when  the program
  16608.        returns to the  Main Menu.   So if  you have not  used the  Setup
  16609.        program, the next  best alternative is to return to the Main Menu
  16610.        before letting the computer sit idle. 
  16611.  
  16612.        Disk  Space:   If  you would  like  File  Express to  report  the
  16613.        remaining  disk space when  you are entering  new records, answer
  16614.        YES.  Because  this check has to  look in the directory  table on
  16615.        your Data  drive to  determine the  remaining space,  floppy disk
  16616.        users have to  wait a little longer  than hard disk users.   Thus
  16617.        floppy  disk users  might be  tempted  to turn  off the  service.
  16618.        Remember,  however, that  floppy disks  hold much less  data than
  16619.        hard disks and should be monitored for free space more closely.
  16620.  
  16621.  
  16622.   Label Printing Defaults 
  16623.        The Label Spacing defaults which appear when defining a new label
  16624.        can also be changed with Setup commands: 
  16625.  
  16626.             Labels across (1 - 5)                    1
  16627.             Vertical label spacing (1 - 99)               6 
  16628.             Printable lines per label (1 - 99)       4
  16629.             Horizontal label spacing  (1 - 99)      37 
  16630.             Characters per label line (1 - 99)      34
  16631.             Tab position of first label (1 - 99)          5
  16632.             Number of Labels for each record (1-999)      1
  16633.  
  16634.  
  16635.        Changing these defaults  do not affect  label formats which  have
  16636.        already been  designed and  saved.   To change  options on  those
  16637.        formats, load them in, change the options, then save them to disk
  16638.        to make the changes permanent. 
  16639.  
  16640.  
  16641.                                                         CUSTOMIZING  379
  16642.   ----------------------------------------------------------------------
  16643.  
  16644.   Report Printing Defaults
  16645.        The  Report section asks many questions  concerning the layout of
  16646.        the report.  
  16647.  
  16648.  
  16649.        Print a Subtotal for a single record                   NO
  16650.        Use Linefeeds when printing                       NO
  16651.        Use Formfeeds at end of page                 NO
  16652.        Page Width (18 - 999)                        500
  16653.        Left margin on reports (0 - 99)                     5
  16654.        Page length (1 - 250)                              66
  16655.        Lines per page to print (1 - 250)                   1
  16656.        Top margin on reports (0 - 99)                      0
  16657.        Print Zeros as blanks                             NO
  16658.        Put Parentheses around neg. numbers               NO
  16659.        Type of Brackets for neg. numbers                 ( )
  16660.        Format large numbers with Commas                  YES
  16661.        Title position
  16662.        Header position
  16663.        Footer position
  16664.        Remove Blank Lines when printing
  16665.        Pause between each report page or label
  16666.        Print to the Screen, Printer, or Disk
  16667.  
  16668.  
  16669.   Form Letter Defaults
  16670.        When  writing form  letters  you can  set  the following  default
  16671.        settings.
  16672.  
  16673.        Text Width                                   70
  16674.        Paper Length                                 66
  16675.        Lines of Text                                58
  16676.        Top Margin                                    0
  16677.        Left Margin                                   5
  16678.        Use formfeeds at end of page                 NO
  16679.        Pause between each form letter                    NO
  16680.        Print to the Screen, Printer, or Disk                   SCREEN
  16681.  
  16682.  
  16683.   380  CUSTOMIZING
  16684.   ----------------------------------------------------------------------
  16685.                                      empty
  16686.  
  16687.  
  16688.                                                     TROUBLESHOOTING  381
  16689.   ----------------------------------------------------------------------
  16690.  
  16691.                              Troubleshooting
  16692.  
  16693.  
  16694.        If an error  occurs in File Express, the  error message sometimes
  16695.        tells you to  refer to this  chapter.  Or  if you have a  problem
  16696.        where  there is no  error message involved,  for example, nothing
  16697.        displays  on the screen, you  can refer to  this chapter as well.
  16698.        The first  part of  this chapter  discusses  common problems  and
  16699.        prospective cures.   The last section explains what to  do if you
  16700.        find a problem and want to report  it to Expressware.  Appendix A
  16701.        lists  several   File  Express  error   messages  alphabetically,
  16702.        explains what they  mean, and provides corrective  measures where
  16703.        appropriate.  
  16704.  
  16705.  
  16706.   Screen Does Not Display 
  16707.        Problem: You  start up  File  Express and  it seems  to load  but
  16708.        doesn't display anything on the screen. 
  16709.  
  16710.        Press <Esc>  then <Enter>.   If  you press  those keys  and don't
  16711.        return to the  DOS prompt, the computer  has locked up.   In that
  16712.        case, refer to the section below on  "locking up".  If you return
  16713.        to the DOS prompt, it's a good sign, indicating that File Express
  16714.        was running,  but was  just not displaying  properly.   Start the
  16715.        program again, only this time, use this command to start it: 
  16716.  
  16717.                                         FE /B 
  16718.  
  16719.        The  /B tells File Express  to use BIOS  calls when displaying on
  16720.        the screen.  This is usually the cause of missing displays. 
  16721.  
  16722.  
  16723.   Some Characters Are Fuzzy or Unreadable 
  16724.        Problem: You start  up File Express and it  loads, but the screen
  16725.        is fuzzy and unreadable, or some of the characters are missing. 
  16726.  
  16727.        This  usually   occurs  on  computers  with  monochrome  monitors
  16728.        attached  to  graphics  boards.    The  monitor  is incapable  of
  16729.        displaying colors,  but File Express has no  way of knowing it by
  16730.        examining the hardware.   Press <Esc> then  <Enter> to return  to
  16731.        the DOS prompt.  Then start the program again using this command:
  16732.  
  16733.  
  16734.                                         FE /M 
  16735.  
  16736.        The /M tells File  Express to display  in monochrome mode  (white
  16737.        characters on a black background). 
  16738.  
  16739.  
  16740.   382  TROUBLESHOOTING
  16741.   ----------------------------------------------------------------------
  16742.  
  16743.   Computer Locks Up At Startup 
  16744.        Problem: The computer stops while loading File Express,  and just
  16745.        hangs.   No amount of pressing keys will  shake it loose, and the
  16746.        computer must be  rebooted to get it going again.   Sometimes the
  16747.        banner screen is displayed, sometimes nothing is displayed. 
  16748.  
  16749.        Reboot  your computer,  and start File  Express again,  this time
  16750.        using this command: 
  16751.  
  16752.                                        FE /M/S/B 
  16753.  
  16754.        /M says to display monochrome, /S says to turn off the sound, and
  16755.        /B says to  use BIOS  calls for  screen displays.   When you  use
  16756.        these  three options, File Express is just  about as generic as a
  16757.        program  can  get.    If  it  works  with  these  commands,   try
  16758.        experimenting  with only one or  two of them at a  time.  You may
  16759.        find that you  need only one of  the commands to get  it to work.
  16760.        If these commands don't cure the problem, read on: 
  16761.  
  16762.        If you have an older model  of a computer that runs MS-DOS,  this
  16763.        problem is probably due to your computer being "semi-compatible";
  16764.        i.e.  it's not 100% compatible with  the IBM PC, so some programs
  16765.        don't run properly in it.  If this is the case, you  may have had
  16766.        a similar experience with  other software packages.   If this  is
  16767.        the case, we're  sorry, but we can't  help.  We will  be happy to
  16768.        refund your money, however, if you return the product in  salable
  16769.        condition within 60 days of purchase. 
  16770.  
  16771.        If  your computer is not an older model, and if you're sure it is
  16772.        100% compatible with  the IBM PC, the most likely problem is that
  16773.        the program diskette is bad.  If you bought the diskette from us,
  16774.        send it back and we will replace it.  If the diskette came from a
  16775.        friend or other shareware source, get another copy, preferably on
  16776.        a  different diskette, and  try again.   Or if you  suspect their
  16777.        original diskette  is bad, contact us for an evaluation copy at a
  16778.        nominal price. 
  16779.  
  16780.        There is another problem which occasionally causes a  computer to
  16781.        hang up  while running  File Express: bad  memory.   File Express
  16782.        uses all the available  RAM memory in  your computer, while  many
  16783.        other programs do  not.  If one  of those seldom-used  RAM memory
  16784.        locations has a bad  spot, the computer  sometimes locks up  when
  16785.        that  memory  location is  accessed.   Sometimes  a  PARITY ERROR
  16786.        message is  displayed by  DOS, and  sometimes  the computer  just
  16787.        hangs.  Memory  errors are often heat- related.   If the computer
  16788.        was just turned on, let it run awhile and try again.  If the room
  16789.        is very warm,  turn off the computer  for an hour and  try again.
  16790.        If you suspect a RAM memory problem, consult a repair technician.
  16791.  
  16792.  
  16793.                                                     TROUBLESHOOTING  383
  16794.   ----------------------------------------------------------------------
  16795.                                      empty
  16796.  
  16797.  
  16798.   384  TROUBLESHOOTING
  16799.   ----------------------------------------------------------------------
  16800.  
  16801.   Printer Double-Spaces Reports Or Labels 
  16802.        Problem: You  print a report  or labels, and  some or all  of the
  16803.        lines  have an extra  space between them,  giving a double-spaced
  16804.        effect. 
  16805.  
  16806.        If  you  have used  File  Express  before  and didn't  have  this
  16807.        problem, try printing another report or label format that usually
  16808.        works.  If other formats work  but this one doesn't, the  problem
  16809.        is in the report definition.  Check the report or label layout to
  16810.        make sure  it is not  wider than your  printer can handle.   If a
  16811.        printer is sent  a longer line than it can print, it will usually
  16812.        "wrap around" the end of the line to a second line,  resulting in
  16813.        a double-spaced  effect.    In this  case,  characters  from  the
  16814.        right-hand edge of the  report may appear in  the left margin  on
  16815.        the second line.   To remedy this problem, shorten  the report or
  16816.        use a larger character-per-inch density to fit the report on  the
  16817.        page. 
  16818.  
  16819.        This  wrap-around  problem often  happens on  labels when  a long
  16820.        field is specified as  the last field on  a line.  This  causes a
  16821.        double-space only on the  offending line.  Add up the  lengths of
  16822.        all the fields  on the line.   If they exceed  the width of  your
  16823.        printer,  use compressed  print, or  shorten the  long field,  or
  16824.        break the data up onto two lines. 
  16825.  
  16826.        Double-spacing can  also occur  if control  codes are  mistakenly
  16827.        sent to  your  printer.   Reset the  printer to  its defaults  by
  16828.        powering it off and back on to  clear any spurious codes.  Verify
  16829.        that   you   didn't  specify   <D>ouble-spacing  on   the  report
  16830.        specification.   If the  double-spacing still  occurs, route  the
  16831.        report to  a disk file and  examine it with your  word processor.
  16832.        If the report  is single-spaced in  the disk  file but comes  out
  16833.        double-spaced on the printer, scan the disk file to  see if there
  16834.        are  any unusual  symbols  or  codes  which shouldn't  be  there.
  16835.        Sometimes  printer control  codes  are  mistakenly  sent  to  the
  16836.        printer by  erroneous formulas.   Sometimes bad  data on  disk is
  16837.        sent to the  printer, and the printer interprets it  as a control
  16838.        code. 
  16839.  
  16840.        If this  problem  occurs  with everything  you  print  with  File
  16841.        Express, and you  are not able to produce  even one single-spaced
  16842.        report, your printer  is probably configured to line  feed when a
  16843.        carriage return  character is  received.   If this  is the  case,
  16844.        either change  the switch  settings on  your printer  or add  the
  16845.        command NO  LINEFEED to  your profile.   (See the  section titled
  16846.        Customizing File  Express for information on  profiles.) Changing
  16847.        the switch setting on  your printer will  make it more  standard,
  16848.        but might  adversely  affect other  software  you use  which  has
  16849.        already been configured for no linefeeds. 
  16850.  
  16851.  
  16852.                                                     TROUBLESHOOTING  385
  16853.   ----------------------------------------------------------------------
  16854.  
  16855.   Report Starts In Middle Of Page 
  16856.        Problem: The first lines of a page are spaced far down the paper,
  16857.        and the detail overlaps  onto the next piece of paper.  Sometimes
  16858.        it occurs  on the first page  of the report, sometimes  after the
  16859.        first page, and sometimes on all pages. 
  16860.  
  16861.        Related Problem: A report  prints OK on the first  page, but then
  16862.        skips a  page and  prints page  2 on  the third  sheet of  paper.
  16863.        Sometimes it occurs  on every page; sometimes only on  one or two
  16864.        pages. 
  16865.  
  16866.        Related Problem:  The last few lines of a  page "jump" an inch or
  16867.        so, and start printing on the top of the next page.   This throws
  16868.        off the spacing of subsequent pages. 
  16869.  
  16870.        Be sure the  paper is positioned  properly when printing  begins.
  16871.        The perforation must be  positioned near the print head,  exactly
  16872.        where you want the title line to print. 
  16873.  
  16874.        Print the report again, this time watching as it begins printing.
  16875.        If the  paper advances  several lines before  printing the  first
  16876.        title line, check for these problems: (1) a large  top margin has
  16877.        inadvertently  been specified  in the  report  specification; (2)
  16878.        form feeds have been specified  in the report specification,  but
  16879.        top-of-form is  not properly  set on  the printer;  (3) the  page
  16880.        length of  66 has been changed,  and no longer reflects  the true
  16881.        page length in lines;  (4) eight lines  per inch were  specified,
  16882.        but  the  page length  was not  changed  to 88;  (5) a  form feed
  16883.        character is being  placed in the body of the report, either by a
  16884.        bad text  formula or  by bad data  on the disk.   The  first four
  16885.        items can be  checked by reviewing the report format.   The fifth
  16886.        item might require that you write the  report to disk and examine
  16887.        it with your word processor. 
  16888.  
  16889.        Another  thing to check is your printer's hardware configuration.
  16890.        If you  use form  feeds, is  the paper  set to  the correct  page
  16891.        height? It's eleven inches for most  paper.  Some printers have a
  16892.        switch for skipping  over the perforation when the  bottom of the
  16893.        page is sensed.   File Express  doesn't know that the  printer is
  16894.        doing its own skip  to the new page, so both the printer and File
  16895.        Express skip a  few lines.  The  result is that the  report moves
  16896.        progressively downward on each successive page, about an inch per
  16897.        page.  Or  if form feeds are  being used, the printer  skips to a
  16898.        new page, then File Express ejects to the next page, resulting in
  16899.        an entire blank page or one  with just a couple lines on it.   To
  16900.        remedy this situation, either change the printer's switches so it
  16901.        doesn't  automatically skip over  the perforation, or  reduce the
  16902.        Lines Per Page in the report format until the problem stops.  You
  16903.        may have to reduce the Lines Per Page to as little as 50. 
  16904.  
  16905.  
  16906.   386  TROUBLESHOOTING
  16907.   ----------------------------------------------------------------------
  16908.                                      empty
  16909.  
  16910.  
  16911.                                                     TROUBLESHOOTING  387
  16912.   ----------------------------------------------------------------------
  16913.  
  16914.   Bad Data Appears On Records 
  16915.        Problem: Some of the fields  on one or more records  have strange
  16916.        characters in them, like musical notes and graphic symbols. 
  16917.  
  16918.        If  your  data   changes  mysteriously,  especially  if   it  has
  16919.        characters in it that you didn't enter, it usually means  a media
  16920.        error or disk error has occurred.  If  the data is on a diskette,
  16921.        the  most likely  cause  is that  the  diskette is  bad.   As  we
  16922.        mentioned  in the  chapter  on backups,  diskettes  do wear  out.
  16923.        Diskette drives need  to be adjusted and cleaned  much more often
  16924.        than hard  disks.  Diskette  errors are even  more likely  if the
  16925.        diskettes are being  used in more than  one computer.  Even  if a
  16926.        diskette drive is badly timed or badly aligned, it can often read
  16927.        the bad  data it writes.   But if the  diskette is then  put into
  16928.        another  diskette drive which  is working  properly, some  of the
  16929.        data may be unreadable.  Worse yet, if the properly aligned drive
  16930.        writes  data  on the  disk,  it  may  become unreadable  on  both
  16931.        computers. 
  16932.  
  16933.        This problem is best solved by prevention: make frequent backups,
  16934.        have  your equipment serviced regularly, and treat diskettes with
  16935.        the utmost respect. 
  16936.  
  16937.        When a media problem occurs, the safest bet is to throw  away the
  16938.        bad diskette and  make a  new diskette using  the data from  your
  16939.        latest backup.   If  you have  no recent  backup, the  process is
  16940.        painstaking (and sometimes fruitless), but do the following: 
  16941.  
  16942.        1.  Immediately put a write-protect tab over the notch on the bad
  16943.        diskette, so  no  data can  be  inadvertently written  to  it  or
  16944.        erased. 
  16945.  
  16946.        2. Use the DOS FORMAT command to format a brand new  diskette, or
  16947.        one which you are certain is of good quality.  Then use the  COPY
  16948.        command (COPY *.*) to copy all the files from the bad diskette to
  16949.        the new  one.   If you aren't  familiar with  COPY, see  your DOS
  16950.        manual. 
  16951.  
  16952.        3. During the COPY process, if any message appears which  prompts
  16953.        "Abort, Retry or  Ignore", or "Abort, Retry, Fail",  press <R> to
  16954.        retry.  If  the message recurs, remove the bad diskette, then put
  16955.        it  back in  the  drive  and press  <R>  again.   (Sometimes  the
  16956.        diskette is not seated  properly.  Removing  it and replacing  it
  16957.        can slightly change  its positioning, and the data  can be read.)
  16958.        If the  message recurs a third time, press  <I> for Ignore or <F>
  16959.        for Fail.   This tells DOS to  go ahead and copy the  bad spot on
  16960.        disk as best it can.  If more errors occur, continue this process
  16961.        until the complete diskette is copied. 
  16962.  
  16963.        4. Start File Express.  Using the new data diskette,  select Find
  16964.        Records, specify  ALL, and  examine each record  in each  file to
  16965.  
  16966.  
  16967.   388  TROUBLESHOOTING
  16968.   ----------------------------------------------------------------------
  16969.  
  16970.        ensure that the  data is intact and that  no information has been
  16971.        lost.  If you had to  reply <I>gnore or <F>ail to the  message in
  16972.        the  previous step, there will definitely be  some bad data on at
  16973.        least one record.  Then rebuild all your indexes.
  16974.  
  16975.        5. As a follow-up,  have your diskette  drives serviced and  make
  16976.        frequent  backups of your data.  Back up data from other programs
  16977.        as well,  not just  your databases.   They are all  vulnerable to
  16978.        disk drive  problems.  Save  all the  backup diskettes.   If your
  16979.        disk  drives  are  malfunctioning, they  can  create  bad backups
  16980.        occasionally  too,  in  which  case  you  need  to  rely  on  the
  16981.        next-most-current backup. 
  16982.  
  16983.        It should be noted  that this recovery process  is not unique  to
  16984.        File Express.   A similar process is necessary  with any software
  16985.        when  a disk  media error  occurs.   Actually,  the File  Express
  16986.        database design makes recovery of at least some of the  data more
  16987.        likely than it might  be with other software products  if a media
  16988.        error occurs. 
  16989.  
  16990.        Media errors are  much less frequent on  hard disks, but they  do
  16991.        occur.   Once  again, if  bad  data starts  appearing,  the  best
  16992.        solution is  to resort  to your backups  and have  the hard  disk
  16993.        drive tested  and serviced  immediately.  If  you have  no recent
  16994.        backup, the  data  recovery process  on  hard disks  is  just  as
  16995.        painful as it is on diskettes: 
  16996.  
  16997.        1. Since you can't put a write-protect tab on your hard disk, the
  16998.        only alternative  is to  not use  the  data and  to be  extremely
  16999.        careful  not to  accidentally erase  the  file or  copy over  it.
  17000.        These instructions assume that  your database is  on drive C  and
  17001.        that the database name is MYDATA. 
  17002.  
  17003.        2.  Using the <Alt-R>  command on the  Open A Database  screen of
  17004.        File Express,  rename  the bad  database,  giving it  a  name  of
  17005.        BADSPOT. 
  17006.  
  17007.        3. From DOS use  the following command to make a  new copy of the
  17008.        data: 
  17009.  
  17010.                                           COPY  C:BADSPOT.*  C:MYDATA.* 
  17011.  
  17012.        During  the COPY  process, if any  message appears  which prompts
  17013.        "Abort, Retry  or Ignore or  Fail", press <R>  to retry.   If the
  17014.        message recurs, press  <R> again.  If the  message recurs a third
  17015.        time, press <I> for Ignore or <F> for Fail.  This tells DOS to go
  17016.        ahead and copy the bad spot on disk as best it can. 
  17017.  
  17018.        Now you have two copies of the  database on your hard disk.   The
  17019.        original one is  called BADSPOT and is still in the same place on
  17020.  
  17021.  
  17022.                                                     TROUBLESHOOTING  389
  17023.   ----------------------------------------------------------------------
  17024.  
  17025.        the disk.  The  new database is  called MYDATA (or whatever  name
  17026.        you gave it) and occupies a new place on disk. 
  17027.  
  17028.        4.  Start File  Express  and  open the  new  file.   Select  Find
  17029.        Records, specify  ALL, and  examine each record  in each  file to
  17030.        ensure that  the data is intact and  that no information has been
  17031.        lost.  If you had  to reply <I>gnore or <F>ail to  the message in
  17032.        the previous step, there will definitely  be some bad data on  at
  17033.        least one record. 
  17034.  
  17035.  
  17036.        5.  As  a follow-up,  have  your  disk  drive serviced  and  make
  17037.        frequent backups  of your data.  Back up data from other programs
  17038.        as well, not  just your  databases.  They  are all vulnerable  to
  17039.        disk drive  problems.  Save  all the  backup diskettes.   If your
  17040.        disk  drives  are  malfunctioning, they  can  create  bad backups
  17041.        occasionally  too,  in  which  case  you  need  to  rely  on  the
  17042.        next-most-current backup. 
  17043.  
  17044.        A user  who was  experiencing disk  errors once  asked us  how we
  17045.        could be  so sure that the problem was  media or hardware and was
  17046.        not something  our program had  done to damage the  diskette.  We
  17047.        have many reasons to be self-assured on this point: (1)  hundreds
  17048.        of thousands  of people  use File Express  every day  without any
  17049.        problems.   (2) the  few people  who contact  us with disk  error
  17050.        messages  typically   discover  hardware   problems  when   their
  17051.        equipment is serviced. (3) our programs do not write data to disk
  17052.        -- DOS writes  data to disk.   We simply  issue high-level  Write
  17053.        commands and  let  Microsoft's C  and DOS  do the  rest.   It  is
  17054.        virtually impossible for a program error in File Express to cause
  17055.        a disk  media error.  The guy  who sold you the  disk drive might
  17056.        try to tell you otherwise.  If so, let him read this chapter. 
  17057.  
  17058.        One more point on media errors: we know from personal  experience
  17059.        that it is frustrating when data is lost.  But if you call us for
  17060.        help, we can tell  you nothing more than this section has already
  17061.        explained. 
  17062.  
  17063.        When a problem occurs with hardware which destroys data, there is
  17064.        little we,  or any other vendor  can do.   It is possible  that a
  17065.        good technical  person  can recover  some  of your  data  from  a
  17066.        damaged disk. 
  17067.  
  17068.  
  17069.   Formula Error Or Bad Result 
  17070.        Problem: A formula on a report or record is not working properly,
  17071.        or can't be entered. 
  17072.  
  17073.        Sometimes a message  is displayed giving  some indication of  the
  17074.        problem.  If there is no message, or if the message doesn't help,
  17075.        check each of the items in this list: 
  17076.  
  17077.  
  17078.   390  TROUBLESHOOTING
  17079.   ----------------------------------------------------------------------
  17080.  
  17081.        1. Verify the spelling  of any field names in the  formula.  They
  17082.        must be  spelled completely,  and exactly as  they appear  on the
  17083.        record.   Try the formula using the field  number with an F, such
  17084.        as F5, instead of the field name. 
  17085.  
  17086.        2. Verify the spelling of function names  and keywords, referring
  17087.        to the  manual for correct  spelling.  A  space is not  permitted
  17088.        between a function name and its left parenthesis. 
  17089.  
  17090.        3. Try enclosing  constant text in  the formula within  quotation
  17091.        marks.  Sometimes constant text is the same as a valid keyword or
  17092.        operator, so the  formula routine doesn't know it  is meant to be
  17093.        text.  Quotation marks explicitly identify it as constant text. 
  17094.  
  17095.        4.  If the formula  contains multiple comparisons,  try a shorter
  17096.        version of it with just one or  two comparisons to try to isolate
  17097.        the problem area. 
  17098.  
  17099.        5. If the formula contains two or  more AND, OR or NOT operators,
  17100.        the problem may be that your logic is not mathematically sound or
  17101.        that parentheses are needed to provide proper precedence. 
  17102.  
  17103.        6. If  the  formula is  returning  the word  ERROR  instead of  a
  17104.        number,   it  contains  a   mathematical  calculation   which  is
  17105.        unacceptable.  For example,  it may be dividing by zero, which is
  17106.        not mathematically possible.  Or the  result may be a huge number
  17107.        which  is  larger  than  the fourteen  digits  File  Express  can
  17108.        accommodate. 
  17109.  
  17110.        7. Be sure the data used in a function meets the  requirements of
  17111.        the  function.   If  the  operand  is  supposed  to be  an  eight
  17112.        character  date, are  the  month, day  and  year valid  two-digit
  17113.        numbers? If the operand is supposed to be a number, is it? 
  17114.  
  17115.        Most formulas can  be written more than  one way.  If  it doesn't
  17116.        work, and the comments above don't help, try a variant of it or a
  17117.        smaller version of it using a  slightly different syntax.  If you
  17118.        can't make it work, see the section titled Reporting Problems  To
  17119.        Expressware. 
  17120.  
  17121.  
  17122.                                                  REPORTING PROBLEMS  391
  17123.   ----------------------------------------------------------------------
  17124.  
  17125.   Reporting Problems To Expressware
  17126.        As  you may  know,  Expressware  provides  technical  support  by
  17127.        telephone and in writing to registered users.  Unlike many  other
  17128.        software companies, there  is no extra  charge for this  service.
  17129.        But like  many other  software companies,  our phones  are always
  17130.        busy.    At least  half  the technical  calls  we receive  can be
  17131.        answered by reading  the manual.  So  please help us to  keep our
  17132.        costs down and keep our phone lines open: look it up first in the
  17133.        manual. 
  17134.  
  17135.        Our tech support number is 206-788-0932.  If your  problem is not
  17136.        urgent, write to us instead of calling.  The problem often  can't
  17137.        be resolved over the phone anyway, since it usually requires that
  17138.        we have a  copy of your database  or report spec to  recreate the
  17139.        problem on our computer.  Send your problem reports to: 
  17140.  
  17141.                          Expressware Corporation
  17142.                          Technical Support Dept.
  17143.                               P.O. Box 1800
  17144.                              Duvall, WA 98019
  17145.                                206-788-0932
  17146.  
  17147.        Include  a diskette  with a  copy  of your  database and  related
  17148.        reports and  labels.   Include  an  explanation of  the  problem,
  17149.        describing how to  make it  recur.  Also  include any reports  or
  17150.        screen dumps which may be useful in researching the problem.  
  17151.        Most importantly, tell  us which version of File  Express you are
  17152.        using and  the date  of the  files.   You can  quickly find  this
  17153.        information while in File Express by pressing <Ctrl-V> to display
  17154.        the Version/Status  Screen.   The  version  number and  date  are
  17155.        displayed on the first line.
  17156.  
  17157.        If you find it  necessary to call  for technical support,  please
  17158.        have all  the information  available.  If  possible, call  from a
  17159.        phone near your computer, in case you need to run File Express to
  17160.        troubleshoot or explain the problem. 
  17161.  
  17162.  
  17163.   392  DISCLAIMER
  17164.   ----------------------------------------------------------------------
  17165.  
  17166.  
  17167.                                Disclaimer 
  17168.  
  17169.  
  17170.        Expressware makes no representation or warranties with respect to
  17171.        the  contents  hereof  and  specifically  disclaims  any  implied
  17172.        warranties of  merchantability  or  fitness  for  any  particular
  17173.        purpose.  File Express  is provided "as  is" without warranty  of
  17174.        any kind, either expressed or implied. 
  17175.  
  17176.        Expressware  shall have no liability or  responsibility to you or
  17177.        any  other person or  entity with respect  to any loss  or damage
  17178.        caused by File Express including, but not limited to, any loss of
  17179.        profits,   interruption   of  service,   loss   of  business   or
  17180.        consequential damages resulting from the use of such programs. 
  17181.  
  17182.        When starting the  use of new software  it is a good  practice to
  17183.        test  the programs with sample  data, and to  run the programs in
  17184.        parallel with any previous system for a period of time sufficient
  17185.        to ensure satisfactory results. 
  17186.  
  17187.        File Express is a trademark owned by Expressware Corporation. 
  17188.  
  17189.  
  17190.                                                            GLOSSARY  393
  17191.   ----------------------------------------------------------------------
  17192.  
  17193.   Appendix A: Glossary of Terms
  17194.  
  17195.  
  17196.        Ascending  sort:   The  process   of  placing   information  into
  17197.        alphabetical or numerical order. 
  17198.  
  17199.        ASCII:  An  industry  standard  for  representing  characters  in
  17200.        computers. 
  17201.  
  17202.        Backup: The process  of copying databases  and other files  which
  17203.        contain important information. 
  17204.  
  17205.        Boot: The process of starting your computer and getting it  ready
  17206.        to accept commands. 
  17207.  
  17208.        Calculated field: A field that is filled in automatically by File
  17209.        Express as a  result of calculations between other  fields in the
  17210.        database file (also called a Formula field). 
  17211.  
  17212.        Character: Usually a letter, numeric digit or space.  A character
  17213.        can  also  be a  special symbol  such as  &, a  foreign character
  17214.        symbol, a  graphic symbol or  a math  symbol.   See the  Advanced
  17215.        Features chapter for a chart. 
  17216.  
  17217.        Cloning: Creating a  new database that is made  up of information
  17218.        taken from an existing file.   In the process you may change  the
  17219.        length of any field, add new fields, delete fields, and rearrange
  17220.        the fields. 
  17221.  
  17222.        Database: A group of records that are related to each other, such
  17223.        as an inventory list or mailing list, which has been entered into
  17224.        the computer so  it can be updated, printed,  sorted and inquired
  17225.        from.  Sometimes called a file. 
  17226.  
  17227.        Descending  Sort: The process of placing information into reverse
  17228.        alphabetical order or in numeric order from highest to lowest. 
  17229.  
  17230.        Default: The answer that is  assumed by the program if you  don't
  17231.        provide an answer. 
  17232.  
  17233.        Default Disk Drive:  The disk drive used  by the computer  if not
  17234.        told to use a specific drive. 
  17235.  
  17236.        DIF   file  format:  A  standard  for  data  interchange  between
  17237.        different programs. 
  17238.  
  17239.        DOS:  The disk operating system that  manages the basic operation
  17240.        of the computer and runs programs. 
  17241.  
  17242.        DOS Prompt: The  "A>" or "C>" prompt that  indicates the computer
  17243.        is ready to accept commands or program names. 
  17244.  
  17245.  
  17246.   394  GLOSSARY
  17247.   ----------------------------------------------------------------------
  17248.  
  17249.        Edit: To change previously entered information.  Sometimes called
  17250.        Updating or Changing. 
  17251.  
  17252.        Embedded  Text: A  string of  characters surrounded  by  a longer
  17253.        string of characters; i.e. "eat" is embedded in "Seattle". 
  17254.  
  17255.        Export: To  copy a File  Express database into  a form usable  by
  17256.        another program, such as a spreadsheet or a mail-merge program. 
  17257.  
  17258.        Field:  A  piece  of  information  consisting   of  a  string  of
  17259.        characters, such as a last name or city or dollar amount. 
  17260.  
  17261.        Filename:  A  string of  up  to  eight  characters plus  a  three
  17262.        character extension used by  the computer to identify a file on a
  17263.        disk. 
  17264.  
  17265.        Format: A template or pattern into which information is placed. 
  17266.  
  17267.        Format a disk: To  prepare a diskette  to store information,  and
  17268.        erase its contents in the process.  FORMAT is a DOS command. 
  17269.  
  17270.        Formula field: A field  that is filled  in automatically by  File
  17271.        Express as a  result of calculations between other  fields in the
  17272.        database file. 
  17273.  
  17274.        Import: To read  information from a file and place it into a File
  17275.        Express database. 
  17276.  
  17277.        Index: A  separate file used  to speed up  searching and make  it
  17278.        possible to present information in sorted order.
  17279.  
  17280.        Label Format: The placement pattern of fields on a mailing label.
  17281.  
  17282.  
  17283.        Mail-merge file:  A file that is  used by a  word processor while
  17284.        printing  automatically generated form letters.  The file usually
  17285.        contains names and addresses. 
  17286.  
  17287.        Mixed  case: A  combination of  upper  and lower  case alphabetic
  17288.        characters. 
  17289.  
  17290.        RAM disk:  A portion of the computer memory  that has been set up
  17291.        to look like a disk drive to  the computer operating system.  The
  17292.        access  to this type of "disk" is very  fast.  It is also subject
  17293.        to immediate erasure  if the electricity goes off.   See VDISK in
  17294.        your DOS manual for more information. 
  17295.  
  17296.        Record: A group  of related fields that are placed  in a database
  17297.        as an  entity.   For  example,  a record  might contain  a  Name,
  17298.        Address, City,  State, Zip code,  Telephone number and  a Comment
  17299.        field. 
  17300.  
  17301.  
  17302.                                                            GLOSSARY  395
  17303.   ----------------------------------------------------------------------
  17304.  
  17305.        Record format: The collective fields that make up each record  of
  17306.        a database.  The  record format must  be specified before  adding
  17307.        information to a database. 
  17308.  
  17309.        Record Number: When File Express saves any record into a database
  17310.        it  assigns  a  unique  record  number  that corresponds  to  the
  17311.        location within the file that the record was placed. 
  17312.  
  17313.        Report Format: The pattern to be used for the placement of fields
  17314.        and formulas when printing a report. 
  17315.  
  17316.        Syntax: The arrangement of field names, functions, keywords, etc.
  17317.        in a formula or comparison. 
  17318.  
  17319.  
  17320.   396  GLOSSARY
  17321.   ----------------------------------------------------------------------
  17322.                                      empty
  17323.  
  17324.  
  17325.                                                         ASCII CHART  397
  17326.   ----------------------------------------------------------------------
  17327.  
  17328.   Appendix B: ASCII Chart
  17329.  
  17330.  
  17331.   398  ASCII CHART
  17332.   ----------------------------------------------------------------------
  17333.                                      empty
  17334.  
  17335.  
  17336.                                                            KEYWORDS  399
  17337.   ----------------------------------------------------------------------
  17338.  
  17339.   Appendix C: Keywords
  17340.  
  17341.                            Text Numeric   Date True/False
  17342.                            ---- --------  ---- ----------
  17343.  
  17344.   Comparitors
  17345.        AFTER                                X
  17346.        BEFORE                               X
  17347.        Comparitors           X      X
  17348.        CONTAINS              X
  17349.        EXACTLY               X
  17350.        SOUNDS LIKE (SL)      X
  17351.  
  17352.  
  17353.   Functions
  17354.        AGE                          X
  17355.        ASC                          X
  17356.        .AVERAGE                     X
  17357.        CENTER                X
  17358.        CHR                   X
  17359.        .COUNT                       X
  17360.        DAYABBV               X
  17361.        DAY                          X
  17362.        DAYNAME               X
  17363.        DBDRIVE               X
  17364.        DBNAME                X
  17365.        DBPATH                X
  17366.        FIRSTLINE                                   X
  17367.        FORMATDATE            X
  17368.        FUTUREDATE            X
  17369.        GRAPH                 X
  17370.        INSTR                        X
  17371.        LEFT                  X
  17372.        LENGTH (LEN)                 X
  17373.        LINE                         X
  17374.        LJUST                 X
  17375.        LOOKUP                X      X
  17376.        LOWER (LCASE)         X
  17377.        LTRIM                 X
  17378.        .MAX                         X
  17379.        MID                   X
  17380.        MILTIME               X
  17381.        .MIN                         X
  17382.        MONTH                        X
  17383.        MONTHNAME             X
  17384.        MONTHABBV             X
  17385.  
  17386.  
  17387.   400  KEYWORDS
  17388.   ----------------------------------------------------------------------
  17389.  
  17390.                            Text Numeric   Date True/False
  17391.                            ---- --------  ---- ---------------
  17392.  
  17393.   Functions (cont')
  17394.        .NBCOUNT                     X
  17395.        .NBSUBCOUNT                  X
  17396.        PAGE                         X
  17397.        .PREV                 X      X
  17398.        PROPER                X
  17399.        RANDOM                       X
  17400.        RECORD NUMBER (F0)           X
  17401.        REPEAT                X
  17402.        REPLACE               X
  17403.        RIGHT                 X
  17404.        RJUST                 X
  17405.        ROUND                        X
  17406.        RTRIM                 X
  17407.        SPACE                 X
  17408.        SPELLOUT              X
  17409.        .SUBAVERAGE                  X
  17410.        .SUBCOUNT                    X
  17411.        .SUBMAX                      X
  17412.        .SUBMIN                      X
  17413.        .SUBTOTAL                    X
  17414.        SUM                          X
  17415.        TIMEDIF                      X
  17416.        TIME                  X
  17417.        TODAY                 X
  17418.        .TOTAL                       X
  17419.        TRIM                  X
  17420.        UPPER (UCASE)         X
  17421.        VALUE (VAL)                  X
  17422.        YEAR                         X
  17423.  
  17424.  
  17425.   Operators
  17426.        & (Concatenate)       X
  17427.        + (Plus)              X      X
  17428.        - (Minus)                    X
  17429.        * (Multiply)                 X
  17430.        / (Divide)                   X
  17431.        ^ (Power of)                 X
  17432.        % (Percentage)               X
  17433.        \ (Mod or Remainder)         X
  17434.        : (THROUGH)           X
  17435.  
  17436.  
  17437.                                                            KEYWORDS  401
  17438.   ----------------------------------------------------------------------
  17439.  
  17440.                            Text Numeric   Date True/False
  17441.                            ---- -------   ---- ---------------
  17442.   Logical Operators
  17443.  
  17444.        AND                   X      X
  17445.        OR                    X      X
  17446.  
  17447.  
  17448.   Statements
  17449.  
  17450.        ADD ONLY
  17451.        BLANKLINE
  17452.        CENTERED
  17453.        COMMAS
  17454.        DOLLAR SIGN  ($)
  17455.        LEFT JUSTIFIED (LJ)
  17456.        MONEY SIGN ($,  ,  )
  17457.        NEWPAGE
  17458.        NO COMMAS
  17459.        NOLINEFEED
  17460.        NOPRINT
  17461.        NO ZEROS
  17462.        OR
  17463.        PARENTHESIS (PARENS)
  17464.        RIGHT JUSTIFIED (RJ)
  17465.        ZEROS
  17466.  
  17467.  
  17468.   402  KEYWORDS
  17469.   ----------------------------------------------------------------------
  17470.                                      empty
  17471.  
  17472.  
  17473.                                                        FILE FORMATS  403
  17474.   ----------------------------------------------------------------------
  17475.  
  17476.   Appendix D: File Formats
  17477.  
  17478.  
  17479.        A database  is stored on disk  in several different files.   Only
  17480.        two of  these  files are  easily  accessible to  a user  and  are
  17481.        described below.
  17482.  
  17483.        Header:  The Header file (database.HDR) holds the basic format of
  17484.        the database.   It  contains the number  of fields,  their names,
  17485.        lengths, types, and  formulas.  Below is  an example of a  simple
  17486.        header file.  Each line has a description to the right.
  17487.  
  17488.             line 1   5Sample database     Version number, description
  17489.             line 2    FILE EXPRESS 5.0    Major version number
  17490.             line 3    3              Number of fields in the database
  17491.  
  17492.             line 4    Lab Fee        Name of the first field
  17493.             line 5    10,5,2              field length, type, decimals
  17494.             line 6                   formula string (if any)
  17495.             line 7                   future use
  17496.             line 8                   future use
  17497.  
  17498.             line 9    Sales Tax      repeat of previous five lines
  17499.             line 10   10,5,2              for each remaining field.
  17500.             line 11   Lab Fee * .05
  17501.             line 12
  17502.             line 13
  17503.  
  17504.             line 14   Balance Due
  17505.             line 15   10,5,2
  17506.             line 16   Lab Fee + Sales Tax
  17507.             line 17
  17508.             line 18
  17509.  
  17510.  
  17511.   404  FILE FORMATS
  17512.   ----------------------------------------------------------------------
  17513.  
  17514.        The name of a field can be up to twelve characters long.
  17515.        Field types are as follows:
  17516.  
  17517.             1 = Character field
  17518.             2 = Text formula field
  17519.             3 = Date field
  17520.             4 = User defined field
  17521.             5 = Numeric field
  17522.             6 = Numeric formula field
  17523.  
  17524.  
  17525.        Data File:  The  Data file (database.DTA)  contains all the  data
  17526.        records in  the database.  The records are stored in fixed length
  17527.        format,  also  known as  a  Random  Access  file, with  an  extra
  17528.        character at  the end  of each  record that  is used  to indicate
  17529.        tagged and deleted records.  Compute the record length by  adding
  17530.        up all the field lengths and adding one for the extra character.
  17531.  
  17532.  
  17533.        David     Berdan         Duvall    WA   98019*Ken McGinnis
  17534.        Duvall    WA   98019*Bill     Gates          Redmond   WA
  17535.        98052*Tom Rice      Seattle   WA   98124*
  17536.  
  17537.        The asterisk  (*) represents  the extra character  at the  end of
  17538.        each record.
  17539.  
  17540.        Other files:  Following are short descriptions of the other files
  17541.        that File Express creates.
  17542.  
  17543.        Index  Files:  There is an index header (database.IXH) containing
  17544.        information  about all  the index  files  (up to  5) having  been
  17545.        created  for  a  given  database.   Each  individual  index  file
  17546.        (database.IX0  -   database.IX6)  contains  the   order  of  that
  17547.        particular index sequence.
  17548.  
  17549.        Painted Screens:   The Views of a database  (up to 10) are stored
  17550.        in database.S0 through database.S9.   The current active  View is
  17551.        stored in the database.SCR file.
  17552.  
  17553.        Macro  Key  Files:     Macro  key  sequences  are   stored  in  a
  17554.        database.KEY file.
  17555.  
  17556.        Label Format  Files:   Label  formats are  stored in  database.L0
  17557.        through database.L99.
  17558.  
  17559.        Report Format Files:   Report formats  are stored in  database.R0
  17560.        through database.R99.
  17561.  
  17562.        Letter Format Files:   Report formats  are stored in  database.D0
  17563.        through database.D99.
  17564.  
  17565.  
  17566.                                                        DATE FORMATS  405
  17567.   ----------------------------------------------------------------------
  17568.  
  17569.   Appendix E: Date Formats
  17570.  
  17571.        The  following date  formats  are  available  in  the  FORMATDATE
  17572.        function.
  17573.  
  17574.  
  17575.        Format #       Style               Example
  17576.        --------       ----------------    -------------------------
  17577.  
  17578.            1          yymmdd              891225
  17579.            2          yyyymmdd            19891225
  17580.            3          yy-mm-dd            89-12-25
  17581.            4          mm-dd-yy            12-25-89
  17582.            5          mm-dd-yyyy          12-25-1989
  17583.            6          dd-mm-yy            25-12-89
  17584.            7          dd-mm-yyyy          25-12-1989
  17585.            8          ddmmyy              251289
  17586.  
  17587.            9          yy/mm/dd            89/12/25
  17588.           10          mm/dd/yy            12/25/89
  17589.           11          mm/dd/yyyy          12/25/1989
  17590.           12          dd/mm/yy            25/12/89
  17591.           13          dd/mm/yyyy          25/12/1989
  17592.  
  17593.           14          mm..m dd, yy        December 25, 89
  17594.           15          mm..m dd, yyyy      December 25, 1989
  17595.           16          mmm dd, yyyy        Dec 25, 1989
  17596.           17          mmm dd, yy          Dec 25, 89
  17597.           18          dd mm..m yy         25 December 89
  17598.           19          dd mm..m yyyy       25 December 1989
  17599.           20          dd mmm yy           25 Dec 89
  17600.           21          dd mmm yyyy         25 Dec 1989
  17601.  
  17602.           22-42 - precede above formats with day of the week
  17603.                  Example:  42 = Monday 25 Dec 1989
  17604.  
  17605.           43-63 - precede formats with day of the week abbrev.
  17606.                  Example:  63 = Mon. 25 Dec 1989
  17607.  
  17608.  
  17609.   406  DATE FORMATS
  17610.   ----------------------------------------------------------------------
  17611.  
  17612.  
  17613.        Format #       Style               Example
  17614.        --------       ----------------    ------------------------------
  17615.  
  17616.           64          yymm                8912
  17617.           65          yy-mm               89-12
  17618.           66          yy/mm               89/12
  17619.           67          yy/mm..m            89/December
  17620.           68          yy-mm..m            89-December
  17621.           69          yy mm..m            89 December
  17622.  
  17623.           70          yyyymm              198912
  17624.           71          yyyy/mm             1989/12
  17625.           72          yyyy-mm             1989-12
  17626.           73          yyyy mm..m          1989 December
  17627.           74          yyyy/mm..m          1989/December
  17628.           75          yyyy-mm..m          1989-December
  17629.  
  17630.           76          mmyy                1289
  17631.           77          mm/yy               12/89
  17632.           78          mm-yy               12-89
  17633.           79          mmyyyy              121989
  17634.           80          mm/yyyy             12/1989
  17635.           81          mm-yyyy             12-1989
  17636.  
  17637.           82          mmm yy              Dec 89
  17638.           83          mmm/yy              Dec/89
  17639.           84          mmm-yy              Dec-89
  17640.           85          mmm yyyy            Dec 1989
  17641.           86          mmm/yyyy            Dec/1989
  17642.           87          mmm-yyyy            Dec-1989
  17643.  
  17644.           88          mm..m yy            December 89
  17645.           89          mm..m/yy            December/89
  17646.           90          mm..m-yy            December-89
  17647.           91          mm..m yyyy          December 1989
  17648.           92          mm..m/yyyy          December/1989
  17649.           93          mm..m-yyyy          December-1989
  17650.  
  17651.  
  17652.                                                             SOUNDEX  407
  17653.   ----------------------------------------------------------------------
  17654.  
  17655.   Appendix F: Sounds Like Routine (Soundex)
  17656.  
  17657.        The Sounds Like search  routine in File  Express looks for  words
  17658.        that sound alike.  By assigning words that sound similar the same
  17659.        code, the routine  can compare alternate spellings of  a word and
  17660.        detect spelling errors.   Each pair  of words to  be compared  is
  17661.        converted to upper case and then assigned a code according to the
  17662.        table below.  If the codes  are the same, the words sound  alike.
  17663.        (Although some hilarious matches sometimes show up).
  17664.  
  17665.        The Soundex routine divides the alphabet into seven groups:
  17666.  
  17667.             Group 1:  AEIOUHWY
  17668.             Group 2:  BFPV
  17669.             Group 3:  CGJKQSXZ
  17670.             Group 4:  DT
  17671.             Group 5:  L
  17672.             Group 6:  MN
  17673.             Group 7:  R
  17674.  
  17675.        Group 1 contains vowels and consonants that are sometimes used as
  17676.        vowels.  The other six groups contain letters that sound alike.
  17677.  
  17678.        Because  vowels  sound  differently  in  combination  with  other
  17679.        letters, the Soundex  routine ignores Group 1.   Because the user
  17680.        is likely  to begin a word  with the correct letter,  the routine
  17681.        copies it to the output.  Double letters are treated as one.  The
  17682.        Soundex routine only works with letters.
  17683.  
  17684.        As  an example, the words Grapple, Gravel, Grappelli, and Grapall
  17685.        would all receive the code G725.
  17686.  
  17687.        The  Soundex routine  does  not work  in  every case.   The  word
  17688.        "tough" doesn't receive the same code as "tuff".  In most  cases,
  17689.        however, the routine provides a simple way to compare words  that
  17690.        sound alike but are spelled differently.
  17691.  
  17692.  
  17693.   408  SOUNDEX
  17694.   ----------------------------------------------------------------------
  17695.                                      empty
  17696.  
  17697.  
  17698.                                            PRINTER DEFINITION FILES  409
  17699.   ----------------------------------------------------------------------
  17700.  
  17701.   Appendix G: Printer Definition Files
  17702.  
  17703.  
  17704.        The  following printer  support  files  are  provided  with  File
  17705.        Express:
  17706.    
  17707.   File Name      Make      Model               Mode
  17708.   ----------------------------------------------------------------------
  17709.  
  17710.   ALPS-1.PDF     ALPS      200/300             Epson/IBM   
  17711.   ALPS-2.PDF     ALPS      P2000G/2100         
  17712.   ALPS-3.PDF     ALPS      Allegro 24          
  17713.   BROTH-1.PDF    BROTHER   M-1724              Diablo Mode     
  17714.   BROTH-2.PDF    BROTHER   M-1724              Epson LQ Mode   
  17715.   BROTH-3.PDF    BROTHER   Twinriter 5         DP Mode         
  17716.   BROTH-4.PDF    BROTHER   M-1709              Mode II         
  17717.   BROTH-5.PDF    BROTHER   M-1724              IBM Proprinter  
  17718.   BROTH-6.PDF    BROTHER   Twinriter 5         WP Mode         
  17719.   BROTH-7.PDF    BROTHER   M-1709              Mode I          
  17720.   BROTH-8.PDF    BROTHER   M-1109              Mode II         
  17721.   BROTH-9.PDF    BROTHER   M-1109              Epson Mode      
  17722.   BROTH-10.PDF   BROTHER   M-1509              Mode I          
  17723.   BROTH-11.PDF   BROTHER   M-1509              Mode II         
  17724.   BUSI-1.PDF     BUSINESSLAND  24LQ            Diablo Mode     
  17725.   BUSI-2.PDF     BUSINESSLAND  45LQ            Qume Mode       
  17726.   CANON-1.PDF    CANON     C-715F
  17727.   CANON-2.PDF    CANON     AP-550        
  17728.   CANON-3.PDF    CANON     A-50                IBM Graphics    
  17729.   CANON-4.PDF    CANON     AP-76               Interface       
  17730.   CANON-5.PDF    CANON     A-40        
  17731.   CANON-6.PDF    CANON     A-60        
  17732.   CANON-7.PDF    CANON     AP-400/92        
  17733.   CANON-8.PDF    CANON     A-50                Epson Mode      
  17734.   CANON-9.PDF    CANON     LBP-8               Series Mode     
  17735.   CANON-10.PDF   CANON     BJ-130        
  17736.   CANON-11.PDF   CANON     BJ-80        
  17737.   CENTR-1.PDF    CENTRONICS                    351  
  17738.   CENTR-2.PDF    CENTRONICS                    737/739      
  17739.   CENTR-3.PDF    CENTRONICS                    353  
  17740.   CITIZ-1.PDF    CITIZEN   MSP-40/45/50/55 IBM Mode
  17741.   CITIZ-2.PDF    CITIZEN   MSP-50/55           Epson EX  
  17742.   CITIZ-3.PDF    CITIZEN   MSP-40/45           Epson FX  
  17743.   CITIZ-4.PDF    CITIZEN   MSP-10/15/20/25    
  17744.   CITIZ-5.PDF    CITIZEN   Premiere 35         Diablo Mode     
  17745.  
  17746.  
  17747.   410  PRINTER DEFINITION FILES
  17748.   ----------------------------------------------------------------------
  17749.  
  17750.   File Name      Make      Model               Mode
  17751.   ----------------------------------------------------------------------
  17752.   CITIZ-6.PDF    CITIZEN   Premiere 35         NEC Mode
  17753.   CITIZ-7.PDF    CITIZEN   Tribute 224         Standard Mode
  17754.   CITIZ-8.PDF    CITIZEN   Tribute 124         Standard Mode
  17755.   CITIZ-9.PDF    CITIZEN   Tribute 124         Diablo Mode
  17756.   CITIZ-10.PDF   CITIZEN   Premiere 35         Qume Mode
  17757.   CITIZ-11.PDF   CITIZEN   180-D               IBM Mode
  17758.   CITIZ-12.PDF   CITIZEN   224                 Diablo Mode
  17759.   CITIZ-13.PDF   CITIZEN                       Epson Mode
  17760.   CITIZ-14.PDF   CITIZEN                       IBM Mode
  17761.   CITIZ-15.PDF   CITIZEN                       Epson Mode
  17762.   DSYWR-1.PDF    DAISYWRITER 1500/2000
  17763.   DATAS-1.PDF    DATASOUTH
  17764.   DATAS-2.PDF    DATASOUTH 220  
  17765.   DATAS-3.PDF    DATASOUTH 120
  17766.   DIABL-1.PDF    DIABLO    630
  17767.   DIABL-2.PDF    DIABLO    1610/1620
  17768.   DICON-1.PDF    DICONIX   150                 Epson Mode
  17769.   DICON-2.PDF    DICONIX   150                 IBM Mode
  17770.   DIGIT-1.PDF    DIGITAL   LA-50
  17771.   DIGIT-2.PDF    DIGITAL   Letterprinter 210
  17772.   DIGIT-3.PDF    DIGITAL   LQP-02/03
  17773.   DIGIT-4.PDF    DIGITAL   LA-120 
  17774.   DIGIT-5.PDF    DIGITAL   LA-75
  17775.   EPSON-1.PDF    EPSON     FX-850/1050         Epson Mode
  17776.   EPSON-2.PDF    EPSON     FX-850/1050         IBM Mode
  17777.   EPSON-3.PDF    EPSON     JX-80
  17778.   EPSON-4.PDF    EPSON     FX-286              IBM Pro Mode
  17779.   EPSON-5.PDF    EPSON     FX-286              Epson Mode
  17780.   EPSON-6.PDF    EPSON     FX-86e/286e         Epson Mode
  17781.   EPSON-7.PDF    EPSON     FX-86e/286e         IBM Pro XL
  17782.   EPSON-8.PDF    EPSON     L-750/L-1000 
  17783.   EPSON-9.PDF    EPSON     LX-80
  17784.   EPSON-10.PDF   EPSON     RX-Series
  17785.   EPSON-11.PDF   EPSON     FX-85/185           IBM Mode
  17786.   EPSON-12.PDF   EPSON     MX 
  17787.   EPSON-13.PDF   EPSON     LQ-Series
  17788.   EPSON-14.PDF   EPSON     LX-86
  17789.   EPSON-15.PDF   EPSON     LX-800/LX-810
  17790.   EPSON-16.PDF   EPSON     T-750
  17791.   EPSON-17.PDF   EPSON     DX-10/DX-20
  17792.   EPSON-18.PDF   EPSON     EX-800              Epson Mode
  17793.  
  17794.  
  17795.                                            PRINTER DEFINITION FILES  411
  17796.   ----------------------------------------------------------------------
  17797.  
  17798.   File Name      Make      Model               Mode
  17799.   ----------------------------------------------------------------------
  17800.   EPSON-19.PDF   EPSON     DFX-5000 
  17801.   EPSON-20.PDF   EPSON     EX-800              IBM Pro 
  17802.   EPSON-21.PDF   EPSON     FX-85/185           Epson Mode
  17803.   EPSON-22.PDF   EPSON     EX-1000             Epson Mode
  17804.   EPSON-23.PDF   EPSON     FX-80/100
  17805.   EPSON-24.PDF   EPSON     EX-1000             IBM Pro Mode
  17806.   FUJIT-1.PDF    FUJITSU   DPL24
  17807.   FUJIT-2.PDF    FUJITSU   DX Series           Epson Mode
  17808.   FUJIT-3.PDF    FUJITSU   DX Series           IBM Pro Mode
  17809.   FUJIT-4.PDF    FUJITSU   DL Series           Native
  17810.   FUJIT-5.PDF    FUJITSU   DPL24
  17811.   GENIC-1.PDF    GENICOM   3014-II/3024-II/3210 84/2
  17812.   GENIC-2.PDF    GENICOM   3184 
  17813.   GENIC-3.PDF    GENICOM   3410 
  17814.   GENIC-4.PDF    GENICOM   3014-II/3024-II     IBM Mode
  17815.   GENIC-5.PDF    GENICOM   3310/3320           ANSI X3 
  17816.   GENIC-6.PDF    GENICOM   3310/3320           IBM Mode
  17817.   GENIC-7.PDF    GENICOM   310/3320            Diablo 630 Mode 
  17818.   HP-1.PDF       HEWLETT-PACKARD LasrJet/LaserJet Plus 
  17819.   HP-2.PDF       HEWLETT-PACKARD DeskJet/DeskJetPlus
  17820.   HP-3.PDF       HEWLETT-PACKARD LaserJet Series II 
  17821.   IBM-1.PDF      IBM       Proprinter 
  17822.   IBM-2.PDF      IBM       Proprinter XL
  17823.   IBM-3.PDF      IBM       Quietwriter
  17824.   IBM-4.PDF      IBM       Graphics 
  17825.   IBM-5.PDF      IBM       Proprinter II
  17826.   IDS-1.PDF      IDS       Prism 80 
  17827.   ITOH-1.PDF     ITOH      C-310/15 XP         IBM Mode
  17828.   ITOH-2.PDF     ITOH      24-LQ               24 LQ Mode
  17829.   ITOH-3.PDF     ITOH      8510                Prowriter 
  17830.   ITOH-4.PDF     ITOH      24-LQ               F10 Mode
  17831.   ITOH-5.PDF     ITOH      F10-40/55           Starwriter
  17832.   ITOH-6.PDF     ITOH      C-310/15 XP         Epson Mode
  17833.   ITOH-7.PDF     ITOH      A10-20P
  17834.   JDL-1.PDF      JDL       850 EWS             Standard Mode 
  17835.   JDL-2.PDF      JDL       850 EWS             IBM Mode
  17836.   JDL-3.PDF      JDL       850 EWS             Epson Mode
  17837.   JUKI-1.PDF     JUKI      6000/6100/6300 
  17838.   MANNE-1.PDF    MANNESMANN-TLY 440
  17839.   MANNE-2.PDF    MANNESMANN-TLY 1612 
  17840.   MANNE-3.PDF    MANNESMANN-TLY Spirit 80
  17841.  
  17842.  
  17843.   412  PRINTER DEFINITION FILES
  17844.   ----------------------------------------------------------------------
  17845.  
  17846.   File Name      Make      Model               Mode
  17847.   ----------------------------------------------------------------------
  17848.   MANNE-4.PDF    MANNESMANN-TLY 160            180 
  17849.   MANNE-5.PDF    MANNESMANN-TLY 85/86          Epson Mode
  17850.   MANNE-6.PDF    MANNESMANN-TLY 87/88          IBM Mode
  17851.   MANNE-7.PDF    MANNESMANN-TLY 85/86          IBM Mode
  17852.   MANNE-8.PDF    MANNESMANN-TLY 87/88          Epson Mode
  17853.   NEC-1.PDF      NEC       5530                7730
  17854.   NEC-2.PDF      NEC       8023A
  17855.   NEC-3.PDF      NEC       8027A
  17856.   NEC-4.PDF      NEC       8835 
  17857.   NEC-5.PDF      NEC       5515                5525
  17858.   NEC-6.PDF      NEC       8025A
  17859.   NEC-7.PDF      NEC       2050                3550
  17860.   NEC-8.PDF      NEC       2010                3510-20 
  17861.   NEC-9.PDF      NEC       Elf 350
  17862.   NEC-10.PDF     NEC       2015                3515-25 
  17863.   NEC-11.PDF     NEC       2030                3530
  17864.   NEC-12.PDF     NEC       3500R
  17865.   NEC-13.PDF     NEC       5510                5520
  17866.   NEC-14.PDF     NEC       Elf 360
  17867.   NEC-15.PDF     NEC       P960                Epson Mode
  17868.   NEC-16.PDF     NEC       P965                Diablo Mode 
  17869.   NEC-17.PDF     NEC       P2200
  17870.   NEC-18.PD      NEC       P5200/P5300
  17871.   NEC-19.PDF     NEC       P565                P665
  17872.   NEC-20.PDF     NEC       PC-PR103A/PC-PR105A
  17873.   NEC-21.PDF     NEC       P560                P660
  17874.   NEC-22.PDF     NEC       P2/P3 6302          6307 Mods 
  17875.   NEC-23.PDF     NEC       P2/P3 6303          6306 Mods 
  17876.   NEC-24.PDF     NEC       P530                P535
  17877.   OKIDA-0.PDF    OKIDATA
  17878.   OKIDA-1.PDF    OKIDATA   393
  17879.   OKIDA-2.PDF    OKIDATA   390/391             Epson LQ Mode 
  17880.   OKIDA-3.PDF    OKIDATA   393C 
  17881.   OKIDA-4.PDF    OKIDATA   390/391             IBM Proprinter
  17882.   OKIDA-5.PDF    OKIDATA   Pacemark 2410       Standard
  17883.   OKIDA-6.PDF    OKIDATA   320/321             Standard
  17884.   OKIDA-7.PDF    OKIDATA   w/OK-writer ROM
  17885.   OKIDA-8.PDF    OKIDATA   Pacemark 2410       IBM Compatible
  17886.   OKIDA-9.PDF    OKIDATA   Pacemark 2350
  17887.   OKIDA-10.PDF   OKIDATA   Okimate 20 
  17888.   OKIDA-11.PDF   OKIDATA   320/321             IBM Compatible
  17889.  
  17890.  
  17891.                                            PRINTER DEFINITION FILES  413
  17892.   ----------------------------------------------------------------------
  17893.  
  17894.   File Name      Make      Model               Mode
  17895.   ----------------------------------------------------------------------
  17896.   OKIDA-12.PDF   OKIDATA   92/93               Standard Mode 
  17897.   OKIDA-13.PDF   OKIDATA   84                  Standard Mode 
  17898.   OKIDA-14.PDF   OKIDATA   82A/83A
  17899.   OKIDA-15.PDF   OKIDATA   292/293             IBM Compatible
  17900.   OKIDA-16.PDF   OKIDATA   92/93               IBM Compatible
  17901.   OKIDA-17.PDF   OKIDATA   84                  IBM Compatible
  17902.   OKIDA-18.PDF   OKIDATA   182                 Standard Mode 
  17903.   OKIDA-19.PDF   OKIDATA   292/293             Standard Mode 
  17904.   OKIDA-20.PDF   OKIDATA   192/193             IBM Compatible
  17905.   OKIDA-21.PDF   OKIDATA   192/193             Standard Mode 
  17906.   PANAS-1.PDF    PANASONIC KX-P1524            Epson LQ Mode 
  17907.   PANAS-2.PDF    PANASONIC KX-P1524            IBM Mode
  17908.   PANAS-3.PDF    PANASONIC KX-P1524            Diablo Mode 
  17909.   PANAS-4.PDF    PANASONIC KX-P1191            Standard Mode 
  17910.   PANAS-5.PDF    PANASONIC KX-P1592            Standard Mode 
  17911.   PANAS-6.PDF    PANASONIC KX-P1180            IBM Pro Mode
  17912.   PANAS-7.PDF    PANASONIC KX-P1191            IBM Mode
  17913.   PANAS-8.PDF    PANASONIC KX-P3151 
  17914.   PANAS-9.PDF    PANASONIC KX-P1092            Standard Mode 
  17915.   PANAS-10.PDF   PANASONIC KX-P1180            Standard Mode 
  17916.   PANAS-11.PDF   PANASONIC KX-P3131 
  17917.   PANAS-12.PDF   PANASONIC KX-P1595            IBM Mode
  17918.   PANAS-13.PDF   PANASONIC KX-P1595            Diablo 630 Mode 
  17919.   PANAS-14.PDF   PANASONIC KX-P1595            Standard Mode 
  17920.   PANAS-15.PDF   PANASONIC KX-P1592            IBM Mode
  17921.   PANAS-16.PDF   PANASONIC KX-P1091i           Standard Mode 
  17922.   PANAS-17.PDF   PANASONIC KX-P1091 
  17923.   PANAS-18.PDF   PANASONIC KX-P1080 
  17924.   PANAS-19.PDF   PANASONIC KX-P1090 
  17925.   PANAS-20.PDF   PANASONIC KX-P1080i           IBM Mode
  17926.   PANAS-21.PDF   PANASONIC KX-P1080i           Standard Mode 
  17927.   PANAS-22.PDF   PANASONIC KX-P1091i           IBM Pro Mode
  17928.   PANAS-23.PDF   PANASONIC KX-P1092            IBM Mode
  17929.   PANAS-24.PDF   PANASONIC KX-P1093            IBM Mode
  17930.   PANAS-25.PDF   PANASONIC KX-P1124            Epson LQ Mode 
  17931.   PANAS-26.PDF   PANASONIC KX-P1093            Standard Mode 
  17932.   PANAS-27.PDF   PANASONIC KX-P1092i           IBM Pro Mode
  17933.   PANAS-28.PDF   PANASONIC KX-P1092i           Standard Mode 
  17934.   PANAS-29.PDF   PANASONIC KX-P1124            IBM Pro Mode
  17935.   QUME-1.PDF     QUME      Sprint 
  17936.   QUME-2.PDF     QUME      Letterpro 20 
  17937.  
  17938.  
  17939.   414  PRINTER DEFINITION FILES
  17940.   ----------------------------------------------------------------------
  17941.  
  17942.   File Name      Make      Model               Mode
  17943.   ----------------------------------------------------------------------
  17944.   RS-1.PDF       RADIO SHACK
  17945.   RS-2.PDF       RADIO SHACK
  17946.   RS-3.PDF       RADIO SHACK DWP-220
  17947.   RS-4.PDF       RADIO SHACK DWP-230           IBM Mode 
  17948.   RS-5.PDF       RADIO SHACK DWP-210
  17949.   RS-6.PDF       RADIO SHACK DMP-2200          Tandy Mode
  17950.   RS-7.PDF       RADIO SHACK DMP-2200          IBM Mode
  17951.   RS-8.PDF       RADIO SHACK DWP-230           Tandy Mode
  17952.   RS-9.PDF       RADIO SHACK DMP-2100P/2110 
  17953.   RS-10.PDF      RADIO SHACK DWP-1120 
  17954.   RS-11.PDF      RADIO SHACK DWP-520           Tandy Mode
  17955.   RS-12.PDF      RADIO SHACK DWP-520           IBM Mode
  17956.   RS-13.PDF      RADIO SHACK Line Printer VIII
  17957.   RS-14.PDF      RADIO SHACK Lineprinter V
  17958.   RS-15.PDF      RADIO SHACK DMP-120
  17959.   RS-16.PDF      RADIO SHACK DMP-106           Tandy Mode
  17960.   RS-17.PDF      RADIO SHACK DMP-110
  17961.   RS-18.PDF      RADIO SHACK DMP-106           IBM Mode
  17962.   RS-19.PDF      RADIO SHACK DMP-105
  17963.   RS-20.PDF      RADIO SHACK DMP-2100/2120
  17964.   RS-21.PDF      RADIO SHACK Daisy Printer II 
  17965.   RS-22.PDF      RADIO SHACK DMP-200
  17966.   RS-23.PDF      RADIO SHACK DMP-2100/2120     IBM Mode
  17967.   RS-24.PDF      RADIO SHACK DMP-500 
  17968.   RS-25.PDF      RADIO SHACK DMP-430/440       Tandy Mode
  17969.   RS-26.PDF      RADIO SHACK DMP-430/440       IBM Mode
  17970.   SEIKO-1.PDF    SEIKOSHA  SL-80AI             Standard Mode 
  17971.   SEIKO-2.PDF    SEIKOSHA  SP-1000
  17972.   SEIKO-3.PDF    SEIKOSHA  SL-80AI             IBM Mode
  17973.   SEIKO-4.PDF    SEIKOSHA  GP-7000
  17974.   SILVE-1.PDF    SILVER REED EXP 770
  17975.   SILVE-2.PDF    SILVER REED EXP 400
  17976.   SILVE-3.PDF    SILVER REED EXP 500/550
  17977.   SMITH-1.PDF    SMITH CORONA D-200/D-300
  17978.   STAR-1.PDF     STAR MICRONICS
  17979.   STAR-2.PDF     STAR MICRONICS SB-10
  17980.   STAR-3.PDF     STAR MICRONICS SD-10/15       IBM Mode
  17981.   STAR-4.PDF     STAR MICRONICS NX-2400        Standard Mode 
  17982.   STAR-5.PDF     STAR MICRONICS NX-2400        IBM Mode
  17983.   STAR-6.PDF     STAR MICRONICS SG-10/15       Star Mode 
  17984.   STAR-7.PDF     STAR MICRONICS NX-1000        Standard Mode 
  17985.  
  17986.  
  17987.                                            PRINTER DEFINITION FILES  415
  17988.   ----------------------------------------------------------------------
  17989.  
  17990.   File Name      Make      Model               Mode
  17991.   ----------------------------------------------------------------------
  17992.   STAR-8.PDF     STAR MICRONICS SR-10/15       Star Mode 
  17993.   STAR-9.PDF     STAR MICRONICS SR-10/15       IBM Mode
  17994.   STAR-10.PDF    STAR MICRONICS SG-10/15       IBM Mode
  17995.   STAR-11.PDF    STAR MICRONICS SD-10/15       Star Mode 
  17996.   STAR-12.PDF    STAR MICRONICS NX-10
  17997.   STAR-13.PDF    STAR MICRONICS LV-1210/1215 
  17998.   STAR-14.PDF    STAR MICRONICS Gemini 10X PC
  17999.   STAR-15.PDF    STAR MICRONICS Gemini 10X 
  18000.   STAR-16.PDF    STAR MICRONICS NX-1000        IBM Mode
  18001.   STAR-17.PDF    STAR MICRONICS LV-1615
  18002.   STAR-18.PDF    STAR MICRONICS Delta          Radix 
  18003.   STAR-19.PDF    STAR MICRONICS NP-10
  18004.   STAR-20.PDF    STAR MICRONICS NB 24-10/15    Standard Mode 
  18005.   STAR-21.PDF    STAR MICRONICS NB 24-10/15    IBM Mode
  18006.   STAR-22.PDF    STAR MICRONICS NB-15
  18007.   TI-1.PDF       TEXAS INSTRU 855
  18008.   TOSHI-1.PDF    TOSHIBA   P351SX              IBM Pro Mode
  18009.   TOSHI-2.PDF    TOSHIBA   P351SX              Diablo Mode 
  18010.   TOSHI-3.PDF    TOSHIBA   P351SX              Qume Mode 
  18011.   TOSHI-4.PDF    TOSHIBA   P351SX              Epson JX-80 
  18012.   TOSHI-5.PDF    TOSHIBA   P1350/P1351
  18013.   TOSHI-6.PDF    TOSHIBA   P351/P351C          Qume Mode 
  18014.   TOSHI-7.PDF    TOSHIBA   TH-2100H 
  18015.   TOSHI-8.PDF    TOSHIBA   P1340
  18016.   TOSHI-9.PDF    TOSHIBA   321                 IBM Pro Mode
  18017.   TOSHI-10.PDF   TOSHIBA   321                 Qume Mode 
  18018.   TOSHI-11.PDF   TOSHIBA   321                 Epson JX-80 Mode
  18019.   TOSHI-12.PDF   TOSHIBA   321SL               IBM Pro Mode
  18020.   TOSHI-13.PDF   TOSHIBA   321SL               Toshiba Mode
  18021.   TOSHI-14.PDF   TOSHIBA   341e 
  18022.   TOSHI-15.PDF   TOSHIBA   341
  18023.   TOSHI-16.PDF   TOSHIBA   P351/P351C          IBM Mode
  18024.   TOSHI-17.PDF   TOSHIBA   321                 Diablo Mode 
  18025.  
  18026.