|
|
 |
| Initial Situation |
We needed to provide an
easy-to-use tool for Land Departments of Oil & Gas Exploration
companies in order to help manage the massive amounts of information
specific to the numerous leases and contracts they own. This
information includes acreage data, important dates, special
provisions, special obligations, working interests, interest
conveyances, mineral ownerships, acreage, payment obligations, and
more. Graphical display of the land tracts as well as document imaging
were also required in order to illustrate critical land information.
In many instances, the oil company
owns a partial interest in the lease. Various other
"participants" need to be notified and questioned regarding
future operations. Reports including real-time acreage positions and
special obligations must be generated on a regular basis and forwarded
to a number of individuals for their recommendations. |
| Description of the Solution
|
We developed Visual
LandPro (VLP), a Visual FoxPro 9.0 based application. VLP provides
flexible access to land information, maps, and document images. It is
a multi-user, multi-company application, that follows a
document-oriented approach. This means that every entity (like leases,
addresses,…) is seen as a document.
To open or create a document, we use an approach
similar to Office97 by displaying a open/new dialog box that shows all
the different kinds of documents and templates. Templates (forms) may
be edited by the user. Most recent documents can be easily accessed.
Also, the user can specify favorites in a similar fashion as on the
internet.
VLP has two different views to documents: The list
view and the data entry view. The list view is a customizable grid
associated with powerful filtering features: an enhanced
query-by-example filter and a simpler fill-in-the-blank filter
mechanism. We also provide a powerful filter wizard that allows to
create any kind of filter. These filters can also be saved and
reapplied.
The data entry view is used to look up details and
to edit data. Multiple instances of the same record can be viewed
simultaneously. To navigate, the data entry view and the list view can
be synchronized. Every record can have attached binary documents. An
attached document can be an image, a Word document, an Excel
spreadsheet, an internet document, or any kind of embedded OLE object.
A very important part of VLP is the
print engine. VLP has a variety of report wizards that create FRX
files. To do so, it uses Report
Definition Objects and Visual GenRepoX. In addition to predefined
reports and report wizards, VLP has a powerful feature we call
"snapshots" – reports which look similar to list grids.
The user can simply modify the grid (drag or resize columns), apply
filters and click on the print button to create a new report according
to that grid. The new report can be saved and modified later on.
Other standard reports are based on complex business
logic, especially when it comes to three-dimensional acreage
calculations.
Another important part of VLP98 is the graphical
representation of the various land records. We accomplished that by
creating our own mapping ActiveX control (Baseline USA).
The internet is very important for VLP. We make
extensive use of the Internet Explorer ActiveX control. We use this
control to provide an Active Desktop that the user can modify as
needed. We use the new Dynamic HTML features to add dynamic content to
our Active Desktop. For example, the Active Desktop shows all the
defined favorites. Using the Active Desktop, we got rid of a huge
amount of useless white-space and turned it into a highly effective
and customizable desktop.
We also use the IE4 ActiveX control to display data
in a nice way, and to provide online support and more.
VLP uses a three-tiered architecture to guarantee
flexibility and maintainability. VLP borrows ideas from the Smalltalk
community and makes use of a Model-View-Controller-like architecture.
It also uses data objects rather then accessing views or tables
directly. This allows us to switch data sources very easily since only
one set of objects is the mediator between the data and the behavior
and interface objects. These data objects can be sent easily across
OLE connections.
The three-tiered approach was important to move VLP
to the web. Also, we support various data sources like FoxPro DBFs,
SQL Server, and more. Using data objects, we are also able to support
incompatible data sources (i.e. an address table from another
application). |
| Business Benefits |
| VLP provides total integration between Land Management, Mapping, and
Document Imaging. This results in increased productivity, decreased
land management costs, and instant access to complex land issues.
Virtually any type of lease, deed, or contract can be maintained with
this easy-to-use product. VLP improves workflow, reduces duplication
of effort, and is transportable into various platforms. |
| Why Visual FoxPro was chosen |
| Speed, reliability,
object-orientation, and sequel-server functionality. We plan to move
VLP to the Internet and to MTS based architecture. |
| Development Challenges and how they were overcome |
- Incorporate different business aspects of land
management issues, including documents, maps, technical data, owner
data, lease descriptions, ownership issues, acreage issues, mineral
rights by depth, and ownership conveyance issues. VFP allowed us to
integrate all the different business aspects (applications) required
to have a complete understanding of these land management issues
through ActiveX controls, browser interface, and three-tiered
design.
- Document templates. We needed a feature that
allowed the user to customize the data entry forms and list views.
We accomplished this by creating VFP class libraries on the fly.
To create those classes, we provide a special template editor
which is used to modify entry forms (business objects), list
views, and reports. The open and new dialogs simply scan through
the class libraries and display all the libraries the user created
(plus the default ones).
- Flexibility on the back end (data-tier). We use a
three-tiered architecture, with FoxPro forms without visible
objects to specify data environments (VFP5 does not support
DataEnvironment classes). The interface is later instantiated on
the fly. One business object may be instantiated in different
forms, giving us data flexibility
- Allow end-users to create reports. We created an
Object-Oriented FRX-creation engine we use in all report wizards
and snapshots.
- Handling Binary documents. These are usually
scanned graphic images. They may be anywhere on the network, or on
CD-Roms. The major problem was different workstation drive
mappings. VLP handles different drive mappings automatically.
- Handling complex grids and filters in a generic
fashion. List views are built on the fly. All the columns in grids
are subclasses of regular column classes. They handle resorting
(and alike) automatically. Grids are configured using a couple of
properties and a builder. These properties also configure the
fill-in-the-blank filters automatically. The generic filter
wizards gather information from the database or model-objects
automatically.
- Making the primary features and functions
generic. Simple reusability in this project and others was very
important. Using the Visual FoxPro class structures and Microsoft
Visual Modeler were important in achieving this goal.
- GENDBC could not handle complex databases. We
wrote a OO GenDBC-like class which creates and maintains complex
databases. The class is maintained automatically by a builder we
created.
|
| Future Plans |
| Supporting MTS, Web version of
the full product, offline views, printing reports in Word and Excel
format. |
|
|