We have a reporting Audit application that is written in FoxPro.  Unfortunately the person who wrote it is no longer with the company, but we have some modifications to do on the reports.  How would I go about finding out where the data is coming from that makes the report?  I know in Microsoft Access a query would make the report, but how does it work with FoxPro?
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Query does not make the report.  You need some query output or database table and Report layout to create the report.

Data for FoxPro reports are prepared in the application code obviously. So you would need some access to the project and to the app source code which requires certain knowledge of the FoxPro language... Look for REPORT FORM command in the source code.

The Report layout itself does not need FoxPro language knowledge because it is almost WYSIWYG. Of course, the data model knowledge is very useful for report updates. You may just shuffle existing fields without it...

So if you find the place where the report is printed in your app (the REPORT FORM command) then you may place SET STEP ON command before this command and look at the data which are ready for the report in VFP development environment. The application must be executed in the development environment in such case.
Olaf DoschkeSoftware DeveloperCommented:
In short a report can be driven by current data, which means code is preparing all data and then makes a REPORT FORM call or the data environment of a report can be used to open tables, relate them, etc., which means the report would be self contained and needing no or just minimum preparation.

So a report can be controlled from outside or encapsulate it's own data source.

Even fully encapsulated reports typically need some input coming from outside, eg a variable being set and used as filter parameter in a parameterized view of the report dataenvironment, for example. The dataenvironment of a report also has a code section, so anything could be done in there, even interactively asking the user for filter input like a company or customer name.

You'll get first clues, if you use VFP and open up FRX files in design mode via MODIFY REPORT. If you then click preview and nothing is previewed or error messages appear about missing data, the report is not self contained.

You'll get usage clues, if you search the source code project for "REPORT FORM" calls or via report name. If you have sources, you most certainly will find a project PJX/PJT file pair and the PJX can be opened with MODIFY PROJECT in VFP.

Bye, Olaf.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.