Ein offenes Format und eine einbettbare Engine für relationales Reporting — hier ist jeder Bericht ein portabler Abfragegraph, eine materialisierte SQLite-Tabelle und ein parametrisches Layout.
MAD ist eine eingebettete Plattform für relationales Reporting für Ad-hoc-Abfragen, Berichte und Design: die Apps MAD Designer und MAD Viewer für iOS und natives macOS (AppKit), die headless Engine, die sie unter Linux und macOS ausführt, und das offene .mad-Dokumentformat. Eine .mad-Datei enthält die gesamte Definition eines Berichts — den Schema-Snapshot der Datenbank, den Abfragegraphen (Tabellen, Joins, Prädikate, Gruppierungen) und das bandbasierte Layout seiner Elemente — in weniger als 100 KB, sauber getrennt von der materialisierten SQLite-Tabelle (.maddb + .mdcache), die sie beim Aktualisieren erzeugt.
Der Code liegt auf github.com/mthomason/MAD, unter MIT-Lizenz; die Namen und das App-Artwork sind von dieser Lizenz nicht abgedeckt (siehe NOTICE).
MAD Designer auf macOS ausprobieren (macOS 12.0+, Apple Silicon):
- Homebrew:
brew install --cask mthomason/tap/mad-designer
Direkter Download: MAD-Designer-macOS.dmg MAD-Designer-macOS.zip (bei direkten Downloads nach dem Kopieren nach /Applicationseinmalxattr -cr "/Applications/MAD Designer.app"ausführen)
MAD Designer für macOS — native AppKit-Desktopanwendung (NSDocument, visuelle Abfrageleinwand für Tabellen und Joins, interaktive Minimap der Bereiche und bandbasierter Berichtsdesigner sowie seitenweise Anzeige von PDF/HTML/CSV/JSON-Berichten):


MAD Designer für iOS, von der Auswahl einer Datenquelle bis zum fertigen Bericht in MAD Viewer:
Dieselbe Engine headless unter Linux: inspect, schema, query, refresh
und export über die mad-CLI, ohne Datenbankserver und ohne Zugangsdaten:

Der exportierte Bericht der Aufzeichnung ist reines HTML und lässt sich in jedem Browser öffnen.
.mad-Datei den Schema-Kontrakt, den Abfrage-AST und das
Präsentationslayout in einem einzigen einsehbaren, diffbaren Artefakt, das
byte-identisches SQL und byte-identische Exporte auf Apple- und
Linux-Plattformen erzeugt.libpq, SQLite — plus libarchive/bzip2 und zint für Barcodes. Kein
proprietäres Reporting-SDK wird weiterverkauft.MADDataTableFast) und berechnet von dort
zweistufige Gruppierungen und Aggregate, sodass das seitenweise Rendern im
Speicher eines Telefons schnell bleibt..mad-Container ist ein bzip2-tar-Archiv mit einem portablen
SQLite-Speicher; zum Öffnen ist kein Apple-Framework erforderlich..mad-FormatDie offene Spezifikation, ein Kapitel pro Datei:
Was ein Dokument ist ·
Der Container ·
Der Speicher ·
Lesen und Schreiben ·
Begleitdateien ·
Fallstricke ·
Normativ v1 ·
Offene Fragen ·
Verifikation
AppKit-Desktop-App:
visuelle Abfrageleinwand, bandbasierter Berichtsdesigner mit Minimap und
Inspector, seitenweise Anzeige und wie man sie aus dem Quellcode baut oder
paketiert.mad-CLI — eine .mad-Datei
mit einer Zeile aus Docker inspizieren, aktualisieren und exportieren..mad-Datei in GitHub Actions ausführen und ihren Export hochladen;
mthomason/mad-action@v1.MADDatabase ableiten, den Treiber registrieren,
Zeilen zurückgeben.Vision — Berichte als kombinierbare Datenbanktabellen, Abfragen mit
mehreren Quellen in einem einzigen Bericht, native UIKit-Datenansichten jenseits
des Papierparadigmas und die Konvertierung von Legacy-Crystal-Reports-Dateien
(.rpt) in offene .mad-Dateien.
Die App MAD Designer — der Berichtsdesigner, der auf dieser Engine aufbaut — hat ihre eigene Website unter mad.everydayapps.com.
Diese Seite ist eine deutsche Übersetzung des englischen Originals; bei Abweichungen ist der englische Originaltext maßgeblich.