Workshop:Integration von JasperReports in ADempiere
From ADempiere
This Wiki is read-only for reference purposes to avoid broken links.
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 "..." 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
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