In this post is a continuation of Jasper Report Part 1. here we will discuss about some advanced jasper report concepts like passing complex object like List, Date object and how to create and use local variable in jasper report, Add the sub-report and background image to report. Check my latest post about Integrate Charts into Jasper Reports.
here i am using JPA (Java Persistence API) for accessing the Database. so i create the two entity ShoppingCart and Item. here ShoppingCart entity contain list of Item entities. then i am going to pass these objects to Jasper Report. (Check the video in below)
ShoppingCart.java
Item.java
Create Report
now i am going create report. we can use iReport standalone or iReport Netbeans Plugin to create the report. first we need to create some fields in report. these fields are matched with ShoppingCart Bean property names and Data types also.
and set the data types of these fields correctly.
firstName ==> java.lang.String
then its creates the jasper file. and its compiled format of jasper report. check part 1 for more details of overview of jasper report.
now create one JSF page with single Command Button (Submit Button)
and we create one managed bean for above JSF page
DemoBean.java
Now when u run the project its generate the report in PDF file format.
now we integrate the sub report. so drag the sub-report component from palettes. then add the Item beans property as a fields names and correct data types.
and data types
itemName ==> java.lang.String
price ==> java.lang.Float
noOfUnits ==> java.lang.Integer
once sub report is ready then compile the subreports.
while create the subreport we passed the Empty Data Source. so now we need to change to listOfItems as a data source, we can't pass directly because its not accept List. so we need to wrap into the JRBeanCollectionDataSource Object.
so in main report select the sub report and change the properties
Connection Type ==> Use a datasource Expression
DataSource Expression ==> new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{listOfItems})
You Can Download this complete example from GitHub (or) google code .
How to use
I deployed same example in Jelastic Paas cloud, you can access through http://ramkicse.jelastic.servint.net/jasper/ URL
click the button to generate the report. (Its expired)
check How to deploy the Web application to Jelastic cloud
Check my latest post about Integrate Charts into Jasper Reports
Screen Cast (Watch the video in HD)
Comments are Welcomed
here i am using JPA (Java Persistence API) for accessing the Database. so i create the two entity ShoppingCart and Item. here ShoppingCart entity contain list of Item entities. then i am going to pass these objects to Jasper Report. (Check the video in below)
ShoppingCart.java
Item.java
Create Report
now i am going create report. we can use iReport standalone or iReport Netbeans Plugin to create the report. first we need to create some fields in report. these fields are matched with ShoppingCart Bean property names and Data types also.
and set the data types of these fields correctly.
firstName ==> java.lang.String
lastName ==> java.lang.String
dop ==> java.util.Date
listOfItems ==> java.util.List
then drag these fields to detail pane of the report as per needs. then right click the Report and compile the report
then its creates the jasper file. and its compiled format of jasper report. check part 1 for more details of overview of jasper report.
now create one JSF page with single Command Button (Submit Button)
and we create one managed bean for above JSF page
DemoBean.java
Now when u run the project its generate the report in PDF file format.
now we integrate the sub report. so drag the sub-report component from palettes. then add the Item beans property as a fields names and correct data types.
and data types
itemName ==> java.lang.String
price ==> java.lang.Float
noOfUnits ==> java.lang.Integer
once sub report is ready then compile the subreports.
while create the subreport we passed the Empty Data Source. so now we need to change to listOfItems as a data source, we can't pass directly because its not accept List. so we need to wrap into the JRBeanCollectionDataSource Object.
so in main report select the sub report and change the properties
Connection Type ==> Use a datasource Expression
DataSource Expression ==> new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{listOfItems})
You Can Download this complete example from GitHub (or) google code .
How to use
- Change the properties in persistence.xml file, like db name, db hostname ,username and password.
- Add necessary lib to class path like Hibernate libs, MySQL lib, Jasper Report lib. for simplicity in this zip contain war file under dist/ folder. so just extract and see all lib are located in WEB-INF/lib section. copy all files and add to to ur class path (Libraries )
- Create the jasperdb database in ur mysql server
- First run the NewServlet , this servlet create necessary tables in ur database. and insert some sample rows to the table.
- Finally run the index.xhtml file and generate the report.
check How to deploy the Web application to Jelastic cloud
Check my latest post about Integrate Charts into Jasper Reports
Screen Cast (Watch the video in HD)
Comments are Welcomed