Zum Inhalt

Report-Engine mit JSON-Datenquelle: Berichtsvorlagen ohne SQL

24. Juli 2026

Wer schon einmal eine Berichtsvorlage angepasst hat, kennt das Bild: In der Vorlage steckt SQL, das SQL liest Spalten wie I4201 oder C2303, und wer den Bericht ändern will, braucht Datenbankwissen, Schemakenntnis und eine ruhige Hand. calServer V2 dreht das um: Die Anwendung liefert den Datensatz, die Vorlage gestaltet nur noch.

Data Contracts statt eingebettetem SQL

Für jede Berichtsfamilie gibt es einen definierten, versionierten Datensatz:

Contract Berichtsfamilie
calibration-certificate Kalibrierschein
inventory-datasheet Geräte-Datenblatt
order-document Auftrag und Lieferschein
repair-report Reparaturbericht
location-report Standort- und Leihbericht

Die Felder darin heißen so, wie sie in der API heißen: serial_number, next_calibration_date, nicht I4201. Wer eine Vorlage baut, arbeitet in einer Namenswelt statt in zweien. Kundenspezifische Felder sind im Datensatz enthalten und stehen ohne Sonderbehandlung zur Verfügung.

Datenbankunabhängig, weil kein SQL drinsteckt

Eine Vorlage ohne eingebettetes SQL ist nicht mehr an ein Datenbankschema gebunden. Dieselbe Vorlage rendert unter MySQL, PostgreSQL und Microsoft SQL Server identisch. Für Installationen, die von MySQL wegmigrieren, fällt damit der Posten „alle Reports nachziehen" aus der Migrationsliste.

Umstellen muss niemand

Bestehende V1-Vorlagen laufen unverändert weiter. calServer erkennt beim Generieren selbst, welcher Weg gilt: Enthält das Haupt-JRXML keine queryString, wird der JSON-Datensatz gebaut, sonst läuft der klassische JDBC-Pfad. Eine Report-Variable data_contract übersteuert die Erkennung, wenn man es explizit anders will, inklusive erzwungenem jdbc.

Ein alter Fehlerfall ist damit auch erledigt: Eine V1-SQL-Vorlage, die auf reine V2-Datensätze losgelassen wurde, hat früher ein technisch „erfolgreiches", aber leeres PDF produziert. calServer erkennt die Konstellation jetzt vor dem Rendern und bricht mit einer verständlichen Meldung ab, sichtbar auch im Berichts-Laufprotokoll.

Vorlagen entwerfen mit echten Daten

Der Datensatz einer konkreten Kalibrierung lässt sich direkt abrufen und im Report-Designer als Beispieldatei verwenden:

GET /api/v2/calibrations/{ctag}/report-dataset

Dazu liefert calServer fertige Beispiel-Bundles je Contract (etwa DAKKS-JSON-SAMPLE für den Kalibrierschein), die als Startpunkt für eigene Layouts dienen.

Der praktische Effekt

Berichtsanpassungen wandern von der Datenbank in die Gestaltung. Wer ein Logo tauscht, eine Spalte ergänzt oder ein zweisprachiges Zertifikat braucht, ändert das Layout und nicht die Abfrage. Und ein Bericht, der einmal funktioniert, funktioniert auch nach einem Datenbankwechsel weiter.

Anleitung und Contract-Übersicht: V2-Berichte mit JSON-Datenquelle. Hintergrund zur Entscheidung: ADR-009.