
Rapportage Opties in Oracle APEX :
Oracle APEX heeft zich ontwikkeld tot een serieuze en volwassen ontwikkeltool binnen de Oracle wereld. Vaak wordt de tool ingezet als vervanging van de vele losse Excel/Access bestanden die binnen een bedrijf rondzwerven. Door middel van APEX worden deze dan op een centrale plaats opgeslagen in de Oracle database, met alle voordelen vandien, en van een moderne web-interface voorzien. Door gebruik te maken van de “Interactive Reporting” mogelijkheden binnen APEX kan de gebruiker snel en makkelijk door de gegevens zoeken en deze gegevens daarna exporteren naar Excel, RTF of PDF formaat om ze te kunnen afdrukken.
Binnen bedrijven wordt APEX nu ook ingezet voor bedrijfskritischere toepassingen waardoor de behoefte voor pixel-perfect rapporten toe neemt. Denk hierbij aan het afdrukken van bijvoorbeeld een pakbon, order of een factuur. De out-of-the-box mogelijkheden die “Interactive Reporting” dan biedt, volstaan niet meer. Voor het creëren van dit soort rapporten zijn er binnen APEX diverse mogelijkheden. Deze opties zijn:
– PL2PDF libraries in PL/SQL
– HTML printen vanuit de browser
– BI Publisher
– Apache FOP
– APEX Listener
– Externe Report-engine (Oracle Reports/Jasper Reports).
1. PL2PDF libraries in PL/SQL :
Bij deze optie wordt het rapport volledig via code gegenereerd vanuit PL/SQL. De output in PDF formaat kan daarna naar de internetbrowser van de client gestuurd worden.
Binnen de Oracle community zijn er verschillende libraries beschikbaar voor deze oplossing.
2. HTML printen vanuit de browser :
Bij deze optie wordt er gebruikt gemaakt van de print functionaliteit in de internetbrowser van de client zelf. Door hierbij gebruik te maken van CSS (Cascading Style Sheets) kan de opmaak van de afdruk worden aangepast en bijvoorbeeld menu-elementen die op het actieve scherm staan, onderdrukt worden in het rapport.
Voorbeeld van HTML Printing

3. BI Publisher :
Bij deze optie wordt er gebruik gemaakt van een apart product van Oracle, genaamd BI Publisher. Hierbij wordt er een rapport lay-out aangemaakt in XSL-FO of RTF formaat, welke daarna aan de serverzijde wordt samengevoegd met de XML data uit APEX om zo tot output te komen. Deze output kan dan PDF, Word, Excel, HTML of XML formaat zijn en kan naar een printer gestuurd of eventueel binnen APEX getoond worden in de internetbrowser van de client.
Het ontwerpen van het rapport kan o.a. via een MS Word Plug-in welke onderdeel is van het BI Publisher product.
4. Apache FOP :
Bij deze optie wordt er gebruikt gemaakt van aparte libraries van Apache, genaamd Apache FOP, welke via een externe engine worden aangeroepen. Hierbij wordt er een rapport lay-out aangemaakt in XSL-FO, welke daarna aan de serverzijde wordt samengevoegd met de XML data uit APEX om zo tot output te komen. Deze output kan dan PDF of XML formaat zijn.
Het ontwerpen van de rapport lay-out in XSL-FO formaat kan het beste gedaan worden met behulp van een 3rd party tool zoals Altova StyleVision of Stylus Studio.
5. APEX Listener 2.0 :
Bij deze optie wordt er gebruikt gemaakt van de APEX Listener waar sinds versie 2.0 de FOP libraries inbegrepen zijn. Hierbij wordt er een rapport lay-out aangemaakt in XSL-FO, welke daarna aan de serverzijde wordt samengevoegd met de XML data uit APEX om zo tot output te komen. Deze output is dan in PDF formaat en wordt rechtstreeks naar de internetbrowser aan de client-zijde gestuurd.
Het ontwerpen van de rapport lay-out in XSL-FO formaat kan het beste gedaan worden met behulp van een 3rd party tool zoals Altova StyleVision of Stylus Studio.
6. Externe Report-engine :
Bij deze optie wordt er gebruikt gemaakt van een externe Report-engine die vanuit APEX aangeroepen wordt. Dit kan bijvoorbeeld Oracle Reports, Jasper Reports of Apache CoCoon zijn. De report-engine wordt via een URL aangeroepen waarbij benodigde parameters vanuit APEX door kunnen worden gegeven. De report-engine moet zelf een connectie met de database maken (native of JDBC) en deze gebruiken om zo het juiste rapport te genereren.
Het voordeel van dit soort oplossingen is dat er aan de zijde van rapport-layout meestal meer en betere voorzieningen zijn in de vorm van een rapport designer tool.
Voorbeeld van Jaspersoft Report Designer

Vanuit The DOC hebben wij o.a. goede ervaringen met koppelingen naar Oracle Reports en Jasper Reports (volledig open-source).
Welke oplossing is het meest geschikt voor uw situatie?
Bij deze optie wordt er gebruikt gemaakt van een externe Report-engine die vanuit APEX aangeroepen wordt. Dit kan bijvoorbeeld Oracle Reports, Jasper Reports of Apache CoCoon zijn. De report-engine wordt via een URL aangeroepen waarbij benodigde parameters vanuit APEX door kunnen worden gegeven. De report-engine moet zelf een connectie met de database maken (native of JDBC) en deze gebruiken om zo het juiste rapport te genereren.
Het voordeel van dit soort oplossingen is dat er aan de zijde van rapport-layout meestal meer en betere voorzieningen zijn in de vorm van een rapport designer tool.
Voorbeeld van Jaspersoft Report Designer
