Seite wählen

NETWAYS Blog

Jasper Reporting – Dynamische Parameter

Jasper-ReportingSeinen Report mit Parametern zu versehen hat mehrere Vorteile. Zum einen kann man die gleiche Vorlage für verschiedene Kunden und Objekte einsetzen, zum anderen hat der Endanwender die Möglichkeit der Interaktivität. Wer auf viele Parameter setzt sollte jedoch immer für eine hohe Quote an vordefinierten Reports sorgen, da die Hürde zur Ausführung nicht zu hoch liegen sollte.
Gerade beim Vergleich von Text in einem Statement muss der eingegebene Parameter exakt übereinstimmen, da sonst keine Daten ermittelt werden können. Bei etwas längeren Attributen wie Host- oder Servicegruppen ist dies einfach zu fehleranfällig. Hier können dynamische Parameter Abhilfe schaffen, da sie dem Benutzer quasi die Summe aller Möglichkeiten anbieten und man nur noch aus dieser Menge auswählen kann.
post11_screen1Die Definition erfolgt wieder direkt auf dem JasperServer durch Anlage eines neuen „Input Controls“. Bei Eingabe des Namens bitte dringend auf die richtige Schreibweise achten, da dies im Support Fehler Nummer 1 ist, wenn der Wert nicht angenommen wird und ein Default-Wert existiert.
post11_screen2Bei der Eingabe der „Input Control Details“ ist der Type Single Select Query zu wählen. Anschließend kann entweder eine globale Query aus dem Repository oder eine lokale (unser Beispiel) verwendet werden. In unserem Fall ist der Wert zur Anzeige auch der Wert zur Übergabe. Wenn z.B. Namen ausgewählt, aber Personalnummern übergeben werden sollen, sind mind. zwei Columns zu selektieren.
Das Statement zur Ermittlung der verfügbaren Hostgruppen lautet:
[code lang=“sql“]
select alias from nagios_hostgroups where instance_id = 1
[/code]
post11_screen5post11_screen3post11_screen4Als Datasource übernehmen wir auch hier wieder die lokale Definition. Anschließend muss wie bereits angedeutet noch das Value und Visible Column hinterlegt werden und die Anlage des Parameters bestätigt werden. Nach Zuordnung des Parameters zum aktiven Report, kann dieser dann auch im Webinterface ausgewählt werden.
Der entsprechende Report findet sich natürlich auch wieder bei netways.org und unserem Demo-System.
Im nächsten Post steigen wir in das Thema Host-Availability ein.

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startete er früher das wöchentliche Lexware-Backup, welches er nun endlich automatisiert hat. So investiert er seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinen beiden Söhnen und seiner Tochter.

Jasper Reporting – Gruppierung von Daten

Jasper-ReportingDa endlose Listen von Informationen mit Host- und Service die evtl. notwendigen Schlussfolgerungen aus einem Report erschweren ist sowohl die optische Aufbereitung als auch Gruppierung der Daten sehr wichtig. Der oberste Grundsatz bei der Erstellung von Reports sollte immer Qualität vor Quantität sein. Wer auf den ersten Seiten keine nützlichen Informationen finden kann wird sich den Rest nicht antun, außer er hat keine andere Wahl. Mir ist zwar bewusst, dass gerade die ersten Beispielreports dieser Serie genau dieses Problem haben, aber wir müssen ja erstmal den Einstieg finden.
Die Gruppierung der Hostelemente aus der Datenbank starten wir mit einer Anpassung des Select-Statements:
[code lang=“sql“]
select c.alias,
a.host_object_id,
a.display_name,
a.address
from nagios_hosts a,
nagios_hostgroup_members b,
nagios_hostgroups c
where a.host_object_id = b.host_object_id
and b.hostgroup_id = c.hostgroup_id
and a.instance_id = 1
and b.instance_id = 1
and c.instance_id = 1
and display_name like $P{p_hostgroup}
[/code]
Anschließend müssen wir den vorhandenen Report-Parameter noch umbenennen, damit er zum verwendeten SQL-Parameter passt und das neue Feld c.alias in den Report einfügen.


Im Report Inspector ist dann im Menü „Add Report Group“ eine neue Gruppe zum Bericht hinzuzufügen. Der Name kann willkürlich vergeben werden, sollte aber den fachlichen Inhalt der Gruppe beschreiben, da er auch Grundlage für die daraus entstehenden Detailbänder ist. Als Group Expression verwenden wir c.alias, da dies das entsprechende Unterscheidungskriterium für den Gruppenwechsel darstellt.
Nach Anlage der Gruppe, kann dann in den neu entstandenen Detailbereichen noch die Positionierung von Überschriften, Beschreibungen oder Anzeige der neuen Gruppe erfolgen. Der ganze Report sieht dann so aus und kann wie immer auf dem Demo-System live gestestet werden. Auf netways.org gibt es wieder die Vorlage für die eigene Weiterentwicklung.
Natürlich kommt kein guter Bericht ohne Tortengrafik aus. Um das optische Feintuning fortzuführen, fügen wir im nächsten Post dieser Serie eine Torte hinzu. Hmmm lecker.

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startete er früher das wöchentliche Lexware-Backup, welches er nun endlich automatisiert hat. So investiert er seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinen beiden Söhnen und seiner Tochter.