The XFormDBF application is built upon and integrated with a number of
general purpose components of SpaceTime Systems' VFPUtils library. Here is
a brief summary of these related generic modules:
- Commander
- A general purpose facility for dynamically defining and executing
table-driven pseudo-functions, based on a meta-file
of function definitions. This is actually an underlying component of
the Saver mechanism. Form configurations are
saved by generating a Commander-based function definition, whose later
execution is used to restore the previous state.
- ErrHandler
- Classes and functions for support of VFP error-handling features.
The main form is derived from the generic ErrHForm class, which gives it a
number of "ehp_" properties and "ehm_" methods.
This mechanism is used to support a way of returning
detailed error information, as well as providing extensive error
detection, reporting, and diagnostic capabilities.
- Saver
- A class library and accompanying dialog forms for supporting state-saving
and restoration features, which are covered by the Config
Page. When a form's state or "configuration" is
saved, a Commander-based state-restoration function is generated and stored in
a "meta-file".
The execution of a such a state restoration function returns an object to its
previous state. An unlimited number of different
configurations can be stored in one or more meta-files. A
configuration consists of all the user-settable parameters of an object,
e.g. window sizing and placement, but not including the contents of external files or tables that may be referenced
by the object's properties.
- SplitCon
- A general purpose class library for supporting split containers and
splitter bars. This is used in both Saver's Switch
To... dialog and the Fields page of XFormDBF.
In addition to the preceding subsystems, the following self-contained utility
functions are useful to XFormDBF:
- cmdprg.prg
- generic UDF to generate/compile/run/cleanup a PRG. XFormDBF uses
this for optimization of its runtime processing logic, unless you select the
Don't Optimize option.
- cmdrclon.prg
- a Commander-related utility UDF for cloning meta-file based
function definitions. Since XFormDBF's saved configurations are
represented as Commander functions, this utility can be used to clone
template configurations from a separate meta-file reserved specifically for
this purpose.
- denull.prg
- generic UDF to remove all NULL values from a given table. This may
be useful for pre-processing of input files before invoking XFormDBF.
Otherwise, you may have to complicate mappings in order to handle NULL
values without errors. Note that outer joins in SQL queries can
introduce NULLs even though none of the underlying tables support
them. Use of denull.prg can greatly simplify such problems and speed
up processing.
- docmd.prg
- generic UDF to execute multiple VFP command lines in a single step.
This is a handy way to create tiny VFP "programs" without having
to create a true .PRG and compile it into an .FXP file. In XFormDBF,
this can be used to construct simple initialization
and cleanup expressions, for example.
- getx.prg
- generic UDF wrapper for VFP's GETEXPR command. Used by XFormDBF to
obtain a new mapping expression when you double-click on an entry in the
list of output field mappings. (Note that this function does not
eliminate VFP's spurious validation errors when an expression contains a UDF.)
- ifcmd.prg
- generic UDF for conditional execution of VFP command lines. This is
similar to the docmd() function, but it adds support of
a simple IF...THEN...ELSE... capability. In XFormDBF, this can be used
to construct simple initialization and cleanup
expressions.
- possave/posrest.prg
- generic UDFs for saving and restoring a record position in a VFP
workspace. These are used in numerous places throughout SpaceTime's
VFPUtils. (Such a feature really should have been built into VFP.)
- usetable.prg
- generic UDF wrapper for VFP's USE command. This provides a more
convenient function interface, returning a success flag result to indicate whether opening was successful.
In XFormDBF, this can be used to construct simple initialization
and cleanup expressions.
Copyright © 2000 - 2002, SpaceTime Systems