Abri Technologies GenSel form freebie utility.
----------------------------------------------------------------
Author: Paul Lee - Abri Technologies, www.abri.com
----------------------------------------------------------------
What is it?
Generic alias() Display-Edit/RecordSelection form - auto field width
selection, etc. used with tables, cursors and views up to 10 fields
wide. Form displays the alias columns selected in CodeString and
leaves the record position on the selection.
--------------------------------------------

What is it?
A generic selection or input utility based on a table or cursor.

USAGE: DO FORM GenSel WITH StringParam, [[OptionalTopLabel1], [WidthFactor]] TO YourVar

*** YourVar simply returns 'RecordSelectionMade' for Select/OK button and empty string '' for the Exit/Cancel button

*** StringParam is of form:
ModString|FormTitle|DisplayAlias|FinishAlias|FieldName1, FieldName2,...|ColumnCaption1, ColumnCaption2,...

* ModSTring can have all or none of " U E ECANCEL A D S SOK VIEW TAGSORT HLPfilename DISABLE READONLY 1 2 3 4 ... U1 U2 U3..."
=> U E A D S includes the: Undo Edit, Add, Delete, Select buttons - otherwise not included - Exit/Cancel is always included
If SOK is included instead of S then "Select" button caption is changed to "OK"
If ECANCEL is included instead of E the "Exit" button caption is changed to "Cancel"
=> Include VIEW when using Views - cannot set buffering property (no Undo button)
=> TAGSORT allows sorting on column if it has a corresponding
   index TAG == same as field name by simply clicking on the column header.
=> HLPfilename: filename includes name of text file to display for help/hints
   if HLPfilename is missing then the help button is not visible
=> DISABLE disables all fields - except numeric specified ones below
=> READONLY makes all fields readnly - except the numeric specified ones (next line)
=> 1 2 3 ... indicates which columns are to be accessible for edit - even if DISABLE or READONLY is used
=> U1 U2 U3 ... indicates that fields 1 2 3 are to be formated in upper case
-- Example:

* Title is simply the Form title

* DisplayAlias is the alias for the display grid.

* FinishAlias is alias you want to switch to after user exits form.
  It can be the same as DisplayAlias

*** OptionalTopLabel is an instruction string diplayed above the display grid

*** WidthFactor is a fraction to modify the field column widths by if automatic sizing is not satisfactory
    For example 1.6 WidthFactor will make all columns 60% wider, while 0.5 will make them half
    the default.

Example usage:
DO FORM GenSel with "E A D S READONLY 4 U4|Client Selection|Clients|Clients|ClientNum, Name, PhoneNum, Prefs|Client Number, Name, Phone #, Preferences" to DoneString

-- NOTE: GenSel does not have GOOF checking. You must have CORRECT parameter arrangement,
   a real alias(), fields, etc.