Difference between revisions of "Workshop:Integration von JasperReports in ADempiere"
From ADempiere
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
Contents
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
- ADempiere 3.40s
- Link zum Binary und Quellcode
- iReport 2.04
- Java SDK 1.5
- org.postgresql.Driver passend für SDK 1.5
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
- Parameter in Feld "Ausdruck für Unterreport" eintragen, der genauso heißt wie die Datei ohne .jasper
- Reiter Subreport (anderer)
- 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