The flow chart overleaf illustrates the typical workflow while 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 hand-coded or generated by a graphical report designer. Even though JasperReports' report templates are XML files, 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 for them in this book.
Here is what a typical JRXML file looks like. We will discuss JRXML files in detail in Chapter 4.
The JRXML file here mostly illustrates the main elements of a JRXML file. All elements in the file are optional except for the root<jasperReport> element. The above JRXML file, when compiled and filled, will generate an empty report; not very useful in its own right, but it can be used as a template for creating more useful reports. As can be seen in the above 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 above example, all bands are empty. In real JRXML files, bands contain child elements that are 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. iReport, the official JasperReports graphical report designer, is covered in detail in Chapter 10.
JRXML files are compiled into a JasperReports native binary template, either programmatically by calling the appropriate methods on the JasperReports class library (compileReportToFile()), or by using a custom ANT task (used to compile multiple XML report design files in a single operation, by specifying the root directory that contains those files or by selecting them using file patterns) 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. The generated Jasper file can be filled as many times as necessary to create and display reports.
Filled reports can be saved to disk in a JasperReports native format. Reports saved in this format are known as JasperPrint files. JasperPrint file names have a .jrprint extension. JasperPrint files can only be viewed with a JasperReports-specific viewer. 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.