Peter, what a good idea. I should write an article for FoxPro advisor about data-driven technology.
I build a medium/large system for Bank of America Texas totally in FoxPro for Windows 2.6a. The data stored in the files determined what was done. It also had the ability (the user loved this) for the user to use the expression builder (thanks Jim Booth for revealing an easy way to validate the returned expressions) to select/generate actual FoxPro code to dynamically select data to export to subsystems. After the system was built, the user modified the tables and then re-exported data. I even allowed them to do "joins" on the fly, and select the indexes to sort data on, etc. etc.
A lot of the data was loaded into arrays that were updated as new rows were added to tables. It was a joy to design/architect/construct but unfortuanately now BOA is being acquired by NationsBank so the system will probably fade away.
Anyhow, the days of program code changes being required to change a system's logic path and actual actions are LONG gone. I am right now building a system for a user (mainframe - excuse the curse word) that loads internal cobol II arrays and calls data-driven subroutines to determine many things that mediocre programmers would hard code.
Get the logic out of the program and into tables! That's the ticket.
You can even take the FoxPro code out of the code and into tables.
I love FoxPro's extreme flexibility!