# Reportgenerator

Ein Reportgenerator ist ein Computerprogramm zur Erstellung von Berichten (auch Reports genannt) aus Daten einer Datenbank oder anderen Datenquellen. Damit Reports nicht nur von Softwareentwicklern, sondern auch von Endanwendern erstellt werden können, werden die dazu erforderlichen Datenbankanfragen häufig über grafische Benutzeroberflächen definiert und die datenbankspezifischen Anweisungen (z. B. SQL) automatisch generiert.
Es gibt drei Haupttypen von Reportgeneratoren:
* Query-basierte Reportgeneratoren bieten lediglich die Möglichkeit, innerhalb vorgefertigter Datensichten (Queries) zu selektieren und zu präsentieren; sie sind dafür aber meist einfach zu bedienen. Query-basierte Reportgeneratoren sind häufig auch Teil von BI-Produkten. Die Queries werden oftmals von Softwareentwicklern vordefiniert.
* Tabellen-basierte Reportgeneratoren hingegen erlauben es dem Benutzer, sich seine Datensichten selbst zusammenzustellen, indem die gewünschten Datenbanktabellen je nach Bedarf individuell verknüpft werden. Dies setzt voraus, dass der Benutzer wissen muss, welche Daten in welchen Tabellen stehen. Eine gewisse Kenntnis des Datenmodells (ER-Modells) der abgefragten Datenbanken ist dafür unverzichtbar, was den Kreis der möglichen Anwender einschränkt.
* Reportgeneratoren, die als Programmierkomponente in Anwendungsprogramme integriert werden können. Diese können sich dann – je nach Implementierung – dem Anwender als Query-basiert oder Tabellen-basiert präsentieren.
Um auch typischen Endanwendern im Rahmen des End-user Computings die Möglichkeit einzuräumen, Reports über alle verfügbaren Daten zu erstellen, gibt es einige Lösungsansätze, um die Bedienerführung tabellenbasierter Reportgeneratoren zu vereinfachen. Eine Methode ist die Nutzung der Metadaten, die die inhaltliche Bedeutung der einzelnen Tabellen mit ihren Spalten und der zwischen den Tabellen bestehenden Zusammenhänge beschreiben, so dass dem Benutzer Vorschläge für mögliche Verknüpfungen angeboten werden können.
Neben zahlreichen Standardsoftware-Produkten werden häufig auch optimal auf den jeweiligen Informationsbedarf abgestimmte Reportgeneratoren als Teil einer Individuallösung kundenspezifisch realisiert. Dafür eignen sich besonders die Reportgeneratoren, die über eine Programmierschnittstelle verfügen, da diese meist an den individuellen Bedarf angepasst werden können.

## Historie

Reportgeneratoren kamen als Neuheit in den 1970er Jahren auf den Markt, der Übergangszeit des Lochkartenzeitalters zu Bildschirmarbeitsplätzen auf den Großrechnern der Zeit. Sie sollten die Erstellung von Listen und Auswertungen aus sequentiellen Daten (auf Lochkarten, Band (Bändern) oder Platten) vereinfachen. Die Erstellung von Programmen (in COBOL, FORTRAN, ...) war i. d. R. EDV-Abteilungen vorbehalten, die Erstellung von Reports bzw. Berichten sollte aber auch durch Sachbearbeiter möglich werden, so der Ansatz und das Versprechen der Hersteller.
Dazu wurden einfache Sprachen definiert, die nur grundlegende Strukturen (if ... then ... else, eine Schleifenart, ggf. Sprungbefehle) bereitstellten, nur mathematische Grundfunktionen anboten und über komfortable Druckbefehle verfügten. Der typischen Reportaufbau bestand aus drei Blöcken:
Startblock (optional)
Startwerte setzen, Seitenkopf definieren, Spaltenbreiten setzen, ...
Verarbeitungsblock
Schleife über je einen Record der auszuwertenden Daten mit Auswertungen, Drucken, ...
Endblock (optional)
Zusammenfassende Endwerte ausgeben
Typisch für Reportgeneratoren waren der Verzicht auf explizite Öffnungs- und Schließbefehle für Dateien, die automatisch vorhandene Schleife über je einen gelesenen Record im Verarbeitungsblock und das stille Beenden dieser Schleife bei Erreichen des Dateiendes.
Ein Vertreter war das Programm Easytrieve (Easy Retrieve = Einfacher Zugriff) oder auch Omnitab. Auch der mit UNIX entstandene Awk war zuerst einmal ein Reportgenerator.