Consulting

JasperReports

Jaspersoft ® is the force behind JasperReports ®, Jasper iReport ®, and JasperServer ®, which together form a solid open-source reporting solution. At the core is JasperReports, a reporting engine and API. The JasperServer embeds the JasperReports engine and provides a user-friendly, web-based interface for end-users to run and view reports. The iReport is an installed client tool built on top of the JasperReports library, that lets report developers create reports using a graphical user interface instead of coding.

Components

Jasper’s product suite is fairly broad (although not as broad as Pentaho) including reporting, OLAP analysis, and Data Integration/ETL. The open-source community edition includes the following components for reporting:

 

  1. JasperReports - JasperReports is an extensive library of Java classes and APIs that let you programmatically create report designs, run them against data sources, and render their output in HTML, PDF, Excel, and other output formats. You can embed JasperReports inside your Java applications. If you are using the JasperReports Engine to run reports, then JasperServer is not required.
  2. iReport Report Designer – iReport is a WYSIWIG tool that lets you create reports using a graphical user interface, as opposed to creating reports programmatically using the Jasper Reports Library. These reports can then be run by the Jasper Report Engine or the JasperServer. iReport is available as both a stand-alone, installed client tool, or as a plug-in for the NetBeans IDE. iReport is not available for Eclipse, although JasperSoft reports that the feature is expected to be available in 2011.
  3. JasperServer – the JasperServer is a J2EE application that lets multiple users run reports and OLAP cubes through a web-based user interface. It is most commonly deployed on top of Apache Tomcat, but can use any Java application server. At the core of the Jasper Server are the JasperReports engine, the Mondrian ROLAP Engine, web-based user interfaces for end-users and administrators, and a host of server capabilities including authentication, user management, logging, email notification, web services, and report scheduling.

Top

General Impressions

JasperReports is a tried-and-true basis for reporting, and its iReport report designer and JasperServer are solid tools, capable of creating and running most traditional “real-world” report designs. We do, however, find the iReport designer to be significantly less usable than the BIRT Designer due to its pixel positioning approach and its emphasis on paginated reports.


We also believe that Jasper is showing its age a bit – it is the oldest of BIRT and Pentaho. Thus, unlike BIRT (and to a lesser extent, Pentaho), Jasper does not have report interactivity and modern web standards (CSS, XML, etc) built into its foundation. Jasper does have some of these capabilities, but they feel tacked on instead of being an integral part of Jasper’s approach. Said another way, Jasper seems to have taken paper reports as its starting point and worked to replicate them on the web, where BIRT was built with rich internet applications in mind. Meanwhile, both BIRT and Pentaho are actively enhancing their report designers and adding the functionality needed to create the next generation of reports and data visualization. In contrast, Jasper’s iReport designer has not changed much in recent years, other than minor enhancements.


Jasper iReport Designer

Jasper iReport is a WYSIWIG tool that lets you create reports using a graphical user interface, as opposed to creating reports programmatically using the Jasper Reports Library. These reports can then be run by the Jasper Report Engine or the JasperServer. iReport is available as both a stand-alone, installed client tool, or as a plug-in for the NetBeans IDE.


Jasper iReport differs from the BIRT Designer and the Pentaho Report Designer in a few major ways: 1) Its “pixel positioning” approach, 2) Its emphasis on pagination, 3) Its reliance on sub-reports, and 4) Its requirement that reports be compiled.


The Jasper iReport report designer is a solid tool that has been around many years and is capable of producing fairly complex report designs. However, it can be difficult to use and the learning curve is steep. Much of this is due to Jasper’s underlying approaches to report design. Jasper, like Pentaho, is in the “pixel positioning” school of report design, where the report designer must explicitly place each control and field on the page and format them individually. This means drawing line-drawing your own tables, handling borders and formatting for each cell individually instead of for the table as a whole. This makes things especially tedious if you want to add, delete, or reorder columns. “Pixel positioning” is very different than the BIRT’s approach, which is table and grid-oriented, much like how web pages and spreadsheets are usually developed. So with BIRT, there is a “table” element in the palette that makes it easier to create and format tables as a whole, and adding, deleting, or reordering columns is a snap.


