generating reports with jasperreports sean c. sullivan portland java users group april 2004

27
Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

Upload: lesley-gray

Post on 28-Dec-2015

236 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

Generating reports with JasperReports

Sean C. SullivanPortland Java Users GroupApril 2004

Page 2: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

Agenda

• JasperReports

• JasperAssistant

Page 3: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

JasperReports

• http://jasperreports.sourceforge.net/

• open source Java reporting tool

Page 4: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

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: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

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: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

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: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

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: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

JasperReports 101

• design objects– JasperDesign

• report objects– JasperReport

• datasource objects– JRDataSource

• print objects– JasperPrint

Page 9: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

XML report templates

• jasperreport.dtd

• File extension: jrxml

Page 10: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

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: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

JasperDesign objects

• JasperManager.loadXMLDesign

• JasperManager.loadDesign

Page 12: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

Manager classes

• dori.jasper.engine.JasperManager

• dori.jasper.engine.JasperCompileManager

• dori.jasper.engine.JasperFillManager

• dori.jasper.engine.JasperPrintManager

• dori.jasper.engine.JasperExportManager

Page 13: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

Compiling designs

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

JasperReport report = JasperManager.compileReport(design);

Page 14: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

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: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

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: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

JRDataSource interface

public interface JRDataSource

{

public boolean next()

throws JRException;

public Object getFieldValue(JRField field)

throws JRException;

}

Page 17: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

Data source classes

• JRResultSetDataSource

• JRBeanArrayDataSource

• JRBeanCollectionDataSource

• JRMapArrayDataSource

• JRMapCollectionDataSource

• JRTableModelDataSource

Page 18: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

Output formats

• CSV (JRCsvExporter)

• JPEG

• PDF (JRPdfExporter)

• XLS (JRXlsExporter)

• XML (JRXmlExporter)

• HTML (JRHtmlExporter)

Page 19: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

JasperReports viewers

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

Page 20: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

JasperViewer

Page 21: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

JasperAssistant

• visual report designer

• commercial tool (not open source)

www.jasperassistant.com

Page 22: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

JasperAssistant

JasperAssistant runs inside Eclipse

Page 23: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

Demo: JasperAssistant

Page 24: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

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: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

Commercial software

• ReportMill

• Actuate

• Windward Reports

• Crystal Reports

• Oracle Reports

• Cognos ReportNet

• Hyperion Reports

Page 26: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

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: Generating reports with JasperReports Sean C. Sullivan Portland Java Users Group April 2004

Conclusion

Download JasperReports today

http://jasperreports.sourceforge.net