This page (revision-8) was last changed on 05-Nov-2017 18:46 by ThomasBayen 

This page was created on 14-Oct-2017 23:31 by ThomasBayen

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
8 05-Nov-2017 18:46 12 KB ThomasBayen to previous SQL-Validator konfigurieren
7 05-Nov-2017 18:03 12 KB ThomasBayen to previous | to last SQL Validierung
6 24-Oct-2017 10:27 10 KB ThomasBayen to previous | to last Einstellen der Eingangsseite
5 18-Oct-2017 19:03 10 KB ThomasBayen to previous | to last init-Skript
4 18-Oct-2017 18:37 9 KB ThomasBayen to previous | to last Installation nur von dem, was man braucht
3 18-Oct-2017 07:04 9 KB ThomasBayen to previous | to last Versionsverwaltung für Studio-Verzeichnisse
2 15-Oct-2017 00:56 7 KB ThomasBayen to previous | to last Erfahrungen und Tipps mit dem JasperServer
1 14-Oct-2017 23:31 7 KB ThomasBayen to last Erfahrungen und Tipps mit dem JasperServer

Page References

Incoming links Outgoing links

Version management

Difference between version and

Der [JasperReports Server|https://sourceforge.net/projects/jasperserver/] ist ein Webserver, der JasperReports verwalten und anzeigen kann. Man erzeugt seine Berichte wie bei JasperReports üblich mit dem Programm ~JasperStudio und lädt diese dann auf den Server hoch. Dort kann dann ein Benutzer, der sich dort anmeldet (oder auch ein anonymer Benutzer) die vorbereiteten Berichte einfach über die Weboberfläche abrufen.

== Dokumentation und Download ==

Wenn man sich dem Programm nähert, sollte man wissen, das es zwei verschiedene Versionen gibt: Die kommerzielle Version bekommt man von den Seiten der Firma Jaspersoft, die Community Edition (CE) von der o.g. Sourceforge-Seite. Dort sollte man auch die Dokumentation herunterladen, um keine Verwirrung aufkommen zu lassen.

== Funktionsumfang ==

Bei mir gab es am Anfang einige Verwirrung, was die freie Version denn nun kann und was nicht. Deshalb hier eine kurze Beschreibung: Der JasperServer stellt im Prinzip ein Repository dar, in dem Jasper-Dateien, also Berichtstemplates, Grafiken, Eingabeparameter, Queries, Bilder, Datenquellen, etc. abgelegt werden. Man kann sich als Benutzer anmelden und dann kann über den Benutzer oder eine Benutzergruppe festgelegt werden, auf welche Dateien man zugreifen kann. Ein Report ist normalerweise als eine Report Unit abgelegt, das ist im Grunde eine Sammlung mit verschiedenen Dateien (intern also sowas wie ein Verzeichnis), das man mit einem Klick starten kann. Der entsprechende Bericht wird dann angezeigt.

Das Anzeigen eines Berichts bedeutet, das ggf. Parameter beim Benutzer abgefragt werden. So kann also z.B. für eine Auswertung ein Monat eingegeben werden, den man sich ansehen möchte oder ähnliches.

Wird der Bericht als PDF angezeigt, kann man ihn in den anderen von JasperReports unterstützten Formaten herunterladen, also z.B. als Excel- oder LibreOffice- oder als CSV-Datei.

Es ist möglich, Berichte anonym anzuzeigen. Dadurch kann man mit einem einzigen Weblink einen Bericht anzeigen (sogar so, das man den JasperServer dann gar nicht mehr sieht).

Es gibt eine Funktion, um Berichte zeitgesteuert automatisch zu erzeugen und zu speichert und dann ggf. auch als Mail zu versenden. Das habe ich noch nicht ausprobiert.

Darüberhinaus gibt es eine Integration von Mondrian für Business Intelligence, damit habe ich mich allerdings bisher noch nicht beschäftigt.

Es ist nicht möglich, eigene Berichte über die Weboberfläche zu erzeugen. Dieses Feature (das echt hilfreich wäre), nennt sich "Ad Hoc Reports" und ist nur in der kostenpflichtigen Version enthalten.

== Installation und erste Schritte ==

Ich empfehle, eng der Installationsempfehlung aus der Dokumentation zu folgen. Wählt man die komplette Installation aller Komponenten, so geschieht alles von alleine. Das Installationsskript installiert einen eigenen PostgreSQL Datenbankserver und startet dann einen Tomcat Application Server. Mit der URL http://localhost:8080/jasperserver/ im Browser kann man dann auch schon loslegen. Benutzername und Passwort für den Admin-User ist beides jasperadmin. Der Admin-User kann übrigens auch alles, was der normale User kann. Für den Anfang kann man sich also damit beschäftigen.

Es gibt Beispiel-Datenbanken mit einigen Berichten. Wer JasperReports kennt, wird da nichts wesentlich neues finden.

Wer mag, kann bei der Installation aber auch auswählen, das die Komponenten einzeln ausgewählt werden. Man kann dann die Datenbank auf einen vorhandenen PostgreSQL-Server legen (habe ich ausprobiert). Dazu gibt man das Passwort des postgres-Users an und das Installationsskript richtet dann alles ordentlich ein. Außerdem kann man den Server in einen vorhandenen Tomcat installieren. Und man kann wählen, ob man die Beispiel-Templates dabei haben möchte oder nicht. Für eine echte Installation lässt man die später besser weg.

Um den Server automatisch zu starten, habe ich [dieses Startskript|http://community.jaspersoft.com/questions/541044/auto-start-boot] genommen. Dabei habe ich es noch angepasst, indem ich "su jasper" vor die Aufrufe des ctrlscript geschrieben habe. Als root möchte (und darf) man den Server nicht starten.>>
<<
== Hochladen mit ~JasperStudio ==

Das aktuell von Jaspersoft gepflegte und empfohlene Tool, um Berichte herzustellen, ist ~JasperStudio. Dort kann man im Repository-View einen Server angeben. In meiner Installation war der Server auf localhost bereits mit dem Standard-Passwort voreingestellt, so das die Verbindung tatsächlich wie magisch erst mal einfach da war. In einer echten Umgebung würde man das natürlich etwas anders machen. Dazu ist es interessant, zu wissen, das es im Repository-View ganz oben rechts ein Icon gibt (ein Kästchen mit einem grünen Kreuz), mit dem man eine neue Serververbindung erzeugen kann. Das ist nicht ganz offesichtlich und sonst nicht im Menü oder Kontextmenü zu erreichen (soweit ich das gesehen habe).

Hat man eine solche Verbindung aufgebaut, kann man
<<imIm Design-Tab des Editor-Views ganz oben rechts auf ein Icon klicken, dessen Tooltip "Publish Report to Jasper Reports Server" anzeigt. Damit startet ein Fenster, das es erlaubt, den Bericht auf den Server zu laden.

Falls der Bericht Parameter definiert, die für eine Eingabe durch den Benutzer konfiguriert sind, können diese als eigene Resourcen, sogenannte Eingabesteuerelemente definiert werden (als eigene Dateien im Repository des Servers). Das erlaubt später, diese im Server näher zu konfigurieren und ggf. wohl auch für mehrere Berichte zu benutzen. Auf jeden Fall sollten diese Dateien extra gespeichert werden. Es ist dann z.B. möglich, das man ein Auswahlfeld durch einen Datenbank-Query füllen lässt ([siehe hier|http://community.jaspersoft.com/documentation/jasperreports-server-administration-guide/v550/query-based-input-controls]). Man kann also eine Auswahl von Kunden erlauben, in der alle aktuellen Kunden direkt aus der Datenbank geholt und dann zur Auswahl angeboten werden.

== Organisation der Dateien ==

Man sollte zuerst eine Datenquelle im Server anlegen. Irgendwie sollte man die auch vom Studio aus hochladen können, was mir aber nicht gelungen ist. Da man die Datenquelle allerdings im Normalfall nur einmal braucht, kann man die auch im Server anlegen.

== Anpassung der Login-Seite ==

Auf [dieser Seite|https://community.jaspersoft.com/documentation/jasperreports-server-ultimate-guide/v561/customizing-login-page] ist erklärt, wie man die Login-Seite anpasst. Die Standard-Seite verweist auf allerlei Dokumentationen etc. und ist für einen praktischen Einsatz nicht so schön zu gebrauchen.

Im Gegensatz zu der dortigen Erklärung habe ich lieber in der Datei login.jsp ein div-Element ("welcome") auskommentiert. Das reichte mir schon.

== anonymes Anzeigen ==

Mit der [Anleitung auf dieser Seite|http://community.jaspersoft.com/wiki/allow-anonymous-access-reports] habe ich den Zugriff durch den Anonymen Benutzer hinbekommen.

Indem ich zusätzlich zum viewReportFlow auch den searchFlow für den anonymen Benutzer freigegeben habe, konnte er auch das Repository anzeigen und dann aus allen Berichten, die für die anonyme Rolle freigegeben sind, auswählen, was er haben will. Ob man diese Übersicht erlauben will oder eine Gruppe von Links irgendwo auf eine Seite oder in ein Wiki schreibt, ist Geschmackssache. Im übrigen habe ich es nicht geschafft, die Bibliothek anzuzeigen (die wohl eher der richtige Platz wäre), sondern nur das Repository.

Damit ist es dann möglich, einen Bericht direkt so aufzurufen, das er sofort angezeigt wird oder so, das man direkt die Eingabefelder für die Parameter angezeigt bekommt. Ob dabei der Header vom JasperServer angezeigt wird, über dessen Menüknöpfe man dann weiterspringen kann zu anderen Berichten oder nicht, kann man auch auswählen, indem man die URL richtig konstruiert.

Möchte man den richtigen Link für einen Bericht haben, so geht man als Benutzer in das Programm und zeigt einen Bericht (über das Kontextmenü) in einem anderen Browsertab an. In diesem Tab steht dann der richtige Link, den man ggf. noch erweitern kann.

== Versionsverwaltung in Jaspersoft Studio ==

Wer mit einem Server arbeitet, möchte eventuell auch die erzeugten Berichts-Templates im einer VersionsVerwaltung verwalten und vielleicht sogar auch von mehreren Rechnern oder Benutzern aus verwenden. Ich selber verwende MercurialVersionControl, aber z.B. für GIT sollte das gleiche gelten.

=== Verwaltung mit einem VCS (VersionsVerwaltung) ===

Ich habe für meine Arbeit im Studio ein neues, eigenes Projekt erzeugt. Meine Berichte liegen also nicht im Standardprojekt "~MyReports". Das Programm legt dann hierfür im Workspace ein neues Verzeichnis an. Falls man nicht weiss, wo sein Workspace ist, kann man im File-Menü den Workspace wechseln und bekommt dann den Pfad angezeigt.

Ich bin dann auf die Konsole gegangen und habe eine Datei .hgignore erzeugt mit folgendem Inhalt:

 .*\.jasper$

Danach habe ich mit den folgenden Befehlen eine Versionskontrolle mit Mercurial initiiert:

 hg init .
 hg add .hgignore
 hg add .project
 hg add .classpath
 hg add .settings/*
 hg add *.jrxml
 hg commit -m "Versionskontrolle eingerichtet"

Die Wartung und Pflege der Versionskontrolle (neue Dateien etc.) mache ich per Konsolenbefehle, weil ich da ganz gut mit zurecht komme. Prinzipiell befinden sich in den Menüs des Jaspersoft Studio auch Einträge, um mit der CSV Versionsverwaltung zu arbeiten. Diese Einträge sind in Eclipse Standard. Es kann sein, das die Jasper-Programmierer nur vergessen haben, diese zu entfernen. Mir würde das aber Hoffnung geben, das man im Studio auch ein Eclipse-Plugin für Mercurial installieren kann und dieses dann über die graphische Oberfläche nutzen kann. Das habe ich allerdings noch nicht ausprobiert.

=== Arbeit mit einer neuen Instanz ===

Obwohl das Studio sehr stark auf Eclipse basiert, funktioniert mein normaler Arbeitsablauf für diesen Fall nicht. Es fehlt die Möglichkeit, ein existierendes Projekt einzubinden. Also muss man etwas trickreich vorgehen: Ich habe zuerst im Studio ein neues Projekt mit dem gewünschten Namen angelegt, dann bin ich auf die Konsole gegangen (ohne das Studio zu schliessen), habe das Projektverzeichnis komplett gelöscht und dann mit "hg clone" das Verzeichnis aus der Versionsverwaltung komplett neu erzeugt. Dann habe ich im Studio mit "F5" das Projekt refresht. Und schon ist alles so da, wie ich es brauche.

[{Tag Java Templates Datenbank}]