SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
Integrating JasperReports with
                    WebObjects
                     Kieran Kelleher               WOWODC 2010 Montreal
                     Green Island Consulting LLC
                     SmartleadsUSA LLC
                     SmartMix Technologies LLC




Friday, September 3, 2010
Objectives
                            •   Overview of JasperReports

                            •   High Level Overview of Report Generation

                            •   JasperReports Architecture & Dependencies

                            •   WebObjects Integration

                            •   Developing a Report

                            •   Running a Report



Friday, September 3, 2010
What is                                            ?
                            •   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.”


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
Overview of Report Generation

    Development                                                               Runtime

                                             JRDataSource




                                                      JasperReports Engine   Report




                                      Report Properties HashMap

Friday, September 3, 2010
JasperReports Architecture Dependencies




                                            JasperReports



                iText          JFreeChart   Apache POI      Apache Commons     ... and more...



           Jaxen-1.1.1           jpa.jar      jxl-2.6.jar    png-encoder-1.5   barcode4j-2.0




Friday, September 3, 2010
ERJasperReports


                                                   ERJasperReports



                                                  JasperReports 3.7.4


                                                                        Apache Commons
           iText 2.1.7      JFreeChart 1.0.12      Apache POI 3.5                          ... and more...
                                                                            (various)


           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

                        Pre-Requisites              Create the
                                                EOFetchSpecification
                                                                               Create
     1. report.jasper file in                                              LongResponse Page
        Resources
                                                Optionally create the
     2. ERJasperReports in                      Parameters HashMap
        the classpath                                                   Run Background Task


                                                      Create
                                                ERJasperReportTask

                                                                        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



   Report
   Inspector                                  Elements Palette




                                              Property Sheet




                                                   Styles

   Problems
   Console




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&A
                     Integrating JasperReports with WebObjects
                     WOWODC 2010




Friday, September 3, 2010

Contenu connexe

Plus de WO Community

D2W Stateful Controllers
D2W Stateful ControllersD2W Stateful Controllers
D2W Stateful Controllers
WO Community
 
Deploying WO on Windows
Deploying WO on WindowsDeploying WO on Windows
Deploying WO on Windows
WO Community
 
Unit Testing with WOUnit
Unit Testing with WOUnitUnit Testing with WOUnit
Unit Testing with WOUnit
WO Community
 
Apache Cayenne for WO Devs
Apache Cayenne for WO DevsApache Cayenne for WO Devs
Apache Cayenne for WO Devs
WO Community
 
Advanced Apache Cayenne
Advanced Apache CayenneAdvanced Apache Cayenne
Advanced Apache Cayenne
WO Community
 
Migrating existing Projects to Wonder
Migrating existing Projects to WonderMigrating existing Projects to Wonder
Migrating existing Projects to Wonder
WO Community
 
iOS for ERREST - alternative version
iOS for ERREST - alternative versioniOS for ERREST - alternative version
iOS for ERREST - alternative version
WO Community
 
"Framework Principal" pattern
"Framework Principal" pattern"Framework Principal" pattern
"Framework Principal" pattern
WO Community
 
Filtering data with D2W
Filtering data with D2W Filtering data with D2W
Filtering data with D2W
WO Community
 
Localizing your apps for multibyte languages
Localizing your apps for multibyte languagesLocalizing your apps for multibyte languages
Localizing your apps for multibyte languages
WO Community
 
D2W Branding Using jQuery ThemeRoller
D2W Branding Using jQuery ThemeRollerD2W Branding Using jQuery ThemeRoller
D2W Branding Using jQuery ThemeRoller
WO Community
 

Plus de WO Community (20)

D2W Stateful Controllers
D2W Stateful ControllersD2W Stateful Controllers
D2W Stateful Controllers
 
Deploying WO on Windows
Deploying WO on WindowsDeploying WO on Windows
Deploying WO on Windows
 
Unit Testing with WOUnit
Unit Testing with WOUnitUnit Testing with WOUnit
Unit Testing with WOUnit
 
Life outside WO
Life outside WOLife outside WO
Life outside WO
 
