JasperReports is a powerful
open source reporting tool that has the ability to deliver rich content onto the
screen, to the printer or into PDF, HTML, XLS, CSV and XML files. It is entirely
written in Java and can be used in a variety of Java enabled applications to
generate dynamic content.
Its main purpose is to help
creating page oriented, ready to print documents in a simple and flexible
manner.JasperReports organizes data retrieved from a relational database through
JDBC according to the report design defined in an XML file. In order to fill a
report with data, the report design must be compiled first.
The compilation of the XML file
representing the report design is performed by the compileReport() method
exposed by the net.sf.jasperreports.engine.JasperManager class.Through
compilation, the report design is loaded into a report design object that is
then serialized and stored on disk (net.sf.jasperreports.engine.JasperReport).
This serialized object is then used when the application wants to fill the
specified report design with data. In fact, the compilation of a report design
implies the compilation of all Java expressions defined in the XML file
representing the report design. Various verifications are made at compilation
time, to check the report design consistency. The result is a ready to fill
report design that will be then used to generate documents on different sets of
In order to fill a report
design, one can use the fillReportXXX() methods exposed by the
net.sf.jasperreports.engine.JasperManager class. Those methods receive as a
parameter the report design object, or a file representing the specified report
design object, in a serialized form, and also a JDBC connection to the database
from where to retrieve the data to fill the report.
The result is an object that
represents the ready to print document (net.sf.jasperreports.engine.JasperPrint)
and can be stored onto the disk, in a serialized form, for later use, or can be
delivered to the printer, to the screen or can be transformed into a PDF, HTML,
XLS, CSV or XML document.