Integrating JasperReports with WebObjectsKieran Kelleher WOWODC 2010 MontrealGreen Island Consulting LLCSmartleadsUSA LLCSmartMix Technologies LLC
Friday, September 3, 2010
• Overview of JasperReports
• High Level Overview of Report Generation
• JasperReports Architecture & Dependencies
• WebObjects Integration
• Developing a Report
• Running a Report
Objectives
Friday, September 3, 2010
• http://jasperforge.org/projects/jasperreports
• “world's most popular open source reporting engine.”
• “entirely written in Java”
• “use data coming from any kind of data source”
• “produce pixel-perfect documents that can be viewed, printed or exported in a variety of document formats including HTML, PDF, Excel, OpenOffice and Word.”
What is ?
Friday, September 3, 2010
Feature Highlights• Pixel-perfect page-oriented or continuous output for web or print
• Traditional tabulated data, multi-level grouping and data aggregating by group
• Dashboards, tables, crosstabs, charts and gauges
• Report output in PDF, XML, HTML, CSV, XLS, RTF, TXT
• Integrated barcode support
• No limit to report size
• Conditional printing
• Sub-reports handle highly complex layouts
• Multiple data sources of multiple kinds in one report
• Internationalized and Localizable
• etc., etc.
Friday, September 3, 2010
Flexible Data Sources
• JRDataSource interface
• Database JDBC connection
• File CSV data source
• XML file data source
• etc., etc., etc.
• Custom JRDataSource
• KeyValueCoding objects
Friday, September 3, 2010
Development
Overview of Report Generation
Runtime
JRDataSource
JasperReports Engine Report
Report Properties HashMap
Friday, September 3, 2010
JasperReports Architecture Dependencies
iText JFreeChart Apache POI Apache Commons ... and more...
JasperReports
Jaxen-1.1.1 jpa.jar jxl-2.6.jar png-encoder-1.5 barcode4j-2.0
Friday, September 3, 2010
ERJasperReports
iText 2.1.7 JFreeChart 1.0.12 Apache POI 3.5 Apache Commons(various) ... and more...
JasperReports 3.7.4
ERJasperReports
Jaxen-1.1.1 jpa.jar jxl-2.6.jar png-encoder-1.5 barcode4j-2.0
Friday, September 3, 2010
What is in ERJasperReports
• jar libs for JasperReports and its essential dependencies
• Custom JRDataSource for array or enumeration of KVC objects.
• java.util.concurrent.Callable task operating on a EOFetchSpec
• Convenience utility method for calling JR.
• Add the framework to your project. Has Wonder dependency
• Not yet committed to Wonder :-(
• Should be within a week :-)
Friday, September 3, 2010
Planned Improvements
• Batching and EOEditingContext recycling for huge data-sets.
• API for subreports
• Planned before end of the year
Friday, September 3, 2010
“Quick” Test-Drive
• DEMO
Friday, September 3, 2010
ERJasperReports Usage - Typical Logic
Run Background Task
Create the EOFetchSpecification
Optionally create the Parameters HashMap
CreateLongResponse Page
CreateERJasperReportTask
Pre-Requisites
1. report.jasper file in Resources
2. ERJasperReports in the classpath
Download the Report
Friday, September 3, 2010
Report Design Tool
• iReport.app
• http://sourceforge.net/projects/ireport/files/
• iReport.dmg installer for OS X
• IMPORTANT: iReport version must match JasperReports
• JasperReports dist bundled inside iReport.app
• Current version is 3.7.4
Friday, September 3, 2010
iReport.app
Report Designer
Elements Palette
Property Sheet
Styles
ReportInspector
ProblemsConsole
Friday, September 3, 2010
Demo
• Designing a Report with iReport.app
• Example WebObjects app using JasperReports
Friday, September 3, 2010
Beta Project Repository
• http://montreal2010.googlecode.com/svn/trunk/
• ERJasperReports
• Wonder dependency
• ERExtensionsIncubator (temporary)
• ERJasperReportsExample
• ERJasperReports and its dependencies
• WKDemoReusable (temporary - to be merged into example)
Friday, September 3, 2010
Example Setup• Wonder needs to be installed
• svn checkout from http://montreal2010.googlecode.com/svn/trunk/
• ERJasperReports
• ERExtensionsIncubator
• ERJasperReportsExample
• WKDemoReusable
• ERMoviesLogic database setup
• ERJasperReportsExample/Documentation/README.txt
Friday, September 3, 2010
Documentation
• Best available (IMHO), to get you started...
• “jasper Reports 3.5 for Java Developers” - amazon.com
• Also....
• JasperForge.org (you probably need a free account)
• intros, tutorials, forum, etc.
• Down load source. See readme.txt, demo, dist/javadoc,
Friday, September 3, 2010
Resources
• http://sourceforge.net/projects/jasperreports/files/jasperreports
• http://sourceforge.net/projects/ireport/files/
• http://jasperforge.org/
• *Temporary Repository for Beta Project*
• http://code.google.com/p/montreal2010/source/checkout
Friday, September 3, 2010
Q&AIntegrating JasperReports with WebObjectsWOWODC 2010
Friday, September 3, 2010