My Stuff

I create a lot of software for use in development. Some of it I give away, and some, because it represents a significant investment in time and effort, is available in other ways. Some, like xCase2VPM, are sold products. Some, like products still in development, are given away with relevant trainging courses.. That is, those who take the training receive instruction on using the software, support in using it, and a license to use it freely in their work. The license does not give the user the freedom to give it to other developers to use: they must take the training, or if in the same company as a developer who has taken the training, be covered by a support contract. Those on a support contract also receive continuing updates and all new software, of course.

Here's some free stuff, and a list of non-free software I've created.

Free Stuff

Name File Features
SubClass_VPM subclass_vpm_psp.prg Creates one or more intermediate subclasses between VPM* and PRO* in your application, or optionally for the VPM PRO* classes. Preserves existing classes in intermediate classlibs. Controllable by #DEFINEs in program. Based on work by Markus Winhard and Frank Camp, but does not implement "pathless" sub-classing (initial testing was disastrous <s>). There are routines called in this program that you will have to write yourself (acolscan() will be in VFP7), and code that integrates with the Source Control Kit you will probably want to strip out.
AddZIP zipup.prg, ziplist.prg Demo's use of AddZIP, by showing how to bundle all files in a PJX with a single command. A TIP shows how to use VPMCOM.DLL to hook AddZIP when viewing a listing.
Candidate Keys candykeymsg.prg Changes to form_toolbar.save, combined with this prg, and a particular method of defining the candidate key in VFP (taken care of you if you use xCase2VPM), allows the user-friendly use of candidate keys in your application.
TBCLSBRW tbclsbrw.zip The Class Browser is your friend. <s> Unzip this somewhere in your development path, and you will have the Class Browser available on your development toolbar. Not only that, but you will have 3 different options (previous classlib, previous class, find file) depending on whether you click the toolbar icon using the shift and ctrl keys or not. The code illustrates how to create addins for the Class Browser. A shameless advertisement for the Advanced VFP/VPM Online Training course, of course. <g>

Non-Free Stuff

Name File Features
xCase2VPM xc2vpm.exe Now a commercial product, available via the ProMatrix web site. Slices, dices, and chops your data structure.
ctListBar Wizard ctLBWiz.APP Demo's and facilites use of ctListBar in applications.
sfQuery Link stonefield.vcx Drop-on class fills in Stonefield Query with VPM DD information on-the-fly. To be implemented: use with filter method in VPM.
ctTree Drag-and-Drop dbi_tech.vcx Fixes drag-and-drop bug in ctTree in VFP, allowing within-tree DnD.
VPM DD Library manager_h.vcx Access the VPM DD through method calls in development and at runtime without disturbing the current data environment.
xCase DD Library manager_h.vcx Access the xCase DD through method calls in development (and atruntime if desired).
txtSmartDate pspctrls.vcx Date control works with date, datetime, and string controlsources, bound or unbound; has associated dropdown calendar, works with or without it. Smart formatting, smart keyboard shortcuts.
txtSmartTime pspctrls.vcx The time control to work with txtSmartDate. Under development: spnSmartTime, for mouse addicts.
1:M Mover cmdGoMover (pspctrls.vcx) Drop-on command button (with mover image, no text) adds the Mover form to the Many part of a 1:M form where there is a defined set from which to choose. This allows ordering of the Many side, as well as selection from a set.
cblPickDir pspctrls.vcx Picks a directory, utilizing combobox control.
cblPickFile pspctrls.vcx Picks a file, utilizing combobox control.
cblPKPicker pspctrls.vcx Moves the record pointer in any alias you select; includes a builder to work with the s<app>dmvu entries created for you by xCase2VPM. Very handy for filtering a form where you don't want to emphasize this alias(), and a combo selector will work because there aren't that many choices.
grdRefresh pspctrls.vcx End refresh problems on related pagreframe while commenting out the .updatepages method, thus eliminating all those cumbersome refreshes.
grdMoverRecord pspctrls.vcx Works with txtGridOrder_h to allow numeric entry reordering of a grid_toolbar. Grids are difficult to
JS Engine jsengine.js Javascript engine that interacts with xWorks backend to move data from/to web pages without manual programming.
xWorks Engine xmain.prg and associated prgs Facilitates use of xWorks in quickly (both in programming time and run time) moving application data to and from web pages. This is superceded by ProSysPlus Server Pages, from which PSP evolved.
Utility Prgs programs\*.prg Multiple prgs to accomplish utility tasks, such as concatenating an array into a val_data style list and the opposite; writing the object path as a thisform... reference; determining the number of decimals and places in a numeric expression; etc, etc.
CRW Class crw.vcx, associated prg and form class Custom object that facilitates use of Crystal Reports, including previewing within a VFP window inside _screen.
Word Class worduse.vcx Custom object that facilitates use of Word integrated with VPM. To be implemented: automagic mailmerge based on current VPM ISA and temporary relations.


Last Updated: Saturday, January 15, 2000 - 23:00. EST
©2000 Professional Systems Plus (ProSysPlus). All rights reserved.
To ask questions regarding this page please contact webmaster@prosysplus.com