The ability to generate visual presentations of large amounts of business data is a core requirement of many enterprise applications. Business Intelligence and Reporting Tools (BIRT) is a top-level Eclipse project that provides a complete set of open-source reporting tools that integrate with the Eclipse IDE.
Although BIRT reports can be generated by end-users as well, BIRT is especially useful for developers who need to incorporate some form of data presentation in their applications. BIRT output can vary from online tables, HTML-formatted custom forms, and even PDF and Postscript output.
The BIRT project's latest release was timed to coincide with the Eclipse Ganymede release, the most recent major version of the Eclipse IDE. In an interview with JavaLobby's Schalk Neethling, BIRT 2.3 What's New And the Ganymede IDE for Java Report Developers, Eclipse BIRT project lead Virgil Dodson explains the most important new features in BIRT 2.3:
BIRT 2.3 was a huge release in terms of bug fixes and enhancements... There were over 250 enhancements to BIRT 2.3... Some of the coolest new features are concentrated around script debugging, crosstab improvements, a prototype of the Data Tools Project’s SQL Query Builder, multi-view items, a horizontal page break property, and lots more. All of these features will make it easier for the report developer to build the report they need...
Dodson explains in the interview that the ability to cross-tabulate data, or crosstab reports, received major new features:
The Crosstab control had quite a few changes with BIRT 2.3. One of my favorite features is the ability to have a chart within a crosstab measure or total area. You simply right-click on a measure and select "Show as Chart". A default chart is generated that has the correct cube data selected. To allow for further customization, the crosstab control now exposes several scriptable events. You can write scripts on these events to modify the individual cells within a crosstab. For example, coloring certain cells based on the data generated. Some additional improvements include filters for measure values, derived measures that can be generated based on other data around it, an option for allowing empty columns and rows to be displayed, and the ability to have something displayed in the crosstab header...
BIRT can output its reports to a variety of formats, some of which now perform better in version 2.3:
There were some improvements to the output algorithms for both PDF and Postscript resulting in smaller output file sizes....
The Chart Engine has been improved for BIRT 2.3 and includes a number of performance improvements and several new features. When using the Chart Engine within a BIRT report, it now uses ... the exact same code to do all this that the rest of BIRT uses (read - better performance). As for features, you now have the ability to group on one field and sort on another allowing you to display the data in your desired order. In addition to Data Sets and Report Items, a chart can now get its data from a Data Cube.
In addition to reusable styles for a report, you can now copy and paste the format from one control to another. A number of controls now have some new border types of groove, ridge, inset, and outset. If you are using an external CSS file, you can now supply the runtime location of that CSS file so it no longer has to be packaged up with your application.
Another new feature is integration with the Eclipse Data Tools project's graphical query designer:
BIRT 2.3 includes a prototype integration of the Graphical Query Builder from the Eclipse Data Tools Project (DTP). This query builder allows you to graphically add tables, create joins between tables and select fields from a table, all while the SQL code is generated for you. Currently, this feature is only available if you are using a Connection Profile Store to hold your data connection credentials. In addition to the query builder, BIRT 2.3 now supports stored procedure that return multiple result sets or that return a cursor.
What is your favorite Java enterprise reporting tool?