Apache Cayenne for WO Devs
Apache Cayenne for WO DevsApache Cayenne for WO Devs
Apache Cayenne for WO Devs
 
Advanced Apache Cayenne
Advanced Apache CayenneAdvanced Apache Cayenne
Advanced Apache Cayenne
 
Migrating existing Projects to Wonder
Migrating existing Projects to WonderMigrating existing Projects to Wonder
Migrating existing Projects to Wonder
 
iOS for ERREST - alternative version
iOS for ERREST - alternative versioniOS for ERREST - alternative version
iOS for ERREST - alternative version
 
iOS for ERREST
iOS for ERRESTiOS for ERREST
iOS for ERREST
 
"Framework Principal" pattern
"Framework Principal" pattern"Framework Principal" pattern
"Framework Principal" pattern
 
Filtering data with D2W
Filtering data with D2W Filtering data with D2W
Filtering data with D2W
 
WOver
WOverWOver
WOver
 
Localizing your apps for multibyte languages
Localizing your apps for multibyte languagesLocalizing your apps for multibyte languages
Localizing your apps for multibyte languages
 
WOdka
WOdkaWOdka
WOdka
 
ERGroupware
ERGroupwareERGroupware
ERGroupware
 
D2W Branding Using jQuery ThemeRoller
D2W Branding Using jQuery ThemeRollerD2W Branding Using jQuery ThemeRoller
D2W Branding Using jQuery ThemeRoller
 
CMS / BLOG and SnoWOman
CMS / BLOG and SnoWOmanCMS / BLOG and SnoWOman
CMS / BLOG and SnoWOman
 
Using GIT
Using GITUsing GIT
Using GIT
 
Persistent Session Storage
Persistent Session StoragePersistent Session Storage
Persistent Session Storage
 
Back2 future
Back2 futureBack2 future
Back2 future
 

Dernier

Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
UK Journal
 

Dernier (20)

ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptxBT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
 

Integrating JasperReports with WebObjects

  • 1. Integrating JasperReports with WebObjects Kieran Kelleher WOWODC 2010 Montreal Green Island Consulting LLC SmartleadsUSA LLC SmartMix Technologies LLC Friday, September 3, 2010
  • 2. Objectives • Overview of JasperReports • High Level Overview of Report Generation • JasperReports Architecture & Dependencies • WebObjects Integration • Developing a Report • Running a Report Friday, September 3, 2010
  • 3. What is ? • 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.” Friday, September 3, 2010
  • 4. 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
  • 5. 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
  • 6. Overview of Report Generation Development Runtime JRDataSource JasperReports Engine Report Report Properties HashMap Friday, September 3, 2010
  • 7. JasperReports Architecture Dependencies JasperReports iText JFreeChart Apache POI Apache Commons ... and more... Jaxen-1.1.1 jpa.jar jxl-2.6.jar png-encoder-1.5 barcode4j-2.0 Friday, September 3, 2010
  • 8. ERJasperReports ERJasperReports JasperReports 3.7.4 Apache Commons iText 2.1.7 JFreeChart 1.0.12 Apache POI 3.5 ... and more... (various) Jaxen-1.1.1 jpa.jar jxl-2.6.jar png-encoder-1.5 barcode4j-2.0 Friday, September 3, 2010
  • 9. 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
  • 10. Planned Improvements • Batching and EOEditingContext recycling for huge data-sets. • API for subreports • Planned before end of the year Friday, September 3, 2010
  • 11. “Quick” Test-Drive • DEMO Friday, September 3, 2010
  • 12. ERJasperReports Usage - Typical Logic Pre-Requisites Create the EOFetchSpecification Create 1. report.jasper file in LongResponse Page Resources Optionally create the 2. ERJasperReports in Parameters HashMap the classpath Run Background Task Create ERJasperReportTask Download the Report Friday, September 3, 2010
  • 13. 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
  • 14. iReport.app Report Designer Report Inspector Elements Palette Property Sheet Styles Problems Console Friday, September 3, 2010
  • 15. Demo • Designing a Report with iReport.app • Example WebObjects app using JasperReports Friday, September 3, 2010
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. Q&A Integrating JasperReports with WebObjects WOWODC 2010 Friday, September 3, 2010