Book Image

JasperReports 3.5 for Java Developers

Book Image

JasperReports 3.5 for Java Developers

Overview of this book

Do you want to create easily understood, professional, and powerful reports from disordered, scattered data using a free, open source Java class library? If your answer is yes, this book on JasperReports is what you are looking for. JasperReports is the world's most popular embeddable Java open source reporting library, providing Java developers with the power to easily create rich print and web reports. The book has been fully updated to use JasperReports 3.5, the latest version of JasperReports. Previously accepted techniques that have now been deprecated have been replaced with their modern counterparts. All examples in the book have been updated to use XML schemas for report templates. Coverage of new data sources that JasperReports now supports has been added to the book. Additionally, JasperReports can now export reports to even more formats than before and exporting reports to these new formats is covered in this new edition of the book. This book shows you exactly how to get started, and develop the skills to get the most from JasperReports. It introduces you to the latest version of JasperReports, and gets you creating complex and elegant reports. The book steers you through each point of report setup, to creating, designing, formatting, and exporting reports with data from a wide range of data sources, and integrating JasperReports with other Java frameworks. Starting with the basics of adding reporting capabilities to your application and creating report templates, you will first see how to produce your reports through the use of JRXML files, custom ANT targets, and then preview them in both the web browser and the native browser of JasperReports. Getting data into your reports is the next step, and you will see how to get data from a range of data sources, not only databases, but XML files, and Java Objects, among others. You will create better looking reports with formatting and grouping, as well as adding graphical elements to your reports. You will export your reports to a range of different formats, including PDF and XML. Creating reports will be made even easier with a walkthrough of the iReport Designer visual designing tool. To round things off, you will see how to integrate your reports with other Java frameworks, using Spring or Hibernate to get data for the report, and Java Server Faces or Struts for presenting the report. All examples have been updated to use XML schemas. New export formats, such as OpenDocument Text, and new data sources now supported by JasperReports are now covered in this updated edition.
Table of Contents (17 chapters)
JasperReports 3.5 for Java Developers
Credits
About the Author
About the Reviewers
Preface
Index

Typical workflow


The following flow chart illustrates the typical workflow followed when creating reports with JasperReports.

When working with JasperReports, the first step is to create a report template as an XML file. XML report templates can be handcoded or generated by a graphical report designer. Even though JasperReports report templates are XML files, by convention template filenames are given an extension of .jrxml. JasperReports XML templates are commonly referred to as JRXML files, which is the term we will use in this book.

Let's take a look at what a typical JRXML file looks like:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN""http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="simple_template">
  <title>
    <band height="50">
    </band>
  </title>
  <pageHeader>
    <band height="50">
    </band>
  </pageHeader>
  <columnHeader>
    <band height="30">
    </band>
  </columnHeader>
  <detail>
    <band height="100">
    </band>
  </detail>
  <columnFooter>
    <band height="30">
    </band>
  </columnFooter>
  <pageFooter>
    <band height="50">
    </band>
  </pageFooter>
  <lastPageFooter>
    <band height="50">
    </band>
  </lastPageFooter>
  <summary>
    <band height="50">
    </band>
  </summary>

</jasperReport>

This JRXML file illustrates the main elements of a JRXML file. All elements in the JRXML file are optional except for the root <jasperReport> element. This JRXML file, when compiled and filled, will generate an empty report, not very practical in its own right, but it can be used as a template for creating more useful templates. As can be seen in the example, each main element of the JRXML file contains a <band> element as its only child element. Bands contain the data that is displayed in the report. In the example, all the bands are empty. In real JRXML files, bands contain child elements used to position, format, and display the actual report data, both textual and graphical. There are commercial and open source visual design tools that can aid in the development of JRXML files. One such tool, iReport, the official JasperReports graphical report designer, is covered in detail in Chapter 10, Graphical Report Design with iReport.

JRXML files are "compiled" into a JasperReports native binary template either programmatically by calling the appropriate methods on the JasperReports class library, or by using a custom ANT task provided by JasperReports. The resulting compiled template is commonly known as the jasper file and is typically saved to disk with a .jasper extension. The jasper file is then used to generate the final report by providing it with its required data. This process is known as filling the report. A JRXML file has to be compiled only once, while the generated jasper file can be filled as many times as necessary to create and display reports.

The filled reports can be saved to disk in a JasperReports' native format. Reports saved in this format are known as JasperPrint files. The JasperPrint file names have a .jrprint extension. JasperPrint files can only be viewed with a JasperReports specific viewer. The JasperPrint files can be exported to other formats so that they can be opened with commonly available tools like PDF viewers and word processors. Exporting to other formats is discussed in detail in Chapter 9, Exporting to Other Formats.