1 / 26

PDF Erstellung mit APEX - eine kostenlose Alternative

21. Deutsche Oracle Anwenderkonferenz. PDF Erstellung mit APEX - eine kostenlose Alternative. Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008. Agenda. Vorstellung Opal-Consulting PDF-Erstellung mit APEX Berichterstellung mit JasperReports Integration als externer Bericht

maisie
Download Presentation

PDF Erstellung mit APEX - eine kostenlose Alternative

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 21. Deutsche Oracle Anwenderkonferenz PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar AustOpal-Consulting, Köln 1. Dezember 2008

  2. Agenda Vorstellung Opal-Consulting PDF-Erstellung mit APEX Berichterstellung mit JasperReports Integration als externer Bericht Integration über XML Feed Fazit Dietmar Aust

  3. Vorstellung Opal-Consulting • Dipl.-Inform. Dietmar Aust, Freelance Consultant • 1997-2000: Consultant bei der Oracle Deutschland GmbH / Düsseldorf • Schwerpunkte: Oracle Portal, Oracle Reports, Oracle Forms, PL/SQL, PLSQL Web Toolkit (OWA) • Seit 09/2000: Freiberuflich • Schwerpunkte: Oracle Portal, Oracle Reports, Oracle Application Express, Oracle Express Edition • Seit Nov. 2005 ausschließlich APEX Entwicklung • Aktivitäten • http://daust.blogspot.com/ • http://forums.oracle.com/forums/forum.jspa?forumID=137 (APEX) • http://forums.oracle.com/forums/forum.jspa?forumID=251 (XE) Dietmar Aust

  4. PDF–Erstellung mit APEXDie Problemstellung • Wozu PDF Berichte? • Druckfähig / pixelperfektes Layout • Standard – Berichtswesen • Formulare, Rechnungen, Angebote • Möglichkeiten der PDF – Erstellung mit APEX • Unterstützung seit 3.0 • Standard Support • Apache FOP (nur PDF) • Cocoon (PDF und RTF) • Erweiterter Support • Erfordert den BI-Publisher von Oracle ! • Custom Solutions • Beliebige Reporting Engine anbinden (URL-interface) • Z.B. Oracle Reports, Crystal Reports, JasperReports, BIRT, etc… Dietmar Aust

  5. PDF–Erstellung mit APEXStandard-Integration - Berichtsregion Apache / mod_plsql Client 1 APEX • Alternativen • 1. XSL/FO Transformation mit FOP (nur PDF) • 2. Cocoon (PDF + RTF) • Definition: • Auf dem Bericht • Eigene Berichtslayouts mitXSLT spezifizieren • Alternativen • 1. XSL/FO Transformation mit FOP (nur PDF) • 2. Cocoon (PDF + RTF) • Definition: • Auf dem Bericht • Eigene Berichtslayouts mitXSLT spezifizieren 2 J2EE / Tomcat Dietmar Aust

  6. PDF–Erstellung mit APEXStandard-Integration Apache / mod_plsql • Ablauf • 1: Link ruft APEX Funktion auf • 2: APEX ermittelt XSL des Layouts und das XML des Berichts • 3: APEX macht Post an J2EE Server, übermittelt die Berichtsdefinition zusammen mit den Daten 1 APEX Client 2 J2EE / Tomcat Dietmar Aust

  7. PDF–Erstellung mit APEXErweiterte Integration mit dem BI-Publisher • Optionen • Berichtsabfragen definieren (Alle Items der Applikation, multiple Abfragen integrieren) • Eigene Berichtslayouts mit MS Word gestalten • Ausgabe in RTF und Excel • Was bedeutet das? • Lizenz für den BI-Publisher • Sehr mächtige Integration • Langfristig evtl. Option, insbesondere wenn die Fachabteilungen viele Berichte in Word / Excel haben • Einbindung von Power Usern • Installation • http://www.oracle.com/technology/products/database/application_express/html/configure_printing.html Dietmar Aust

  8. PDF–Erstellung mit APEX • Konfiguration: /pls/apex/apex_admin (Instanz-Administration) • Home>Service verwalten>Instance-Einstellungen Dietmar Aust

  9. PDF–Erstellung mit APEXCustom Integration Apache / mod_plsql 1 APEX • Beliebige Reporting Engines • JasperReports • Oracle Reports • … beliebige, die aufgerufen werden über: • URL • Betriebssystem-Aufrufe • … (external procedure calls) • http-Tunnel für beliebige Dateien • Wie? Tunnel mit utl_http, Berücksichtigung des MimeTypes • Wozu? => Security (nur wenige Ports) und Autorisierung (wer darf was)? Client 2 3 J2EE / TomcatBerichtsdefinitionenDaten aus Oracle mit JDBC Dietmar Aust

  10. JasperReportsÜbersicht • JasperReports • sehr beliebte Reporting Engine • Java Bibliothek, um Reporting in Applikationen zu integrieren • Standard im JBOSS • Viele Projekte und große Kunden setzen es ein • Berichtsdefinitionen in XML • Funktionalitäten • Datenquellen : JDBC, XML, OLAP, TEXT, … • Ausgabeformate: PDF, XLS, HTML, CSV, TEXT, RTF, ODF • Matrixberichte • Multiple Datenquellen pro Bericht • Berichtstrigger • Unterberichte • Bedingte Formatierung • Fonts, Unicode, NLS • … Dietmar Aust

  11. JasperReportsBeispiele Dietmar Aust

  12. JasperReportsBeispiele Dietmar Aust

  13. JasperReportsBeispiele Dietmar Aust

  14. JasperReportsBerichtsdesign mit dem iReport Designer • iReport Designer • Graphischer Editor, um XML – Berichtsdefinitionen für JasperReports zu erstellen • Aktuell zwei Versionen, klassisch und Netbeans • Download des iReport Designers • http://ireport.sourceforge.net/ Dietmar Aust

  15. JasperReportsBerichtsdesign mit dem iReport Designer Dietmar Aust

  16. JasperReportsBerichtsdesign mit dem Report Designer • Demo Dietmar Aust

  17. Integration I – externe Berichtehttp Tunnel • Berichtsdefinition in J2EE Applikation • Aufruf aus APEX: • Url für OnDemand Prozess • OnDemand Prozess prc_show_url f?p=&APP_ID.:0:&APP_SESSION.:APPLICATION_PROCESS=prc_show_url:::F_TMP_1:&F_TMP_1. declare l_base_url varchar2(2000) := 'http://localhost:8080/jasperIntegration/report?_repName=Departments'; begin xlib_http_pck.display_url_raw(p_url => l_base_url || '&p_deptno=' || v('F_TMP_1')); exception when others then htp.p(sqlerrm); end; Dietmar Aust

  18. Integration I – externe Berichtehttp Tunnel • Implementierung des http Tunnels BEGIN l_http_request := UTL_HTTP.begin_request (p_url); DBMS_LOB.createtemporary (l_blob, FALSE); BEGIN LOOP UTL_HTTP.read_raw (l_http_response, l_raw, l_buffer_size); DBMS_LOB.writeappend (l_blob, UTL_RAW.LENGTH (l_raw), l_raw); END LOOP; EXCEPTION WHEN UTL_HTTP.end_of_body THEN UTL_HTTP.end_response (l_http_response); END; HTP.p ('Content-length: ' || DBMS_LOB.getlength (l_blob)); OWA_UTIL.http_header_close; WPG_DOCLOAD.download_file (l_blob); DBMS_LOB.freetemporary (l_blob); END; Dietmar Aust

  19. Integration I – externe BerichteJ2EE / Servlet • Implementierung des Servlets ds = (DataSource) initContext.lookup("java:comp/env/jdbc/" + dataSource); conn = ds.getConnection(); jasperPrint = JasperFillManager.fillReport(reportFileName + ".jasper", reportParams, conn); ServletOutputStream out = response.getOutputStream(); JRPdfExporter exporter = new JRPdfExporter(); exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out); exporter.exportReport(); Dietmar Aust

  20. Integration I – externe Berichte Demo der Integration und der vereinfachten API • Demo Dietmar Aust

  21. Integration II – XML FeedÜbersicht • „echter“ Ersatz des BI-Publishers • Kommunikation APEX  BI-Publisher: • XML – Feed der Daten • Berichtsdefinition als RTF-Template • BI-Publisher werden die Daten mit dem Template verbunden und im gewünschten Format zurückgeliefert Dietmar Aust

  22. Integration II – XML FeedUmsetzung • Berichtsabfrage erstellen • XML exportieren • Berichtslayout mit JasperReports erstellen • Berichtslayout hochladen (.jrxml) • Berichtslayout auf der Region festlegen • J2EE Applikation: • Berichtsdefinition kompilieren (.jrxml => .jasper) • Bericht befüllen (XML an JasperReports übergeben) • Ergebnis zurückliefern Dietmar Aust

  23. Integration II – XML Feed Demo • Demo Dietmar Aust

  24. Fazit • Bloß nicht programmieren !!! (z.B. PL/PDF) • JasperReports: kostenlos, stabil, performant und flexibel (API) • iReport Designer: kostenlos, intuitiv, mächtig und nicht kompliziert • Integration in APEX ist einfach und sicher umzusetzen • Java Servlet Programmierung notwendig • RTF Export nicht optimal • Textfelder / Positionsrahmen nicht einfach zu editieren • Keine Ränder im Dokument Dietmar Aust

  25. APEX Training - Ankündigung • Oracle APEX: Knowhow aus der Praxis! • 23.03 – 25.03.2009 in Bensheim • http://www.opal-consulting.de/training • Dozenten: • Patrick Wolf (APEX Entwickler des Jahres 2007; Oracle ACE Director) • Denes Kubicek (APEX Entwickler des Jahres 2008; Oracle ACE) • Dietmar Aust • Praxisrelevant! • Lessons learned von vielen APEX Projekten • Hands-On Sessions Dietmar Aust

  26. Kontakt • Opal-Consulting Dietmar Aust • Web: http://www.opal-consulting.de • Blog: http://daust.blogspot.com/ • E-Mail: dietmar.aust@opal-consulting.de Dietmar Aust

More Related