Jasper’s emphasis on pagination and pixel-positioning gives report developers fine-grained control over the look report, but also limits the report’s ability to adapt to different-sized displays. So, for example, if you want a report to look good when printed on an 8.5”x11” sheet of paper, that the report will only be as wide as a sheet of paper even when displayed on a widescreen monitor with lots more horizontal screen real estate.


Also, like Pentaho, Jasper is very dependent on sub-reports. If you want to use multiple data sources, use a query’s result set more than once in a report, or have side-by-side report components, you need to use sub-reports. While sub-reports are great for re-using report pieces across many different reports, requiring sub-reports for the above use cases adds unnecessary difficulty and complexity to the report design process:

  • You need to gracefully hand parameters and sometimes query data between the master report and sub-report (and sub-sub-report, etc).
  • From within the iReport Designer, you cannot actually see how the sub-report will show up in the master report; instead a “sub-report” icon is displayed.
  • Report developers need to manually manage the dependency between the master report and sub-report files.
  • Too many sub-reports can result in very poor performance because each sub-report opens its own database connection, thread, and queries. So, for example, if you have a sub-report within a group section that expands into 70 different groups, then the sub-report will run 70 times, opening up a new database connection each time.

Finally, unlike BIRT and Pentaho, Jasper requires that you compile reports prior to running them. This means that report developers must have the entire Java SDK installed. Compilation also adds an extra step to the process of deploying reports. Also, since the compiled Jasper report executables are Java byte-code, revision control is difficult since it is impossible to identify the differences between versions of a binary file.


Jasper i-Report


Top

Strengths and Weaknesses of Jasper iReport Designer

Below are some of the strengths and weaknesses of the Jasper iReport Designer, as compared to BIRT and Pentaho’s report designers. Note that some of these strengths and weaknesses are really due to the behavior of the underlying JasperReports library, not the iReport Designer itself. However, we include them here because the report developer is most likely to encounter them.


Strengths of Jasper iReport Designer

  • Has best in class out-of-the box data connectivity. Jasper iReport and JapserServer both include many database drivers that BIRT and Pentaho report developers would be required to track down and install. Jasper also supports more data sources through the user interface, instead of requiring the report developer to use the scriptable data source adapter.
  • Can create “newspaper layouts” reports with of multiple columns, side-by-side on the page. Neither BIRT nor Pentaho can do this.
  • Jasper’s documentation is much better and more comprehensive than Pentaho’s, but not as good as BIRT’s.
  • Jasper has better, more fully-developed cross-tabs than Pentaho, but worse than BIRTs.

Weaknesses of Jasper iReport Designer

  • Although iReport is available as a NetBeans plug-in, it is currently not available as an Eclipse plug-in. The Eclipse IDE is much more commonly used than NetBeans: the latest Java Awareness Study found that 62.7% of enterprise software development managers used Eclipse, where only 24.4% used NetBeans.
  • Conditional formatting is much more difficult with iReport than with either BIRT or Pentaho.
  • Jasper requires that you compile reports prior to running them. This means that report developers must have the entire Java SDK installed. Compilation also adds an extra step toe the process of deploying reports.
  • Jasper report executables are in Java byte-code, a binary format, and thus version control is difficult. With binary formats, it is impossible to identify the differences between versions.
  • Jasper’s charts are superior to Pentaho, but very inferior to BIRT. There are several ways to customize your reports in Jasper through the user interface, but you don’t have fine-grained control over every element.
  • Most stagnant designer – both the BIRT Designer and the Pentaho Report Designer have introduced major functionality in the last 18 months. The improvements that we see in Jasper iReport have been minor in comparison.
  • Difficult to create Top-N, Top-N%, Bottom-N, and Bottom-N% reports.


Top

Conclusions

For report designers we strongly prefer the much more usable and powerful BIRT Report Designer.



Top

Update

Each of the products reviewed has had a major release recently, including Jaspersoft 4, Pentaho BI 4 and BIRT 3.7. Innovent will be releasing an update to our comparison in February 2012 so please check back.

 

See Also:

BIRT vs Pentaho

OSS Reporting Comparison Matrix


Jaspersoft is a registered trademark of Jaspersoft Corporation.