Jaspersoft® is the force behind the JasperReports®, Jaspersoft iReport® Designer, Jaspersoft Studio® and JasperReports Server®. At the core is JasperReports, a reporting engine and API. The JasperReports Server embeds the JasperReports engine and provides a user-friendly, web-based interface for end-users to run and view reports. The iReport Designer is an installed thick client tool built on top of the JasperReports library that lets report authors create reports using a graphical user interface instead of coding.
Changes Since Our Last Review
Since our last look in 2010, Jaspersoft’s open source reporting components have changed slightly. Between the 3.7 version in 2010, and the 4.5 version in 2012, here are some of the changes we noticed:
Figure 1 - iReport includes a large number of pre-defined data source types
Jasper’s product suite is fairly broad (although not as broad as Pentaho) including reporting and Data Integration/ETL (Extract-Transform-Load of Data). The open-source community edition includes the following components for reporting:
JasperReports is the most popular and widely deployed open source reporting project in the world. It has been deployed in hundreds of thousands of production projects, and its reporting capabilities are built into thousands of software products. As such, Jaspersoft’s iReport report designer is a solid, full-featured tool, capable of creating and running the gamut of traditional “real-world” report designs, from simple to complex layouts. However, we feel that the iReport designer is significantly less usable than both the BIRT Designer and the Pentaho Report Designer. We find that many simple, common operations - such as creating aggregates – are more difficult in iReport than the other open source design tools.
We also believe that Jasper is showing its age a bit, it is the oldest of the open source report designers. 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.
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 JasperReports Server. iReport is available as both a stand-alone, installed client tool, or as a plug-in for the NetBeans IDE.
Figure 2 – Screenshot of the iReport designer. It has the typical designer components – the report design with a preview tab, and panels for the report outline/structure, the report element palette, and a property editor.
JasperReports iReport has much of the same functionality as the other report designers, as demonstrated by our Product Comparison Matrix. However, JasperReports iReport is different from the other report designers in a few major ways:
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:
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. 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, 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 approach is the foundation of JasperReports and iReport, and you can see evidence of this throughout the tool. The result is that the report author can precisely control how a report looks when printed out on standard-sized paper, and the output can be precisely formatted and unvaryingly consistent. For projects that require a lot of printed reports, JasperReports might turn out to be the best choice. However, note that Jaspersoft’s emphasis on printed output detracts from its ability to dynamically adapt reports to the size of the web browser window and make the most efficient use of screen real estate possible.
JasperReports, like Pentaho, 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:
Jaspersoft has a simple wizard to let you create charts. First, you pick the chart type from the big diagram below.
Figure 3 - To add a chart in iReport, you first select the type of chart.
The wizard then prompts you to 1) select a dataset, or sub-dataset, to populate the report, and 2) specify which data fields that identify the series displayed in the chart and which are to be the data values, and out pops a chart. You need to then use the property editor to change anything else about the chart, such as its formatting, size, hyperlinks on pie slices, order of series, etc. While most of the necessary options appear to be available in the chart’s property editor, this process is not as usable as it could be.
Figure 4 - Step 2 of the iReport chart wizard. Selecting keys & values.
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.
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.
Jaspersoft Studio is a new report designer that is an alternative to iReport. Studio is Eclipse-based, unlike iReport which uses NetBeans as its basis. As such, developers who use Eclipse as their primary development tool for all things can now also use it for JasperReports development. Jaspersoft Studio users benefit from the project management functionality of Eclipse, and the ease of integrating reporting into a broader Java application that was created with Eclipse. Studio is available as either a standalone tool or as a plug-in to your existing Eclipse installation.
In our testing of Jaspersoft Studio, it seems almost exactly like iReport but with slightly different fonts and colors. The panels are virtually identical, and it seems that most of the functionality is as well. The only area where we found significant differences was in setting up data connections. Studio does not yet seem to support as many data sources out-of-the box as iReport, however we believe that the data source connectivity is actually the same. You just have to do a little more work to setup the connections to more esoteric data sources with Studio.
Figure 5 - The new "data adapter" wizard of Jaspersoft Studio. It supports fewer connection types out-of-the-box than the equivalent iReport designer (compare this to Figure 1).
JasperReports is a solid open-source reporting platform that has been used in hundreds of thousands of production deployments worldwide. It can almost certainly do the job and iReport has the flexibility to create highly complex report deigns. However, we found the learning curve for the Jaspersoft iReport designer to be the steepest of the three report designers we looked at.
We believe that if printed report output is required and important, that JasperReports is likely to be the best choice. Also, if the functionality provided by an open-source report server is needed, Jaspersoft and Pentaho will both trump BIRT. However, for the typical, average complexity report development project that does not require a report server, we believe that BIRT is likely to be more usable and able to produce more types of reports without resorting to custom code.
Jaspersoft is a registered trademark of JasperSoft Corporation.