jasperreports-pjug-2004-04-27
TRANSCRIPT
![Page 1: jasperreports-pjug-2004-04-27](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/1.jpg)
Generating reports with JasperReports
Sean C. SullivanPortland Java Users GroupApril 2004
![Page 2: jasperreports-pjug-2004-04-27](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/2.jpg)
Agenda
• JasperReports
• JasperAssistant
![Page 3: jasperreports-pjug-2004-04-27](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/3.jpg)
JasperReports
• http://jasperreports.sourceforge.net/
• open source Java reporting tool
![Page 4: jasperreports-pjug-2004-04-27](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/8.jpg)
JasperReports 101
• design objects– JasperDesign
• report objects– JasperReport
• datasource objects– JRDataSource
• print objects– JasperPrint
![Page 9: jasperreports-pjug-2004-04-27](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/9.jpg)
XML report templates
• jasperreport.dtd
• File extension: jrxml
![Page 10: jasperreports-pjug-2004-04-27](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/11.jpg)
JasperDesign objects
• JasperManager.loadXMLDesign
• JasperManager.loadDesign
![Page 12: jasperreports-pjug-2004-04-27](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/13.jpg)
Compiling designs
JasperDesign design = JasperManager.loadXmlDesign("metrics.jrxml");
JasperReport report = JasperManager.compileReport(design);
![Page 14: jasperreports-pjug-2004-04-27](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/16.jpg)
JRDataSource interface
public interface JRDataSource
{
public boolean next()
throws JRException;
public Object getFieldValue(JRField field)
throws JRException;
}
![Page 17: jasperreports-pjug-2004-04-27](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/17.jpg)
Data source classes
• JRResultSetDataSource
• JRBeanArrayDataSource
• JRBeanCollectionDataSource
• JRMapArrayDataSource
• JRMapCollectionDataSource
• JRTableModelDataSource
![Page 18: jasperreports-pjug-2004-04-27](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/18.jpg)
Output formats
• CSV (JRCsvExporter)
• JPEG
• PDF (JRPdfExporter)
• XLS (JRXlsExporter)
• XML (JRXmlExporter)
• HTML (JRHtmlExporter)
![Page 19: jasperreports-pjug-2004-04-27](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/19.jpg)
JasperReports viewers
Swing applications– dori.jasper.view.JasperViewer– dori.jasper.view.JasperDesignViewer
![Page 20: jasperreports-pjug-2004-04-27](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/20.jpg)
JasperViewer
![Page 21: jasperreports-pjug-2004-04-27](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/21.jpg)
JasperAssistant
• visual report designer
• commercial tool (not open source)
www.jasperassistant.com
![Page 22: jasperreports-pjug-2004-04-27](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/22.jpg)
JasperAssistant
JasperAssistant runs inside Eclipse
![Page 23: jasperreports-pjug-2004-04-27](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/23.jpg)
Demo: JasperAssistant
![Page 24: jasperreports-pjug-2004-04-27](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/25.jpg)
Commercial software
• ReportMill
• Actuate
• Windward Reports
• Crystal Reports
• Oracle Reports
• Cognos ReportNet
• Hyperion Reports
![Page 26: jasperreports-pjug-2004-04-27](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062706/557210b6497959fc0b8d99ef/html5/thumbnails/27.jpg)
Conclusion
Download JasperReports today
http://jasperreports.sourceforge.net