Current Version:
1.4.0

Readme

Extremely Simple WEB Reports

SourceForge.net Logo

Home Integration Konfiguration Formate Symbole Java-Doc Download Übersicht About

RTF

xsreports kann Reports im RTF Format erzeugen. Die Reports die in diesem Format erzeugt werden, basieren immer auf Templates. In den Templates sind Zeichenketten im Format ${Symbol} enthalten, die zur Laufzeit durch den aktuellen Wert ersetzt werden. Das RTF Format hat folgende Vorteile:

  • es besteht aus ASCII Text. Somit kann man Reports dieser Art auf beliebigen Servern erstellen.
  • Bilder sind in der Datei enthalten.
  • es kann von eine Reihe guter Textverarbeitungsprogramme (wie MS-WORD) gelesen werden.
  • die so erzeugten Reports können manuell nachbearbeitet werden.
  • das Template für den Report kann mit einem Textverarbeitungsprogramme (wie MS-WORD) erstellt werden.

xsreports kann in einem RTF Template folgende Operationen vornehmen:

  1. Einfache Textersetzungen.
    Beispiel: ${name} -->
    Svensson

    Wie in Schritt 1 gezeigt, ist für jedes Symbol ein Java-String Objekt in ein Java-Properties Objekt einzutragen.
  2. Tabellen
    Beispiel: ${activities} -->
    Index Bezeichnung
    1 Malen
    2 Lesen
    3 Sport

    Wie in Schritt 1 gezeigt, ist für jedes Symbol ein Java-Array Objekt in das Java-Properties Objekt einzutragen. Dieses Array muss wiederum ein Array für jede Zeile der Tabelle enthalten. Wie in Schritt 4 gezeigt, kann man zusäzliche eine Kopfzeile für die Tabelle konfigurieren.

Hier gibt es eine Beschreibung aller Parameter des Reports.

Mail-Merge Felder

Als Alternative zu Symbolen die einfach als ${mysymbol} koennen auch "Mail-Merge" Felder verwendet werden. In Word erzeugt man ein solches Feld mit folgender Sequenz:

Insert > Field

Dann unter "Categories" "Mail Merge" anwaehlen und unter "Field Names" "Merge Field" selektieren. In dem Feld "Field Codes" muss dann noch der Name des Feldes (also zum Beispiel mysymbol) ergaenzt werden. In Word wird das Feld dann wie folgt dargestellt:

 <<symbol>>

Die Template Datei "sample1_mailmerge.rtf.properties" ist ein Beispiel fuer die Verwendung von Mail-Merge Feldern.

Ob man mit den Mail-Merge Feldern oder mit Symbolen der Art ${Symbol} arbeitet spiel im Grunde keine Rolle. Ich fand die Sache mit ${Symbol} einfacher, und habe sie daher erstmal implementiert - spaeter kam dann die Idee mit den Mail-Merge Feldern hinzu.

Welche Art der Symbole verwendet wird, kann in den Konfigurationsdaten zu dem Report eingestellt werden. Man muss sich allerdings fuer eine entscheiden.

 

CSV

Dieser Report Generator arbeitet analog zum RTF Generator, allerdings wird kein Template verwendet. xsreports implementiert die RTF Reports in der Klasse de.kl.xsreports.CsvGenerator. Diese Reports koennen direkt in Datenbanken oder in MS-Excel geladen werden.

Hier gibt es eine Beschreibung aller Parameter des Reports.

 

Text

Dieser Report Generator arbeitet analog zum RTF Generator, allerdings wird blanker ASCII Text erzeugt. Die Darstellung, insbesondere von Tabellen, ist natuerlich bescheiden, aber es geht. Eine Tabelle sieht wie folgt aus:


+----------------------------------------------------------------+
|Index                                             |Das ist eine |
|                                                  |lange Bezeich|
|                                                  |nung         |
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~|
|1                                                 |Golf         |
|--------------------------------------------------+-------------|
|2                                                 |Tennis       |
|--------------------------------------------------+-------------|
|3                                                 |Essen        |
+----------------------------------------------------------------+

Immerhin werden die erforderlichen Zeilenumbrueche berechnet. Dieser Report arbeitet genau wie der RTF Report auf Basis eines Templates. Hier gibt es eine Beschreibung aller Parameter des Reports.

 

Weitere Formate

Um Reports in einem anderen Format - sagen wir mal PDF zu erstellen muss man eine eigene Klasse schreiben, die die Interfaces Generator und GeneratorConfiguration implementiert.