Open Source Report Engine Comparison
November 6th, 2006
Now that OpenReports 2.1 includes support for Eclipse BIRT and improvements to existing support for JFreeReport and JXLS, I thought it would be a good time to post my thoughts on the open source reporting engines supported by OpenReports:
JasperReports
- Easiest to integrate and most flexible from a developers standpoint.
- Supports a large number of export formats.
- Report designer is not as easy to use as others.
Eclipse BIRT
- Excellent report designer and charting support.
- Great support for reports will multiple datasources.
- Harder to integrate with OpenReports then other engines.
JFreeReport Â
- Nice report designer.
- TableModel based API can restrictive.
- Does not seem very active from a community or development standpoint.
JXLS
- Excellent choice for Excel reports.
- Does not require a report designer.
- Supports multiple queries in one report.
- Only supports Excel output and not very well known.
At this point I would recommend OpenReports ChartReports for simple charts, OpenReports QueryReports for small table based reports, JasperReports or Eclipse BIRT for general reporting requirements, and JXLS for complex Excel reports.
I’m not sure about JFreeReport at this point. Even though it’s now owned by Pentaho, it does not seem very active. If I had to guess, I would bet a large number of Pentaho users are using other reporting engines such as Eclipse BIRT and JasperReports with Pentaho.
Anyone out there try more then one of these reporting engines recently? What are your thoughts?
Entry Filed under: All
13 Comments
1. Gary | November 6th, 2006 at 6:34 am
there are other likes well known crystal report 11 (suport java), crystal clear (seems like porting crystal report functionality into java),report mill and other non freeware reports.
So far crystal report 11 is still the best cos’ the functionality and easy to use.
2. Thomas Morgner | November 6th, 2006 at 2:52 pm
Let me comment a bit on JFreeReport (my favourite topic
)
JFreeReport has an active and stable user-base out there. For a project, that does not even remotely aim at end-users, we are doing pretty well.
Most of the day-to-day questions that filled our forums in the old days, are now solved through the Pentaho Report Designer and the documentation, that has been written by Pentaho. The remaining questions are split between the Pentaho-Forums for the front ends and the JFree.org forums when in comes to the details of the backend.
The TableModel interface is nothing more than that – an interface. You are not forced to use the Swing-Default implementations, we have SQL-based implementations on board., which wrap around an ResultSet, for instance.
For now, we have been the engine with the highest performance, according to the tests made by Galina and Valeria.
http://jroller.com/page/galina?entry=java_open_source_reporting_frameworks
http://jroller.com/page/galina?entry=pentaho_jfreereport_reporting_framework_performance1
We are not only performant. We also have one of the smallest footprints around, have very few hardcoded dependencies and therefore are perfectly suited for embedded programming. All of JFreeReport’s users I’ve talked to, aggree, that JFreeReport is a very easy to use.
During the last two years, JFreeReport has undergone a complete rewrite to get rid of all limitations of the old engine. Most of development time goes into that project now. As the new engine uses totally different concepts, it is not API compatible to the old one. But breaking the stable version would be an evil thing, so we separated that branch from the old core some time ago. We made the promise, to support the old branch of JFreeReport at least one year after the new version has been completed.
That shiny new version (called JFreeReport 0.9) is now nearly complete, and if the daemons of unexpected troubles don’t interfere with our mortal plans, we will have a first release of that version at the end of November. That release will surely increase our felt presence out there. (And if not, at least it fixes all the limitations we had in the past, like missing SubReports, or the banded report layouter.)
Regards,
Thomas
3. eswenson | November 6th, 2006 at 7:43 pm
Thomas,
Thank you for the detailed response and for your work on JFreeReport.
OpenReports currently supports JFreeReport 0.8.7-5, using the ResultSet wrapper you describe, and mostly like will support JFreeReport 0.9 when it is released.
My comments about the JFreeReport community and development status are based on a quick look at the JFreeReport and Pentaho sites. To me it looked like the most of the recent JFreeReport releases have been bug fix releases and I could not find much information about the progress of JFreeReport 0.9.0. This may be a result of the information being spread out over two sites.
Would you recommend JFreeReport over JasperReports or BIRT to OpenReports and Pentaho users? If so, for what reasons?
Thanks,
Erik
4. Barry Klawans | November 7th, 2006 at 1:23 am
Erik, I’m curious what versions of the various reporting engines and tools you looked at. Thomas mentions the upcoming 0.9 release of JFreeReport as having some significant improvements. Have you looked at the recent 1.2.7 version of iReport, the JasperReports UI? It contains significant improvements in the usability of the tool, and might change your opinion about JasperReports ease of use.
Thomas, the blog entry you linked to with performance data doesn’t seem to reflect real world usage. I talk to our users all the time, and they are rarely doing a simple table dump of a small data set. They usually have a mix of reports, ranging from simple to highly complex, all running in the same server. Report authors spend most of their effort working on the look and feel of a report. They take advantage of the flexibility of a banded layout, use several fonts and colors, and often have a summary section with multiple charts, sometimes pulling data from multiple datasources. Real world reports are also typically MUCH larger than the sample run.
More importantly, I have found that performance is rarely the main factor people use to choose a reporting engine, or even a primary factor. The main influencer is the ability to create the reports that they want, with the look they want. The decision maker could be looking for crosstab report or barcode support, and will make their decision based on that. Or maybe its the ability to run a 10,000 page report without crashing. The important point is that different people have different needs, and will use different criteria.
I have a bias towards JasperReport (I’m a contributer and the CTO of JasperSoft) and Thomas has a bias towards JFreeReport – perfectly understandable. I suggest folks take a look at both and decide for themselves.
-Barry Klawans
5. Pepe Pérez | November 7th, 2006 at 2:05 am
Let me second the opinion of adding support for CrystalReports XI in OpenReports. Now the runtime engine is free and there is a designer for Eclipse also free. IMO it would be a great addition.
6. eswenson | November 7th, 2006 at 5:34 pm
Barry,
I have not used iReport 1.2.7, beyond taking a quick look at the user interface. I was basing my opinion on iReport 1.2.5.
I agree that the performance is rarely the deciding factor when choosing a reporting solution. If it was, I don’t think it would rely on Galina and Valeria’s blog for my performance testing.
I would like to note that, although I am probably most familiar with and slightly biased towards JasperReports, it doesn’t really matter to me what reporting engine a person uses with OpenReports. OpenReports supports multiple reporting engines to provide users a choice, and I agree with you that prospective users should test multiple engines and decide which one best fits their requirements.
- Erik
7. eswenson | November 7th, 2006 at 5:36 pm
Gary and Pepe,
I will take a look at Crystal Reports XI. The engine may be free in some cases, but I don’t think the licensing terms allow distribution of the engine with OpenReports.
- Erik
8. Mark | November 7th, 2006 at 7:15 pm
One plus (i my eyes) for JasperReports is support for HQL.
9. Thomas Morgner | November 9th, 2006 at 8:20 am
Which engine would I recommend? Well, it depends.
If you need an embedded engine to provide printing capabilites in your application, I surely would head for JFreeReport. No other engine has a lower footprint and we do not touch the filesystem for the report processing. (And it is still no problem to create a 20.000 pages report within the default 64MB heap).
Those users are a bit more concerned about the performance than the common BI users. (A BI user simply buys a bigger maschine, but you cant do that for an accounting software, for instance.) In its smallest deployment, JFreeReport eats about 2MB, and noone has to recompile or fire up an IDE to strip not needed functionality from the engine. Embedded systems is where size matters.
For BI systems (on the Pentaho-plattform, for instance) or any other server deployment, I usually tell my users: Try JFreeReport, JasperReports and BiRT and use what fits your requirements most. Users rarely choose BIRT, and whether they choose JFreeReport or JasperReports depends on whether they used one of the tools before and (of course) their requirements.
(And most of the time, you could use a dice to predict the outcome. JasperReports and JFreeReport are very similiar in their functionality, we have some strength, JasperReports has others, but those differences are rather small.
Luckily, on either Pentaho or OpenReports, you dont have no vender lock-in, so you can use JFreeReport for one report and JasperReports for an other, if you wanted to. And if you decided for one tool and notice it does not cover that particular requirement, switch for that report. The freedom to choose does not vanish once you deployed your first report.
And finally:
I disagree on that one. I’ve met too many people how use the reporting engine to spit out thousands of one or two page reports (invoices, summaries, etc). For them, it is important that the engine performs well. They dont care about the capability to be faster on 10.000 page reports, they want to see results without having to wait. And for interactive use, 10 seconds more or less are noticable (and noticed!).
Regards,
Thomas
10. kashif mushtaq | May 22nd, 2007 at 8:34 am
Is there any possiblity to develop drill down excel reports using JXLS. If anybody has information regarding it then please reply..
thanks in advace,
Kashif
11. shail | June 19th, 2007 at 1:33 pm
Hi,
We are doing a J2EE application using Myfaces,spring,hibernate. Currently we are using FOP to generate reports in our project, but it seems its not that fast to create a report in FOP from fast experience. i havent used any other reporting tool and now considering to use Jasper or Cognos (as we already have the license). Requirements are basically for 100 Online reports which are dynamically genrated and might be stored in file system.all reports are in pdf formats and some will be in multiple languages.
can anyone suggest which one will be best tool to do the thing. FOP i got problem with writing huge xsl’s and creating xml’s using java.
Thanks
Shail
12. shail | June 19th, 2007 at 1:33 pm
Hi,
We are doing a J2EE application using Myfaces,spring,hibernate. Currently we are using FOP to generate reports in our project, but it seems its not that fast to create a report in FOP from fast experience. i havent used any other reporting tool and now considering to use Jasper or Cognos (as we already have the license). Requirements are basically for 100 Online reports which are dynamically genrated and might be stored in file system.all reports are in pdf formats and some will be in multiple languages.
can anyone suggest which one will be best tool to do the thing. FOP i got problem with writing huge xsl’s and creating xml’s using java.
Thanks
Shail
13. Manuel GCarcamo | January 31st, 2008 at 7:07 pm
Hi.
I install Openreports 3.0, I develop with Eclipse, and design reports with BIRT 2.2.2.
Open report run in Tmcat 5.5, but I not view my old birt reports, I install plataform folder in
C:\openreports-tomcat\tomcat\webapps\openreports\WEB-INF\platform
and
C:\openreports-tomcat\openreports\reports\platform
I set HOME_BIRT=C:\openreports-tomcat\tomcat\webapps\openreports\WEB-INF\platform
I reciuve this error
org.eclipse.birt.report.engine.api.EngineException: The design file file:/c:/openreports-tomcat/reports/test01inno.rptdesign has error and can not be run.
Whar are I do?
Trackback this post