Guide J - Repoerts
Guide J - Repoerts
Audience
This tutorial is designed for Software Professionals as well as for all those beginners who
would like to learn the concepts of JasperReports.
Prerequisites
Before proceeding with this tutorial, it is expected that you have a basic understanding of
Java programming language. A basic understanding of Java and other associated
programming will be an additional advantage to understand the topic.
All the content and graphics published in this e-book are the property of Tutorials Point (I)
Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute or republish
any contents or a part of the contents of this e-book in any manner without written consent
of the publisher.
We strive to update the contents of our website and tutorials as timely and as precisely as
possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt.
Ltd. provides no guarantee regarding the accuracy, timeliness, or completeness of our
website or its contents including this tutorial. If you discover any errors on our website or
in this tutorial, please notify us at [email protected]
i
JasperReports
Table of Contents
About the Tutorial ------------------------------------------------------------------------------------------------------------------- i
Audience -------------------------------------------------------------------------------------------------------------------------------- i
Prerequisites --------------------------------------------------------------------------------------------------------------------------- i
JasperReports ------------------------------------------------------------------------------------------------------------------------ 2
Printing Reports-------------------------------------------------------------------------------------------------------------------- 37
9. REPORTS PARAMETERS---------------------------------------------------------------------------------- 49
Parameter Declaration----------------------------------------------------------------------------------------------------------- 49
Example ------------------------------------------------------------------------------------------------------------------------------ 50
Calculator ---------------------------------------------------------------------------------------------------------------------------- 76
Example ------------------------------------------------------------------------------------------------------------------------------ 89
Main Sections----------------------------------------------------------------------------------------------------------------------- 99
Unicode------------------------------------------------------------------------------------------------------------------------------ 137
iv
JasperReports
v
JasperReports
vi
JasperReports
1. JASPERREPORTS – GETTING STARTED
What is a Report?
A report is a meaningful, well-defined, and summarized presentation of information. Usually,
the routine activities are automated and data summarized into a decision-supporting
"Reports". Reports represent usual messy data into charts, graphs, and other forms of
graphical representations.
Report Template
Generally, the following layout is adopted to generate reports by most of the commercial
report generating tools.
TITLE
PAGEHEADER
COLUNHEADER
DETAIL
COLUMNFOOTER
PAGEFOOTER
SUMMARY
Element Description
Title contains the ‘Title’ of the report. It appears only once at
title the very beginning of the report, for example, "Tutorials Point
Report."
PageHeader may contain date and time information and/or
pageHeader
organization name. This appears at the top of each page.
ColumnHeader lists the names of those specific fields, which
columnHeader you want to display in the report, for example, "Author Name,"
"Starting Hour," "Finishing Hour," "Hours Worked," "Date," etc.
Detail is the part where entries of the specific fields (listed in
detail columnHeader) are shown, for example "Manisha", "9:00",
"18:00", "9", "10.02.2013."
7
JasperReports
JasperReports
Following are the common troubles faced during the report development:
Results exporting: There are a wide range of formats, which your report can be
exported to, such as: HTML, Text, PDF, MS Excel, RTF, ODT, Comma-separated values,
XML, or image.
Charts reports: Visual charts, for example, Graph, Pie, XY Line, Bar, Meter, and Time
series.
To remove the overhead of the above mentioned points and to facilitate the reporting process,
a lot of frameworks, tools, libraries, and 3rd parties applications were introduced.
JasperReports is one of them.
JasperReports is an open source java reporting engine. It is Java based and doesn't have
its own expression syntax. JasperReports has the ability to deliver rich content onto the
screen, to the printer, or into PDF, HTML, XLS, RTF, ODT, CSV, TXT, and XML files. As it is
not a standalone tool, it cannot be installed on its own. Instead, it is embedded into Java
applications by including its library in the application's CLASSPATH.
JasperReports is a Java class library, and is not meant for the end users, but rather is targeted
towards Java developers who need to add reporting capabilities to their applications.
Features of JasperReports
Some of the significant features of JasperReports are:
8
JasperReports
It can generate watermarks (A watermark is like a secondary image that is laid over
the primary image).
9
JasperReports
2. JASPERREPORTS – ENVIRONMENT SETUP
JasperReports is a pure Java library and not a standalone application. It cannot run on its
own, hence it needs to be embedded into another client or server-side Java application. As it
is Java based, it can be run on any platform that supports Java (JDK 1.3 and above). All the
JasperReport’s functionalities are gathered in a single JAR file, jasperreports-x.x.x.jar. This
JAR along with the required and optional libraries (.ZIP file) can be downloaded from the site:
JasperReport Library Link. Download the latest version from this link.
The ZIP file includes the JasperReports JAR file along with the JasperReports source code,
dependent JARs, and a lot of examples demonstrating JasperReport's functionalities.
JasperReport Environment
To start creating the reports, we need to set up the environment ready. Extract the
downloaded JasperReport.ZIP file to any location (in our case, we have extracted it to
C:\tools\jasperreports-5.0.1). The directory structure of the extracted file is same as shown
below:
dist: Contains jasperreports-x.x.x.jar file. We shall add this JAR file to our CLASSPATH
to take advantage of JasperReports.
10
JasperReports
lib: Contains all JARs needed, both to build JasperReports and to use it in our
applications.
build.xml: An ANT build file to build the JasperReports source code. If we don't intend
to modify JasperReports, we don't need to use this file since JasperReports is
distributed in the compiled form.
changes.txt: A text document, explaining the differences between the current and
previous versions of the JasperReports class library.
license.txt: A text document that contains the full text of the LGPL (Lesser General
Public License) license.
readme.txt: A text document, containing instructions on how to build and execute the
supplied examples.
Basically, we only use the jasperreports-x.x.x.jar under the dist and JARs under the lib
directory for generating reports. As JasperReports being an open source tool, if any defect or
bug is recognized during execution in the jasperreports-x.x.x.jar, we can fix it and build the
JAR again using the build.xml file.
At the time of installation, we used JasperReport version 5.0.1. Right-click on 'My Computer'
and select 'Properties', click on the 'Environment variables' button under the 'Advanced' tab.
Now update the 'Path' variable with this C:\tools\jasperreports-
5.0.1\dist\jasperreports-5.0.1.jar:C:\tools\jasperreports-5.0.1\lib. Now you are
ready to create your reports.
In all the examples in this tutorial, we have used ANT tasks to generate reports. The build
file takes care of importing all the required JARs for generating reports. Hence, setting
CLASSPATH as mentioned above will only help those who wish to generate reports without
using ANT.
Build Setup
All the examples in this tutorial:
11
JasperReports
have been compiled and executed from command prompt, using Apache ANT. We will
use a baseBuild.xml file, which we shall import in ANT build.xml file in the
subsequent chapters. Save this file to C:\tools\jasperreports-5.0.1\test. Following is
the content of baseBuild.xml file:
<path id="classpath">
<pathelement location="./" />
<pathelement location="${classes.dir}" />
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
<fileset dir="${dist.dir}">
<include name="**/*.jar" />
</fileset>
</path>
12
JasperReports
</target>
This file has all the required targets, like cleaning the directories, compiling the java files, and
executing the class files.
Following are the details, mentioned by various directories in baseBuild.xml. Assuming current
directory is C:\tools\jasperreports-5.0.1\test):
src.dir: is C:\tools\jasperreports-5.0.1\test\src
classes.dir: is C:\tools\jasperreports-5.0.1\test\classes
package com.tutorialspoint;
14
JasperReports
15
JasperReports
3. JASPERREPORTS – LIFE CYCLE
The main purpose of JasperReports is to create page oriented, ready to print documents in a
simple and flexible manner. The following flow chart depicts a typical work flow while creating
reports.
As shown in the image, the life cycle has the following distinct phases:
Designing the report: In this step, we create the JRXML file, which is an XML
document that contains the definition of the report layout. We can use any text editor
or iReportDesigner to manually create it. If iReportDesigner is used, the layout is
designed in a visual way, hence real structure of the JRXML can be ignored.
Compiling the report: In this step, JRXML is compiled in a binary object called a
Jasper file (*.jasper). This compilation is done for performance reasons. Jasper files
are what you need to ship with your application in order to run the reports.
16
JasperReports
Executing the report (Filling data into the report): In this step, data from the
application is filled in the compiled report. The class
net.sf.jasperreports.engine.JasperFillManager provides necessary functions to fill the
data in the reports. A Jasper print file (*.jrprint) is created, which can be used either
to print or export the report.
Exporting the report to desired format: In this step, we can export the Jasper
print file created in the previous step to any format using JasperExportManager. As
Jasper provides various forms of exports, hence with the same input, we can create
multiple representations of the data.
A detailed overview of each of the above steps will be given in the subsequent chapters.
17
JasperReports
4. 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 list 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:
<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 lineWidth="1.0" lineColor="#CCCCCC" />
</box>
<textElement />
<text><![CDATA[]]> </text>
</staticText>
<staticText>
<reportElement x="414" y="3" width="121" height="15" />
<textElement textAlignment="Center"
verticalAlignment="Middle">
<font isBold="true" />
</textElement>
<text><![CDATA[Country]]></text>
</staticText>
<staticText>
<reportElement x="0" y="3" width="136" height="15" />
<textElement textAlignment="Center"
verticalAlignment="Middle">
<font isBold="true" />
</textElement>
<text><![CDATA[Name]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="16">
19
JasperReports
<staticText>
<reportElement mode="Opaque" x="0" y="0" width="535"
height="14" backcolor="#E5ECF9" />
<box>
<bottomPen lineWidth="0.25" lineColor="#CCCCCC" />
</box>
<textElement />
<text><![CDATA[]]> </text>
</staticText>
<textField>
<reportElement x="414" y="0" width="121" height="15" />
<textElement textAlignment="Center"
verticalAlignment="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 textAlignment="Center"
verticalAlignment="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.
20
JasperReports
<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 data sources,
variables, parameters, or report expressions.
$F{country}: This is a variable that contains the value of result, predefined field in the
tag <field name>.
Let's write an ANT target viewDesignXML to view the JRXML. So, let's create and save
build.xml under C:\tools\jasperreports-5.0.1\test directory (should be placed in the same
directory where JRXML is placed). Here is the build.xml file:
</project>
21
JasperReports
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:\tools\jasperreports-5.0.1\test>ant
Buildfile: C:\tools\jasperreports-5.0.1\test\build.xml
viewDesignXML:
[java] log4j:WARN No appenders could be found for logger
(net.sf.jasperreports.engine.xml.JRXmlDigesterFactory).
[java] log4j:WARN Please initialize the log4j system properly.
Log4j warning can be ignored, and as a result of the 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-
line window.
22
JasperReports
5. JASPERREPORTS - COMPILING REPORT DESIGN
We have generated the JasperReport template (JRXML file) in the previous chapter. This file
cannot be used directly to generate reports. It has to be compiled to JasperReport' native
binary format, called Jasper file. On compiling, we transform JasperDesign object into
JasperReport object:
Programmatic compilation.
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 lineWidth="1.0" lineColor="#CCCCCC" />
</box>
<textElement />
<text><![CDATA[]]> </text>
</staticText>
<staticText>
<reportElement x="414" y="3" width="121" height="15" />
<textElement textAlignment="Center"
verticalAlignment="Middle">
<font isBold="true" />
</textElement>
<text><![CDATA[Country]]></text>
</staticText>
24
JasperReports
<staticText>
<reportElement x="0" y="3" width="136" height="15" />
<textElement textAlignment="Center"
verticalAlignment="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 lineWidth="0.25" lineColor="#CCCCCC" />
</box>
<textElement />
<text><![CDATA[]]> </text>
</staticText>
<textField>
<reportElement x="414" y="0" width="121" height="15" />
<textElement textAlignment="Center"
verticalAlignment="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" />
25
JasperReports
<textElement textAlignment="Center"
verticalAlignment="Middle" />
<textFieldExpression class="java.lang.String">
<![CDATA[$F{name}]]>
</textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
package com.tutorialspoint;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
26
JasperReports
}
}
Template Compilation
As next step, let's save the above content in the file C:\tools\jasperreports-
5.0.1\test\src\com\tutorialspoint\JasperReportCompile.java and import the
baseBuild.xml in the build.xml file as below. The baseBuild.xml already has the compile and
run targets:
<import file="baseBuild.xml"/>
</project>
Next, let's open command line window and go to the directory where build.xml is placed.
Finally, execute the command ant -Dmain-
class=com.tutorialspoint.JasperReportCompile as:
C:\tools\jasperreports-5.0.1\test>ant -Dmain-
class=com.tutorialspoint.JasperReportCompile
Buildfile: C:\tools\jasperreports-5.0.1\test\build.xml
compile:
[javac] C:\tools\jasperreports-5.0.1\test\baseBuild.xml:27:
warning: 'includeantruntime' was not set, defaulting to
build.sysclasspath=last;set to false for repeatable builds
[javac] Compiling 1 source file to C:\tools\jasperreports-5.0.1\test\classes
run:
[echo] Runnin class : com.tutorialspoint.JasperReportCompile
[java] Compiling Report Design ...
[java] log4j:WARN No appenders could be found for logger
(net.sf.jasperreports.engine.xml.JRXmlDigesterFactory).
[java] log4j:WARN Please initialize the log4j system properly.
[java] Done compiling!!! ...
27
JasperReports
BUILD SUCCESSFUL
Total time: 8 seconds
As a result of the above compilation, you will see that template file
jasper_report_template.jasper got generated in C:\tools\jasperreports-5.0.1\test directory.
To move further, let's add a new target viewDesign to the above build.xml file, which will
allow us to preview the compiled report. Below is the revised build.xml:
The import file - baseBuild.xml is picked from chapter Environment Setup and should be
placed in the same directory as the build.xml.
</project>
Let's execute the command: ant (viewDesign is the default target) at command prompt.
JasperDesignViewer window opens up displaying the Jasper file as below:
28
JasperReports
Template Compilation
Let's add new target compilereportdesing to our existing build.xml. Here, the source folder
is specified using a nested <src> tag with the filesets. The nested source tag allows compiling
report templates that are scattered through many different locations and are not grouped
under a single root report source folder. Below is the revised build.xml:
<java classname="net.sf.jasperreports.view.JasperDesignViewer"
fork="true">
<arg value="-F${file.name}.jasper" />
<classpath refid="classpath" />
</java>
</target>
</project>
Next, let's open command prompt and go to the directory where build.xml is placed. Execute
the command ant (compilereportdesing is the default target); Output is as follows:
C:\tools\jasperreports-5.0.1\test>ant
Buildfile: C:\tools\jasperreports-5.0.1\test\build.xml
compilereportdesing:
[jrc] Compiling 1 report design files.
[jrc] log4j:WARN No appenders could be found for logger
(net.sf.jasperreports.engine.xml.JRXmlDigesterFactory).
30
JasperReports
BUILD SUCCESSFUL
Total time: 5 seconds
31
JasperReports
6. JASPERREPORTS – FILLING REPORTS
The main purpose of any reporting tool is to produce high quality documents. Report filling
process helps reporting tool to achieve this by manipulating sets of data.
Report Parameters: These are basically named values that are passed at the report
filling time to the engine. We will discuss them in Report Parameter chapter.
Data Source: We can fill a Jasper file from a range of data sources like an SQL query,
an XML file, a csv file, an HQL (Hibernate Query Language) query, a collection of Java
Beans, etc. This will be discussed in detail in Report Data Sources chapter.
The output generated by this process is a .jrprint document which is ready to be viewed,
printed, or exported to other formats. The facade class
net.sf.jasperreports.engine.JasperFillManager is usually used for filling a report template with
data. This class has various fillReportXXX() methods that fill report templates (templates could
be located on disk, picked from input streams, or are supplied directly as in-memory).
1. The first type, receive a java.sql.Connection object as the third parameter. Most of the
times, reports are filled with data from a relational database. This is achieved by:
JasperReports engine uses the connection passed in and executes the SQL
query.
32
JasperReports
<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 lineWidth="1.0" lineColor="#CCCCCC" />
</box>
<textElement />
<text><![CDATA[]]> </text>
</staticText>
<staticText>
<reportElement x="414" y="3" width="121" height="15" />
<textElement textAlignment="Center"
verticalAlignment="Middle">
<font isBold="true" />
33
JasperReports
</textElement>
<text><![CDATA[Country]]></text>
</staticText>
<staticText>
<reportElement x="0" y="3" width="136" height="15" />
<textElement textAlignment="Center"
verticalAlignment="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 lineWidth="0.25" lineColor="#CCCCCC" />
</box>
<textElement />
<text><![CDATA[]]> </text>
</staticText>
<textField>
<reportElement x="414" y="0" width="121" height="15" />
<textElement textAlignment="Center"
verticalAlignment="Middle">
<font size="9" />
</textElement>
<textFieldExpression class="java.lang.String">
<![CDATA[$F{country}]]>
</textFieldExpression>
34
JasperReports
</textField>
<textField>
<reportElement x="0" y="0" width="136" height="15" />
<textElement textAlignment="Center"
verticalAlignment="Middle" />
<textFieldExpression class="java.lang.String">
<![CDATA[$F{name}]]>
</textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
Next, let's pass a collection of Java data objects (Java beans), to the JasperReports Engine,
to fill this compiled report.
Write a POJO DataBean.java, which represents the data object (Java bean). This class defines
two String objects i.e. ‘name’ and ‘country.’ Save it to the directory C:\tools\jasperreports-
5.0.1\test\src\com\tutorialspoint.
package com.tutorialspoint;
35
JasperReports
Write a class DataBeanList.java, which has business logic to generate a collection of java bean
objects. This is further passed to the JasperReports engine, to generate the report. Here we
are adding 4 DataBean objects in the List. Save it to the directory C:\tools\jasperreports-
5.0.1\test\src\com\tutorialspoint.
package com.tutorialspoint;
import java.util.ArrayList;
dataBeanList.add(produce("Manisha", "India"));
dataBeanList.add(produce("Dennis Ritchie", "USA"));
dataBeanList.add(produce("V.Anand", "India"));
dataBeanList.add(produce("Shrinath", "California"));
return dataBeanList;
}
/**
* This method returns a DataBean object,
* with name and country set in it.
*/
private DataBean produce(String name, String country) {
DataBean dataBean = new DataBean();
dataBean.setName(name);
36
JasperReports
dataBean.setCountry(country);
return dataBean;
}
}
Write a main class file JasperReportFill.java, which gets the java bean collection from the
class (DataBeanList) and passes it to the JasperReports engine, to fill the report template.
Save it to the directory C:\tools\jasperreports-5.0.1\test\src\com\tutorialspoint.
package com.tutorialspoint;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
JRBeanCollectionDataSource beanColDataSource =
new JRBeanCollectionDataSource(dataList);
JasperFillManager.fillReportToFile(
sourceFileName,
parameters,
beanColDataSource);
} catch (JRException e) {
e.printStackTrace();
}
}
}
Generating Reports
We will now compile and execute these files using our regular ANT build process. The build.xml
file is as given below:
The import file - baseBuild.xml is picked from chapter Environment Setup and should be
placed in the same directory as the build.xml.
Next, let's open command line window and go to the directory where build.xml is placed.
Finally, execute the command ant -Dmain-class=com.tutorialspoint.JasperReportFill
(executereport is the default target) as follows:
C:\tools\jasperreports-5.0.1\test>ant -Dmain-
class=com.tutorialspoint.JasperReportFill
Buildfile: C:\tools\jasperreports-5.0.1\test\build.xml
compile:
[javac] C:\tools\jasperreports-5.0.1\test\baseBuild.xml:27:
warning: 'includeantruntime' was not set, defaulting to
build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 1 source file to
C:\tools\jasperreports-5.0.1\test\classes
run:
[echo] Runnin class : com.tutorialspoint.JasperReportFill
[java] log4j:WARN No appenders could be found for logger
(net.sf.jasperreports.extensions.ExtensionsEnvironment).
[java] log4j:WARN Please initialize the log4j system properly.
BUILD SUCCESSFUL
Total time: 8 seconds
39
JasperReports
40