Saturday, July 18, 2009
Powerful Reporting with BIRT
This is the sesison that i hope to get the maximum benefits from especially since we have started using BIRT for our projects. The session is by Krishna Venktraman from Actuate, who is the director
--> Most applications have some kind of data visualization need. Real world applications don't consider reporting when they design the application. BIRT provides a framework that manages all the reporting requirements.
Traditional approach :
Buy closed source commercial products or build custom developed solution
With open source based products things become much easier.
Emergence of BIRT Project
BIRT was initiated in 2004 as a top level eclipse project. IBM,Innovent and Actuate are the key members.
Focus was BIRT was to make report development easy.Its open and standards based and provides for rich programmatic control. It has both simplicity and well as Power to create complex reports. BIRT supports of concept of reporting libraries that promotes reuse and reduces changes.
The main audience for BIRT was report developers,advanced report developers who use scripting, runtime integration developers who use birt viewer and engine apis, report design integrator who use design engine apis, extension developers who develop extention points and finally core development who do eclipse development itself.
There were five major releases since project launch with 1.0 ,2.0,2.1,2.2,2.3,2.5 as the versions. It was built from ground up and lot of community feedback was take into account
--> Simple to complex layouts
--> Comprehensive data access
--> Output formats
--> Reuse and developer productivity
--> Interactivity and linking
--> Multiple usage and productivity aids
Some key features added in 2.x versions
--> ability to join datasets
--> enhanced chart activity
--> multiple master page support
--> Dynamic crosstab support
--> CSS files can be linked
--> Emitters for XLS,Word , PPT and Postscript
--> Webservices can act as datasource
BIRT design gallery : some of the displays llok really good.
High level BIRT acrhitecture
Two key components
1) Report Design Engine
2) Report runtime Engine
at the end of design process we get a .rptdesign. report engine then looks at the file, interprets it, fetches the data and goes about the generation process. we get an .rptdocument. Key services of report engine are generation services,data services,charting engine and presentation services.
BIRT exchange is a community site for posting all BIRT related issues.
a) Design Engine API b) Report Engine API c) Chart Engine API
--> data source extensibility
--> custom business logic extensibility using scripting and acess java code
--> Visualization extensibility
--> Rendering content for output (emitters)
--> Commercial Report Server
--> J2EE Application server
--> Java application
Actuate provides Actuate BIRT report designer,BIRT report studio, BIRT Viewer,BIRT Interactive Viewer,deployment kits, iServer Express,iServer Enterprise.
Now for the actual report designs...
Just had an overview of the birt tool. Going through the series of demos on basic report, now basic charts, then crosstab/matrix report.
Book Marks and hyper links
Click the element and then pickup bookmark from properties . Now go to the place where you want to place hyperlink and link up the bookmark.
Limit what to display . You can limit at dataset level or at table level.
Main Report --> Outer table
Sub Report --> nested table
Pass data value from outer table to nested table
In BIRT we need to nest tables in order to create sub reports.
Use Dataset parameter binding on the child set to get the data from parent dataset
Mozilla Rhino script engine is embedded in BIRT.
Scripting = Expressions + Events
It users server side scripting. All the export options will get the same output.
Initialization Report level events (-initalize,-beforeFactory) --> Data source Open (-beforeOpen,-open) --> Data Set Generation (--beforeOpen,--open,fetch) --> Dataset Generation
Generation phase : Report level,datasource level, element level
Render : report level,element level
can implement powerful logic using scripting
Just use export library by right clicking on the rptdesign file. Then click on use library and say use library.It has all the data sources, data sets and report items.
Library is a container of reporting items.
Can do local overrides on things imported from libraries
File --> New Template.Serves as starting points for speedy report development.
Display a visual image. then register this template with the new wizard.
Last piece was a demo on how to deploy the reports.
One big disappointment was i couldn't get any idea on how to integrate report engine and birt viewer with the custom applications.
On the whole it was a good session.