[Lazarus] TFPRreport vs TFPJSONReport

Michael Van Canneyt michael at freepascal.org
Mon Mar 5 12:20:56 CET 2018

On Mon, 5 Mar 2018, patspiper wrote:

> TFPRreport and TFPJSONReport need some clarifications. Maybe MVC can 
> confirm/correct the below:
> TFPRreport:
> - Report design can be setup by code *only*.

Not correct. You can load from file. See WIKI, I added a section on that.

> - TFPReportData components must be linked to TFRReport by code

This is always so, but:

The IDE contains a menu item in the component editor that
links the available datasets to the report to make this easier.

See also below for improvements in runtime.

> - Can invoke the IDE integrated editor to design reports and open/save them 
> from/to file. But they are useless to TFPRreport.

Not correct. You can load the design from file. 
It doesn't happen 'out of the box' of course.

> TFPJSONReport:
> - Report design can be setup by code.


> - Can load/save report designs from/to file/stream/json (discarding design 
> data if any).


> - TFPReportData components have to be linked to TFPJSONReport by code (sample 
> code is needed when the report is loaded from file)


> - Can invoke the IDE integrated editor to design reports that are 
> loaded/saved from/to the lfm only.

They can also be loaded/saved to file, if you so desire.

> - The IDE integrated editor cannot open a report designed by the standalone 
> designer, or save a file to be used by the standalone designer. Note: 
> Actually it can currently open a file, but possibly with nasty side effects.

It should definitely be able to open it. What happens with the data, 
this is up for discussion. Currently I am toying with the idea that the 
IDE offers to add the missing data definitions to the form.

I want to refactor the data handling a little so it can be used outside the
designer - as you noticed, when loading a design from file, the data
definitions are discarded. Then the loading in IDE can be improved...

Please look at the WIKI, http://wiki.freepascal.org/FPReport, I added some
explanations. I will add the 'Lazarus support' page after lunch.


More information about the Lazarus mailing list