Friday, March 16, 2012

BIRT 3.7.2 New Features

A couple of weeks ago the Team released version 3.7.2 of BIRT. While this release was mainly focused on bug fixes, a few new features that were originally planned for Juno Release (June 2012) made it into the final build. In this post we walk through some of these features.

Enhanced Aggregate Filter Support

The BIRT project currently provides an Aggregation Report Item. This Report Item supplies over 25 aggregate functions, like SUM, COUNT, TOPN, that can be used to analyze data. The Aggregation Report Item even provides an extension point to add your own functions. While this Report Item is very powerful it only aggregates the rows available to it. If you apply filters to the container element, the Aggregation Item will only aggregate the filtered rows. This is not always desired. In some cases users filter rows for display purposes only. In these cases, consumers of the data may still wish to have the filtered rows aggregated. To accommodate this feature a check box has been added to the Filter Editor. This checkbox “Recalculate Totals”, determines if aggregates will include the filtered out rows. If the box is checked the rows will be filtered out of aggregation elements. If the box is not checked, the filtered out rows will be included.

BIRT Filter Editor
This feature is available on all filter locations, including data sets, tables, crosstabs and charts. The reports attached to this post include examples for table, crosstab and chart filters.

Table and Crosstab Filter examples

Chart Filter Examples

Derived Cube Measure

BIRT provides a data cube element which appears in the Data Explorer view and allows the developer to build cubes based on existing data sets. These cubes are constructed using dimensions and measures and can be consumed by crosstab and chart report items. In prior releases of BIRT when adding measures to the cube the user was restricted to the data set elements and an aggregation function. With the release of BIRT 3.7.2, developers can now create derived measures in the cube which use other measures for calculating the new measure.

The Measure Editor has been enhanced to supply a check box to indicate whether the measure is derived. If the new measure is derived, new options are available in the expression builder to access the existing measures. For example, in the image above an average price per unit is calculated based on the Amount and Quantity measures. Once the measure is created it functions in the same fashion as existing measures including totaling capabilities.

Derived Cube Measure consumed by Crosstab

Relative Time Period Report Item

When using crosstabs to display time based data, scripting is often required to implement complex time period calculations. With this release BIRT now offers a new report item that will handle time period based calculations automatically when used within a crosstab. This report item “Relative Time Period” is located in the palette and can be dragged to the measure field of a crosstab. The new report item can also be placed by right clicking on any measure in an existing crosstab.

Insert Relative Time Period Report Item into Crosstab

The Relative Time Period report item supports 13 different periods, including Previous N Year, YTD, Current Quarter, Trailing NPeriods, and Next NPeriods.

Relative Time Period Aggregation Builder

This report item works very similar to an Aggregation Report item, but allows the aggregation to be grouped on given period(s) in relation to the current time dimension value. For example the following image depicts a crosstab that contains two measures (Amount and QTY) and two Relative Time Period Report Items (QTY to Date and Previous Qtr).

Relative Time Period Example

OSGi Runtime

With the introduction of BIRT 3.7, a new POJO runtime was delivered to help ease deploying of BIRT. While the new runtime is simpler in most cases some users prefer the OSGi based runtime. With the 3.7.2 release the OSGi runtime is also available for download. To download the OSGi based runtime select the “full BIRT 3.7.2 Download Page” link from the main BIRT downloads page.

BIRT Download Page

On the full download page select the Report Engine OSGi deployment link to download.

BIRT OSGi runtime link

The reports used in this post are available at BIRT Exchange.


Anonymous said...

I have following requirement for my work.
(1) Reports should be able to access online from any machine.
(2) Scheduling of reports should be done.
(3) Emailing of the reports should be done.
Do you think BIRT 3.7.2 can implement all the above requirement ?

Jason Weathersby said...

I am not certain what you mean on point 1 but points 2 and 3 are currently not implemented in BIRT. BIRT is composed of several engines and example Web Viewer Java EE app for using those engines. You could write code to implement those features or take a look at Actuate's commercial iServer product which does those and more.

Unknown said...

Trying to add a little...
Like Jason said, you can add those needs easily to work with BIRT engine. If I had to do it, I will do as follows:

1) BIRT engine can generate reports from making a http request to the web server and you can specify the format (i.e. __format=pdf)

2,3) So you can implement (in any way) a scheduler routine which makes the HTTP requests and forwards the generated PDF.

SiraJ said...

"Recalculate Total" is really a required feature. I want to know, can we provide support of "Recalculate Total" in the previous version (is there any way to use this feature in the older version)

And I faced a problem while generating the crosstab in BIRT 4.3 version, it is not displaying any summary column and any data which was completely fine in the old version (3.7). Is there anything new in the newer version in terms of crosstab.