Generating reports with Jasper Reports Sean C Sullivan

  • Slides: 27
Download presentation
Generating reports with Jasper. Reports Sean C. Sullivan Portland Java Users Group April 2004

Generating reports with Jasper. Reports Sean C. Sullivan Portland Java Users Group April 2004

Agenda • Jasper. Reports • Jasper. Assistant

Agenda • Jasper. Reports • Jasper. Assistant

Jasper. Reports • open source Java reporting tool • http: //jasperreports. sourceforge. net/

Jasper. Reports • open source Java reporting tool • http: //jasperreports. sourceforge. net/

Using Jasper. Reports 1. Create a JRXML file 2. Load the JRXML file 3.

Using Jasper. Reports 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)

Hello Jasper import dori. jasper. engine. *; import dori. jasper. engine. design. *; import

Hello Jasper import dori. jasper. engine. *; import dori. jasper. engine. design. *; import java. sql. *; Jasper. Design design = Jasper. Manager. load. Xml. Design("hello. jrxml"); Jasper. Report report = Jasper. Manager. compile. Report(design);

Hello Jasper Result. Set rs = get. Result. Set(); JRData. Source data. Source =

Hello Jasper Result. Set rs = get. Result. Set(); JRData. Source data. Source = new JRResult. Set. Data. Source(rs); Map params = new java. util. Hash. Map(); params. put("Bonus", new Integer(12000)); params. put("Year", “ 2004”);

Hello Jasper. Print print = Jasper. Manager. fill. Report( report, param, data. Source); Jasper.

Hello Jasper. Print print = Jasper. Manager. fill. Report( report, param, data. Source); Jasper. Export. Manager. export. Report. To. Html. File( print, "hello. html"); Jasper. Export. Manager. export. Report. To. Pdf. File( print, "hello. pdf"); Jasper. Export. Manager. export. Report. To. Xml. File( print, "hello. xml", false);

Jasper. Reports 101 • design objects – Jasper. Design • report objects – Jasper.

Jasper. Reports 101 • design objects – Jasper. Design • report objects – Jasper. Report • datasource objects – JRData. Source • print objects – Jasper. Print

XML report templates • jasperreport. dtd • File extension: jrxml

XML report templates • jasperreport. dtd • File extension: jrxml

Example: JRXML file <? xml version="1. 0" encoding="UTF-8"? > <!DOCTYPE jasper. Report PUBLIC "-//Jasper.

Example: JRXML file <? xml version="1. 0" encoding="UTF-8"? > <!DOCTYPE jasper. Report PUBLIC "-//Jasper. Reports//DTD Report Design//EN" "http: //jasperreports. sourceforge. net/dtds/jasperre port. dtd"> <jasper. Report name="Simple. Report" page. Width="900" page. Height="1000" when. No. Data. Type="All. Sections. No. Detail" column. Width="555" left. Margin="20" right. Margin="20" top. Margin="30" bottom. Margin="30"> <!-- etc --> </jasper. Report>

Jasper. Design objects • Jasper. Manager. load. XMLDesign • Jasper. Manager. load. Design

Jasper. Design objects • Jasper. Manager. load. XMLDesign • Jasper. Manager. load. Design

Manager classes • dori. jasper. engine. Jasper. Manager • dori. jasper. engine. Jasper. Compile.

Manager classes • dori. jasper. engine. Jasper. Manager • dori. jasper. engine. Jasper. Compile. Manager • dori. jasper. engine. Jasper. Fill. Manager • dori. jasper. engine. Jasper. Print. Manager • dori. jasper. engine. Jasper. Export. Manager

Compiling designs Jasper. Design design = Jasper. Manager. load. Xml. Design("metrics. jrxml"); Jasper. Report

Compiling designs Jasper. Design design = Jasper. Manager. load. Xml. Design("metrics. jrxml"); Jasper. Report report = Jasper. Manager. compile. Report(design);

Ant task: <jrc> <jrc srcdir="${src. reports. dir}" destdir="${build. dir}/reports" tempdir="${build. dir}/temp" keepjava="true" xmlvalidation="true"> <classpath>

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>

Data sources • a data source is an object that provides data to Jasper's

Data sources • a data source is an object that provides data to Jasper's report engine • do not confuse with javax. sql. Data. Source

JRData. Source interface public interface JRData. Source { public boolean next() throws JRException; public

JRData. Source interface public interface JRData. Source { public boolean next() throws JRException; public Object get. Field. Value(JRField field) throws JRException; }

Data source classes • JRResult. Set. Data. Source • JRBean. Array. Data. Source •

Data source classes • JRResult. Set. Data. Source • JRBean. Array. Data. Source • JRBean. Collection. Data. Source • JRMap. Array. Data. Source • JRMap. Collection. Data. Source • JRTable. Model. Data. Source

Output formats • CSV (JRCsv. Exporter) • JPEG • PDF (JRPdf. Exporter) • XLS

Output formats • CSV (JRCsv. Exporter) • JPEG • PDF (JRPdf. Exporter) • XLS (JRXls. Exporter) • XML (JRXml. Exporter) • HTML (JRHtml. Exporter)

Jasper. Reports viewers Swing applications – dori. jasper. view. Jasper. Viewer – dori. jasper.

Jasper. Reports viewers Swing applications – dori. jasper. view. Jasper. Viewer – dori. jasper. view. Jasper. Design. Viewer

Jasper. Viewer

Jasper. Viewer

Jasper. Assistant • visual report designer • commercial tool (not open source) www. jasperassistant.

Jasper. Assistant • visual report designer • commercial tool (not open source) www. jasperassistant. com

Jasper. Assistant runs inside Eclipse

Jasper. Assistant runs inside Eclipse

Demo: Jasper. Assistant

Demo: Jasper. Assistant

Open source projects http: //jasperreports. sourceforge. net/ http: //www. jfree. org/jfreereport/ http: //datavision. sourceforge.

Open source projects http: //jasperreports. sourceforge. net/ http: //www. jfree. org/jfreereport/ http: //datavision. sourceforge. net/ http: //www. lowagie. com/i. Text/ http: //xml. apache. org/fop/

Commercial software • Report. Mill • Actuate • Windward Reports • Crystal Reports •

Commercial software • Report. Mill • Actuate • Windward Reports • Crystal Reports • Oracle Reports • Cognos Report. Net • Hyperion Reports

Beyond Jasper. Reports • Who is allowed to create and modify report templates? •

Beyond Jasper. Reports • 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?

Conclusion Download Jasper. Reports today http: //jasperreports. sourceforge. net

Conclusion Download Jasper. Reports today http: //jasperreports. sourceforge. net