Expertise

JasperReports

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:

  • The introduction of the Jaspersoft Studio – a report designer alternative to iReport that is an Eclipse plug-in.  This is a complete re-implementation of iReport.
  • New out-of-the-box support for new data source types, most notably Hadoop Hive, JSON data sources, XML/A, and Excel 2007 (see below screenshot).
  • jasper-image001

    Figure 1 - iReport includes a large number of pre-defined data source types
  • A new “Table” element, that makes it much easier to create reports with tabular data structures.  With the table element, you no longer have to align all your controls perfectly in a grid pattern and then draw your own borders.
  • Added a new “callouts” feature, so that report designers can leave comments and annotations to different parts of their report designs.
  • Experimental support for Google Maps as report elements. Maps are well integrated in.  It is the only report designer to have Maps as an element on the design pallette, where you can drag/drop a component into the body of a report design and then easily configure it.
  • Improved exports to XLS, XLSX, PDF/A, Powerpoint (PPTX)
  • Experimental support for an HTML text component.  This allows report authors to use HTML-style formatting within a text box.
  • Updated SQL designer – it is now more stable and user-friendly
  • Introduction of a new chart type:  spider charts, which are often referred to as “radar” charts.

 

Top

Components

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:

  1. JasperReports Library - The JasperReports Library 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 JasperReports Server 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 JasperReports Server. iReport is available as both a stand-alone, installed client tool, or as a plug-in for the NetBeans IDE.
  3. Jaspersoft Studio – an alternative report designer, very similar to iReport, that is an Eclipse plug-in.
  4. JasperReports Server – the JasperReports Server is a J2EE application that lets multiple users run reports and OLAP cubes through a web-based user interface. It is distributed using Apache Tomcat, but can use any Java application server. At the core of the JasperReports 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.
  5. Jaspersoft ETL - Jaspersoft ETL is a data integration engine powered by the Open Source Talend* software.
  6. Jaspersoft OLAP - Jaspersoft OLAP is a series of commercial and open source components that allow for the analysis of data.  
Top

General Impressions

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.

 

jasper-image002

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:

  1. JasperReports uses “pixel positioning” as its central approach, and at its core it emphasizes paginated reports, as opposed to web layouts. This is similar to Pentaho, but different than BIRT which uses a table based approach.  The limitations of the pixel positioning approach have been mitigate by the introduction of a Table element within iReport.
  2. JasperReports rely on sub-reports to support reports with multiple queries and data sources.  This is different than BIRT, but the same as Pentaho.
  3. Charting is middle-of-the road in JasperReports iReport: more full-featured and easier to use than Pentaho, and more difficult and less full-featured than BIRT.
  4. JasperReports must be compiled, which is different from both BIRT and Pentaho.

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. 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.

 

Pixel-Positioning Approach

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.

 

Sub-Reports

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:

  • You need to gracefully hand parameters and sometimes query data between the master report and sub-report (and sub-sub-report, etc).
  • 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.*

Charting

Jaspersoft has a simple wizard to let you create charts. First, you pick the chart type from the big diagram below.

jasper-image003

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.

 

jasper-image004

Figure 4 - Step 2 of the iReport chart wizard. Selecting keys & values.

 

Report Compilation

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.

 

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

  • Has excellent out-of-the box data connectivity. Jasper iReport and JasperReports Server both include many database drivers that BIRT 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.
  • JasperReports iReport has out-of-the-box support for connections to both Hadoop Hive and JSONs.
  • Can create “newspaper layouts” reports with of multiple columns, side-by-side on the page. Neither BIRT nor Pentaho can do this.
  • Although not free, JasperReport’s documentation is much better and more comprehensive than Pentaho’s, but not as good as BIRT’s.
  • JasperReports has better, more fully-developed cross-tabs than Pentaho, but worse than BIRT’s.
  • JasperReports has better, more fully-developed and usable charting than Pentaho, but worse than BIRT’s.
  • JasperReports is the only reporting suite where the main vendor provides the report designers as both a NetBeans and an Eclipse plug-in – iReport and Jaspersoft Studio, respectively. BIRT, in contrast, only works with Eclipse. Pentaho Report Designer exists only as a standalone client.
  • Although support is still experimental, JasperReports iReport is the only report designer that supports Google map components. While all these report suites can be made to use Google Maps, JasperReports iReport is the only designer that has them as an element in the report design palette, so report authors can include a Google map in a report as easily as including a field from a database.
  • JasperReports is exceptionally easy to install and get running with common data sources. A Windows installer is available that includes many common database drivers. If you install the JasperReports Server, it will also install a copy of the iReport Designer that is all configured to publish directly to the JasperReport Server.
  • JasperReports is the most widely deployed of the three BI platforms, boasting over 175,000 production deployments worldwide, demonstrating its flexibility and stability.
  • Weaknesses

  • iReport is the most difficult to learn and to use of the three designers. Many common tasks, such as specifying sub-totals for a grouped report, are easier in the other two report designers.
  • 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’s charts are superior to Pentaho, but 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.
  • With JasperReports iReport, it is difficult to create Top-N, Top-N%, Bottom-N, and Bottom-N% reports.
  • It is more difficult to do conditional formatting with JasperReports iReport than with the other two designers.
  •  

    Top

    JasperSoft Studio

    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. 

     

    jasper-image005

    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).

     

    Top

    Conclusions

    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.