Integrating BIRT
Overview
Contents
Integration Points
Runtime Integration
Design-Time Integration
Extending BIRT
Report Viewer
Report Engine API
Design Engine API

Integration Points

BIRT reporting provides a variety of integration points to accomplish various tasks:

BIRT charting APIs are described elsewhere. (Not yet available.)

Runtime Integration

Your application can integrate the BIRT web and engine runtimes:

BIRT Report Web App
A series of URLs that your application can use to display a parameter page, run and display a report, etc.
Report Engine API
A Java interface used to embed the BIRT report engine within your application. The engine behavior can be customized for use in a web app, RCP app, command line app, etc.

Design-Time Integration

Your application can explore or create BIRT XML report designs:

Design Engine API
Provides access to a BIRT report design. You can explore the design, modify it and so on. Use this API to create your own custom report designer, or to perform batch tasks on designs.
Generate a Report Design Directly
If you can write XML files, or with templates, you can generate report designs based on an application-specific report designer. This technique is ideal for non-Java scripting environments such as PHP.

Extending BIRT

Your application can extend BIRT for your specific needs:

Scripting
BIRT provides extensive scripting support. You can create anything from computed columns to sophisticated business logic to extensive integration with existing Java code.
Open Data Access (ODA) Extension API
BIRT provides a JDBC data source. Use the ODA API to create custom data sources drivers. Each driver has run-time behavior along with optional design-time UI.
Scripted Data Source
The scripted data source and data set elements allow you to access custom data sources directly from your report without the need to create an ODA driver. This solution is ideal for one-off data sources, prototypes, and the like.
BIRT Report Item Extension API
The BIRT model is extensible; you can add new report items. Use this API to include design-time, run-time or presentation-time behavior.

Report Viewer

The BIRT Viewer can be used in a variety of ways:

  • As a stand-alone, pre-built web application for running and viewing reports.
  • As a starter web application that you can customize to your needs.
  • As an example for learning how to build your own reporting web application, or to learn how to use the BIRT engine.
  • As a way to run a report using a URL. This option provides a simple way to integrate BIRT reporting into applications build using non-Java technology such as Perl, PHP or even static web pages.

The BIRT viewer is a web application included with BIRT to perform the report preview operation within Eclipse. It is also a sample of how to integrate birt with a web application.

Integrating the BIRT Viewer explains how to deploy the BIRT viewer onto your own application server. The explanation uses Apache Jakarta Tomcat as the sample deployment target.
Using the BIRT Viewer discusses the viewer operation URLs and their parameters.
Using the Viewer from PHP discusses how to run BIRT reports from a non-Java scripting environment such as PHP. Also briefly summarizes how to use PHP to generate custom report designs.
Viewer Pages discusses the JSP that make up the viewer. (Not yet available.)
The viewer code is available in the BIRT CVS repository in the org.eclipse.birt.report.viewer project. See the BIRT build instructions for information on how to access CVS and build the viewer.

Report Engine API

Use the Report Engine API to run BIRT reports directly from Java code or to create a custom web application front end for BIRT.

  • Using the Engine API explains how to use the Engine API to create a simple command-line program that runs reports.

Design Engine API

Use the Design Engine API (DE API) to create a custom report designer tool, or to explore or modify BIRT report designs. The BIRT Designer is built using this API. (Internally, the Design Engine is also called the "report model" or just "model.")

 

Last Updated: Oct 2, 2012