Top Banner
Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004
27
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: jasperreports-pjug-2004-04-27

Generating reports with JasperReports

Sean C. SullivanPortland Java Users GroupApril 2004

Page 2: jasperreports-pjug-2004-04-27

Agenda

• JasperReports

• JasperAssistant

Page 3: jasperreports-pjug-2004-04-27

JasperReports

• http://jasperreports.sourceforge.net/

• open source Java reporting tool

Page 4: jasperreports-pjug-2004-04-27

Using JasperReports

1. Create a JRXML file

2. Load the JRXML file

3. Compile the report

4. Fill the report with data

5. Export the report (PDF, HTML, etc)

Page 5: jasperreports-pjug-2004-04-27

Hello Jasper

import dori.jasper.engine.*;

import dori.jasper.engine.design.*;

import java.sql.*;

JasperDesign design = JasperManager.loadXmlDesign("hello.jrxml");

JasperReport report = JasperManager.compileReport(design);

Page 6: jasperreports-pjug-2004-04-27

Hello Jasper

ResultSet rs = getResultSet();

JRDataSource dataSource = new JRResultSetDataSource(rs);

Map params = new java.util.HashMap();

params.put("Bonus", new Integer(12000));

params.put("Year", “2004”);

Page 7: jasperreports-pjug-2004-04-27

Hello Jasper

JasperPrint print = JasperManager.fillReport(

report, param, dataSource);

JasperExportManager.exportReportToHtmlFile(

print, "hello.html");

JasperExportManager.exportReportToPdfFile(

print, "hello.pdf");

JasperExportManager.exportReportToXmlFile(

print, "hello.xml", false);

Page 8: jasperreports-pjug-2004-04-27

JasperReports 101

• design objects– JasperDesign

• report objects– JasperReport

• datasource objects– JRDataSource

• print objects– JasperPrint

Page 9: jasperreports-pjug-2004-04-27

XML report templates

• jasperreport.dtd

• File extension: jrxml

Page 10: jasperreports-pjug-2004-04-27

Example: JRXML file

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD

Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">

<jasperReport name="SimpleReport" pageWidth="900" pageHeight="1000" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="30" bottomMargin="30">

<!-- etc -->

</jasperReport>

Page 11: jasperreports-pjug-2004-04-27

JasperDesign objects

• JasperManager.loadXMLDesign

• JasperManager.loadDesign

Page 12: jasperreports-pjug-2004-04-27

Manager classes

• dori.jasper.engine.JasperManager

• dori.jasper.engine.JasperCompileManager

• dori.jasper.engine.JasperFillManager

• dori.jasper.engine.JasperPrintManager

• dori.jasper.engine.JasperExportManager

Page 13: jasperreports-pjug-2004-04-27

Compiling designs

JasperDesign design = JasperManager.loadXmlDesign("metrics.jrxml");

JasperReport report = JasperManager.compileReport(design);

Page 14: jasperreports-pjug-2004-04-27

Ant task: <jrc>

<jrc srcdir="${src.reports.dir}" destdir="${build.dir}/reports" tempdir="${build.dir}/temp" keepjava="true" xmlvalidation="true"> <classpath> <pathelement location="${classes.dir}"/> <fileset dir="${lib.dir}"> <include name="**/*.jar"/> </fileset> </classpath></jrc>

Page 15: jasperreports-pjug-2004-04-27

Data sources

• a data source is an object that provides data to Jasper's report engine

• do not confuse with javax.sql.DataSource

Page 16: jasperreports-pjug-2004-04-27

JRDataSource interface

public interface JRDataSource

{

public boolean next()

throws JRException;

public Object getFieldValue(JRField field)

throws JRException;

}

Page 17: jasperreports-pjug-2004-04-27

Data source classes

• JRResultSetDataSource

• JRBeanArrayDataSource

• JRBeanCollectionDataSource

• JRMapArrayDataSource

• JRMapCollectionDataSource

• JRTableModelDataSource

Page 18: jasperreports-pjug-2004-04-27

Output formats

• CSV (JRCsvExporter)

• JPEG

• PDF (JRPdfExporter)

• XLS (JRXlsExporter)

• XML (JRXmlExporter)

• HTML (JRHtmlExporter)

Page 19: jasperreports-pjug-2004-04-27

JasperReports viewers

Swing applications– dori.jasper.view.JasperViewer– dori.jasper.view.JasperDesignViewer

Page 20: jasperreports-pjug-2004-04-27

JasperViewer

Page 21: jasperreports-pjug-2004-04-27

JasperAssistant

• visual report designer

• commercial tool (not open source)

www.jasperassistant.com

Page 22: jasperreports-pjug-2004-04-27

JasperAssistant

JasperAssistant runs inside Eclipse

Page 23: jasperreports-pjug-2004-04-27

Demo: JasperAssistant

Page 24: jasperreports-pjug-2004-04-27

Open source projects

http://jasperreports.sourceforge.net/

http://www.jfree.org/jfreereport/

http://datavision.sourceforge.net/

http://www.lowagie.com/iText/

http://xml.apache.org/fop/

Page 25: jasperreports-pjug-2004-04-27

Commercial software

• ReportMill

• Actuate

• Windward Reports

• Crystal Reports

• Oracle Reports

• Cognos ReportNet

• Hyperion Reports

Page 26: jasperreports-pjug-2004-04-27

Beyond JasperReports

• Who is allowed to create and modify report templates?

• Where are the report templates stored?

• How will you publish and distribute the reports?

• Do you need to archive the reports?

• Will you generate reports on demand or on a fixed schedule (nightly, weekly) ?

• Is user A allowed to view report B?

Page 27: jasperreports-pjug-2004-04-27

Conclusion

Download JasperReports today

http://jasperreports.sourceforge.net