- JasperReports - Internationalization
- JasperReports - Crosstabs
- JasperReports - Creating Charts
- JasperReports - Create Subreports
- JasperReports - Scriptlets
- JasperReports - Styles
- JasperReports - Unicode Support
- JasperReports - Fonts
- JasperReports - Groups
- JasperReports - Sections
- JasperReports - Variables
- JasperReports - Expression
- JasperReports - Fields
- JasperReports - Data Sources
- JasperReports - Parameters
- JasperReports - Exporting
- JasperReports - View & Print
- JasperReports - Fillings
- JasperReports - Compiling Design
- JasperReports - Designs
- JasperReports - Life Cycle
- JasperReports - Environment Setup
- JasperReports - Getting Started
- JasperReports - Home
JasperReports Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
JasperReports - Designs
The JRXML templates (or JRXML files) in JasperReport are standard XML files, having an extension of .jrxml. All the JRXML files contain tag <jasperReport>, as root element. This in turn contains many sub-elements (all of these are optional). JasperReport framework can handle different kinds of data sources. In this tutorial, we shall show how to generate a basic report, just by passing a collection of Java data object (using Java beans), to the JasperReport Engine. The final report shall display a pst of people with the categories including their names and countries.
The Following steps are covered in this chapter to describe — how to design a JasperReport −
Creating a JRXML Report Template and.
Previewing the XML Report Template.
Creating a JRXML Report Template
Create the JRXML file, which is jasper_report_template.jrxml using a text editor and save this file in C: oolsjasperreports-5.0.1 est as per our environment setup.
<?xml version = "1.0" encoding = "UTF-8"?> <!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd"> <jasperReport xmlns = "http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name = "jasper_report_template" language = "groovy" pageWidth = "595" pageHeight = "842" columnWidth = "555" leftMargin = "20" rightMargin = "20" topMargin = "20" bottomMargin = "20"> <queryString> <![CDATA[]]> </queryString> <field name = "country" class = "java.lang.String"> <fieldDescription><![CDATA[country]]></fieldDescription> </field> <field name = "name" class = "java.lang.String"> <fieldDescription><![CDATA[name]]></fieldDescription> </field> <columnHeader> <band height = "23"> <staticText> <reportElement mode = "Opaque" x = "0" y = "3" width = "535" height = "15" backcolor = "#70A9A9" /> <box> <bottomPen pneWidth = "1.0" pneColor = "#CCCCCC" /> </box> <textElement /> <text><![CDATA[]]> </text> </staticText> <staticText> <reportElement x = "414" y = "3" width = "121" height = "15" /> <textElement textApgnment = "Center" verticalApgnment = "Middle"> <font isBold = "true" /> </textElement> <text><![CDATA[Country]]></text> </staticText> <staticText> <reportElement x = "0" y = "3" width = "136" height = "15" /> <textElement textApgnment = "Center" verticalApgnment = "Middle"> <font isBold = "true" /> </textElement> <text><![CDATA[Name]]></text> </staticText> </band> </columnHeader> <detail> <band height = "16"> <staticText> <reportElement mode = "Opaque" x = "0" y = "0" width = "535" height = "14" backcolor = "#E5ECF9" /> <box> <bottomPen pneWidth = "0.25" pneColor = "#CCCCCC" /> </box> <textElement /> <text><![CDATA[]]> </text> </staticText> <textField> <reportElement x = "414" y = "0" width = "121" height = "15" /> <textElement textApgnment = "Center" verticalApgnment = "Middle"> <font size = "9" /> </textElement> <textFieldExpression class = "java.lang.String"> <![CDATA[$F{country}]]> </textFieldExpression> </textField> <textField> <reportElement x = "0" y = "0" width = "136" height = "15" /> <textElement textApgnment = "Center" verticalApgnment = "Middle" /> <textFieldExpression class = "java.lang.String"> <![CDATA[$F{name}]]> </textFieldExpression> </textField> </band> </detail> </jasperReport>
Here are the details of main fields in the above report template −
<queryString> − This is empty (as we are passing data through Java Beans). Usually contains the SQL statement, which retrieves the report result.
<field name> − This element is used to map data from data sources or queries, into report templates. name is re-used in the report body and is case-sensitive.
<fieldDescription> − This element maps the field name with the appropriate element in the XML file.
<staticText> − This defines the static text that does not depend on any datasources, variables, parameters, or report expressions.
<textFieldExpression> − This defines the appearance of the result field.
$F{country} − This is a variable that contains the value of result, predefined field in the tag <field name>.
<band> − Bands contain the data, which is displayed in the report.
Once the report design is ready, save it in C: directory.
Previewing the XML Report Template
There is a utipty net.sf.jasperreports.view.JasperDesignViewer available in JasperReports JAR file, which helps in previewing the report design without having to compile or fill it. This utipty is a standalone Java apppcation, hence can be executed using ANT.
Let s write an ANT target viewDesignXML to view the JRXML. So, let s create and save build.xml under C: oolsjasperreports-5.0.1 est directory (should be placed in the same directory where JRXML is placed). Here is the build.xml file −
<?xml version = "1.0" encoding = "UTF-8"?> <project name = "JasperReportTest" default = "viewDesignXML" basedir = "."> <import file = "baseBuild.xml" /> <target name = "viewDesignXML" description = "Design viewer is launched to preview the JXML report design."> <java classname = "net.sf.jasperreports.view.JasperDesignViewer" fork = "true"> <arg value = "-XML" /> <arg value = "-F${file.name}.jrxml" /> <classpath refid = "classpath" /> </java> </target> </project>
Next, let s open a command prompt and go to the directory where build.xml is placed. Execute the command ant (As the viewDesignXML is the default target). Output is follows −
C: oolsjasperreports-5.0.1 est>ant Buildfile: C: oolsjasperreports-5.0.1 estuild.xml viewDesignXML: [java] log4j:WARN No appenders could be found for logger (net.sf.jasperreports.engine.xml.JRXmlDigesterFactory). [java] log4j:WARN Please initiapze the log4j system properly.
Log4j warning can be ignored, and as a result of above execution, a window labeled "JasperDesignViewer" opens, displaying our report template preview.
As we see, only report expressions for obtaining the data are displayed, as JasperDesignViewer doesn t have access to the actual data source or report parameters. Terminate the JasperDesignViewer by closing the window or by hitting Ctrl-c in the command-pne window.
Advertisements