Difference between revisions of "Workshop:Integration von JasperReports in ADempiere"

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.
m (typo)
(Sub-Subreport Besonderheiten)
Line 41: Line 41:
 
*** Parameter in Feld "Ausdruck für Unterreport" eintragen, der genauso heißt wie die Datei ohne .jasper
 
*** Parameter in Feld "Ausdruck für Unterreport" eintragen, der genauso heißt wie die Datei ohne .jasper
 
**** Parameter anlegen wie Datei ohne .jasper (Beispiel: "adempiere_report_linux_subreport") mit String
 
**** Parameter anlegen wie Datei ohne .jasper (Beispiel: "adempiere_report_linux_subreport") mit String
*** auf "..." klicken um c_order_id als Subreport-Parameter zu übergeben
+
*** auf "..." (Hinzufügen) klicken um c_order_id als Subreport-Parameter zu übergeben
 
**** auf Box klicken und c_order_id aus Parameterlist aussuchen
 
**** auf Box klicken und c_order_id aus Parameterlist aussuchen
 
* Im Header Report den Parameter Subreport_Dir löschen
 
* Im Header Report den Parameter Subreport_Dir löschen
Line 47: Line 47:
 
** pageFooter von 0 auf 100 setzen
 
** pageFooter von 0 auf 100 setzen
 
* Subreport in ADempiere hochladen
 
* Subreport in ADempiere hochladen
 +
 +
=== Vorgehensweise bei Sub-Subreports ===
 +
Bei tiefer verschachtelten Reports (Subreport der einen weiteren Subreport beinhaltet) reicht es nicht
 +
aus im Subreport einfach nur einen Parameter mit dem gleichen Namen wie dem Sub-Subreport anzulegen und im
 +
"Ausdruck für Unterreport" einzutragen. '''Zusätzlich''' muss dieser Parameter vom Hauptreport an den
 +
Subreport übergeben werden:
 +
* Im Hauptreport einen Parameter mit dem Namen des Sub-Subreports anlegen (Typ String)
 +
* Nach Doppelklick auf den Subreport im Reiter 'Subreport (anderer)'
 +
** auf "Hinzufügen" klicken und einen Subreport Parameter mit dem Namen des Sub-Subreports anlegen
 +
** als Ausdruck für den default Wert $P{Sub-SubreportName} eintragen
 +
* Im Subreport wie oben beschrieben vorgehen um den Sub-Subreport einzubinden
  
 
=== Einbindung in ADempiere ===
 
=== Einbindung in ADempiere ===

Revision as of 04:39, 23 June 2008

Einführung

Dieser Workshop fand auf dem Linuxtag 2008 statt und wurde von User:nwessel gehalten. Ziel war es, Know-How über Jasper in die Deutsche Community zu bringen.

Voraussetzung

Ziel

Austauschen des Standardberichts für einen Verkaufsbericht durch einen JasperReport

Vorgehensweise

Jasper Bericht erstellen

  • Header Report: Assistenten starten
  • Datenquelle mit dem org.postgresql.Driver anlegen
query: select * from c_order;
  • Felder c_order_id und description hinzufügen
  • testen ohne Datenquelle mit "Bericht starten"
  • testen mit Datenquelle mit "Bericht starten (Aktive Verbindung nutzen)"
  • Parameter "c_order_id" hinzufügen
    • haken bei interaktiv abfragen um testen zu können
  • Paramenter in Datenquelle übernehmen
    • where c_order_id = $P{c_order_id}
  • Felder in PageHeader rücken
  • Header Report in ADempiere hochladen
  • Subreport anlegen
    • Icon Subreport anklicken
    • Bereich für Subreport malen
    • neuen Bericht erstellen
    • Query: Select * from c_orderline;
    • Felder raussuchen
    • wichtig: Tabellen Layout
    • Parameter C_order_id anlegen
    • Paramenter in SQL Query eintragen (über Report Anfrage)
  • Verknüpfung zwischen Header und Sub über Doppelklick auf Subreport im Header Report
    • Reiter Subreport (anderer)
      • Parameter in Feld "Ausdruck für Unterreport" eintragen, der genauso heißt wie die Datei ohne .jasper
        • Parameter anlegen wie Datei ohne .jasper (Beispiel: "adempiere_report_linux_subreport") mit String
      • auf "..." (Hinzufügen) klicken um c_order_id als Subreport-Parameter zu übergeben
        • auf Box klicken und c_order_id aus Parameterlist aussuchen
  • Im Header Report den Parameter Subreport_Dir löschen
  • Page Footer im Subreport einfügen unter Ansicht => Abschnitte
    • pageFooter von 0 auf 100 setzen
  • Subreport in ADempiere hochladen

Vorgehensweise bei Sub-Subreports

Bei tiefer verschachtelten Reports (Subreport der einen weiteren Subreport beinhaltet) reicht es nicht aus im Subreport einfach nur einen Parameter mit dem gleichen Namen wie dem Sub-Subreport anzulegen und im "Ausdruck für Unterreport" einzutragen. Zusätzlich muss dieser Parameter vom Hauptreport an den Subreport übergeben werden:

  • Im Hauptreport einen Parameter mit dem Namen des Sub-Subreports anlegen (Typ String)
  • Nach Doppelklick auf den Subreport im Reiter 'Subreport (anderer)'
    • auf "Hinzufügen" klicken und einen Subreport Parameter mit dem Namen des Sub-Subreports anlegen
    • als Ausdruck für den default Wert $P{Sub-SubreportName} eintragen
  • Im Subreport wie oben beschrieben vorgehen um den Sub-Subreport einzubinden

Einbindung in ADempiere

  • System Admin: Reports & processes öffnen
  • neuen Prozess anlegen
    • Show help: Bei Belegen muss hier Run silently - Take Defaults stehen
    • JasperReport: Hier steht der JasperReport als angehängtes Attachments in der Syntax "attachment:"<Dateiname>
      • anderer prefix kann z.B. http sein
      • ressource: erwartet kompilierte .jar Datei im Adempiere lib-Verzeichnis
  • an den Prozess sämtliche Attachments wie .jasper file hinterlegen
  • an den Prozess eine leer Datei namens Berichtsname_en_US.properties hängen
  • in Tab Parameter wechseln
    • DB Column Name: enthält den DB-Spaltenname in klartext
    • System Element: enthält AD_element, das übergeben werden soll
    • Reference: String einstellen
    • Default Logic: Enthält System Element Name mit der Syntax "@"<system element>"@"
    • wichtig: groß und kleinschreibung bei Systemelement beachten!
  • In Mandant wechseln =>System Admin =>General Rules => Printing => Print Format
  • Neuen Orderheader anlegen
    • in Feld Jasper Process den vorher definierten Prozess hinterlegen
    • Tablenamen übernehmen
  • Druckformat in DocType in Feld Print Format das neue Druckformat hinterlegen