Eigene URLs und Bilder im APEX Report abbilden

Von Tobias Arnhold 10.18.2011
Wie bereits Gestern erwähnt, bin ich in den letzten Zügen der Entwicklung für die "Plugin App".

Heute wollte ich aus ein paar hässlichen Buttons ein paar schöne Icons machen.
Ausgangslage
 Zieldarstellung
Dazu habe ich mir einen simplen Report erstellt, der mir jeweils meine Icons mit sicheren URLs ausgibt:
select img from (
 select
  1 as ordby,
  '<a href="' ||
  APEX_UTIL.PREPARE_URL('f?p=' ||
                        v('APP_ID') || 
                        ':1:' || 
                        v('APP_SESSION') || 
                        ':XLSX') ||
  '"><img src="#APP_IMAGES#download_xlsx.png" alt="" title="Download Excel XLSX"/>' as img
 from dual
 union
 select
  2 as ordby,
  '<a href="' ||
  APEX_UTIL.PREPARE_URL('f?p=' ||
                        v('APP_ID') || 
                        ':1:' || 
                        v('APP_SESSION') || 
                        ':EXCEL_XML') ||
  '"><img src="#APP_IMAGES#download_xml.png" alt="" title="Download Excel XML"/>' as img
 from dual
 union
 select
  3 as ordby,
  '<a href="' ||
  APEX_UTIL.PREPARE_URL('f?p=' ||
                        v('APP_ID') || 
                        ':11:' || 
                        v('APP_SESSION') || 
                        ':') ||
  '"><img src="#APP_IMAGES#download_pdf.png" alt="" title="Download PDF"/>' as img
 from dual
 )
order by ordby
Mit APEX_UTIL.PREPARE_URL definieren Sie in SQL und PL/SQL einfach eine sichere URL die Sie in Verbindung mit Session State Protection (SSO) benötigen. #APP_IMAGES# referenziert auf mein hochgeladenes Bild. Da ich auf dem öffentlichen APEX Server arbeite, kann ich meine Bilddateien nicht auf einem Webserver ablegen. Dies wäre aber aus performance und caching Gründen zu bevorzugen. Auf der anderen Seite soll die Applikation später als Download zur Verfügung stehen, dann kann ich die Bilder einfach als Supporting Objects bei der Installation mit integrieren.