I need to write a bunch of new reports for a variety of reasons that:

- use data from multiple data sources (vfp, SQL, sybase's Advantage database, etc)

- output in multiple formats (pdf, xls, txt, doc)

I am somewhat proficient using vfp8 report writer. I am currently considering:

- VFP9 report writer

- eqeus' XFRX

- crystal reports

- .NET 2005 reporting options

Any thoughts would be greatly appreciated.

Re: Reporting Tools


Vfp9 writer may be enought ( it is improved in 9 ):


Re: Reporting Tools

Craig Berntson

The VFP9 report writer, while greatly improved from previous versions, still does not support native output to pdf, doc, or xls. There are third party tools that can assist with that. Ultimately you need to decide what works best for you. I have lots of experience with Crystal Reports and can recommend it.

Re: Reporting Tools


Thanks for the info. I have heard that Crystal Reports can be problematic when deploying on a tight system.

Re: Reporting Tools


ok, so now I have rolled up my sleeves and started using the VFP9 report writer today. I typically do a lot of the data work in code before calling the report - a results cursor will have the exact detail fields I want on the report. I figure I might as well start using some new commands and afields() seems like a nice command that will allow me to develop a generic report that can be used in multiple instances.

here is some sample code that works fine in a prg:

CREATE TABLE test FREE (nField n(10,2))

INSERT INTO test (nfield) VALUES (1.23)





The aheader(1,1) also works fine within the report writer to display the column name.

BUT (you knew there was a but coming)

The line:


used as the expression value within a detail band text box causes an error within the report writer:

Function name is missing ).

I have tried all kinds of permutations w/m., (), etc. to no avail.

Any thoughts

Re: Reporting Tools

Tamar E. Granor

Use TRANSFORM() rather than STR() and you'll avoid lots of issues.

In addition, if memory serves, you can't use macros in reports. Try EVAL() instead.


Re: Reporting Tools

Naomi Nosonovsky

You're correct, Tamar. You can not use macro in the report, only evaluate()

Re: Reporting Tools

Craig Berntson

Deploying Crystal Reports used to be a major hassle as they did not version their DLLs. They do that now and you can have side-by-side installs with previous versions.