Generate a PDF Report from a Database with BIRT
by Deepak Vohra
BIRT (Business Intelligence and Reporting Tools) is an open source reporting system for Web applications that allows you to generate reports from various data sources: databases, XML documents, EJBs, Web services, JavaBeans, and POJOs. BIRT has some major advantages over other reporting tools. Because BIRT is Eclipse-based, it does not need to be integrated with an IDE. It's easy to use in comparison to other reporting tools like JasperReports, which is a Java API and requires a Java application to run. Your BIRT reports can have charts, lists, graphics, and tables. BIRT allows you to can sort, filter, and group data in a report as well as add business-specific logic using JavaScript. A report produced in BIRT may be output as a PDF document or an HTML document.
BIRT has two main components; an Eclipse-based report designer and a runtime component that you can add to your application server. In this tutorial, you'll be dealing with the report designer. BIRT provides runtime integration and design-time integration. With runtime integration, you view your BIRT report in the BIRT Viewer, which you can install in an application server or access via a URL. Though BIRT is mainly designed for Java and J2EE applications you can also run it from non-Java scripts like PHP. You can also implement runtime integration using the Report Engine API which allows you to run BIRT reports directly from Java code. Design-time integration is implemented with a Design Engine API, from which you can create or modify BIRT reports.
BIRT provides a sample database as a datasource for the reports, so this tutorial will use that to show how to generate a PDF report with a table representing a journal catalog. The data for the table is obtained from a MySQL database.
Preliminary Setup
If you don't already have it installed, download and install Eclipse 3.1 and the JDK 1.4.2. Also download the BIRT Report Designer. Extract the report designer zip file to the Eclipse installation directory. The Eclipse directory in the zip file should match the Eclipse directory in Eclipse. Also download the Graphics Editor Framework (GEF) Runtime 3.1. Extract the GEF zip file to the Eclipse IDE. Download the Eclipse Modeling Framework (EMF) Runtime 2.1. Extract the EMF zip file to the Eclipse IDE. This installs the BIRT report designer.
Next, download and install the MySQL database. Download the MySQL Connector/J JDBC drivers file mysql-connector-java-3.1.12.zip. You can also use any other version of Connector/J. Extract the JDBC driver zip file to a directory.
Now, create a table in the MySQL database in which you want to create the PDF report. Access the MySQL database with this command-line command:
>mysql
Use the test database instance with this command:
mysql>use test
Create the example database table, named Catalog, with the SQL script in the following code:
PRIMARY KEY, Journal VARCHAR(25), Section VARCHAR(25),
Edition VARCHAR(25), Title Varchar(125), Author Varchar(25));
INSERT INTO Catalog VALUES('catalog2', 'dev2dev', 'WebLogic
Server', 'May 2004', 'WebLogic: The Definitive Guide', 'Jon Mountjoy');
INSERT INTO Catalog VALUES('catalog3', 'dev2dev', 'XML',
'June 2005', 'Integration using Data Services', 'Manu Madhusudhanan');
INSERT INTO Catalog VALUES('catalog1', 'dev2dev', 'WebLogic
Server', 'Nov 2005', 'Whats New in WebLogic Server 9.1', 'dev2dev');
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.