Drilldown-Berichte in der Vorschau

Drilldown Reporting bezeichnet die Navigation in hierarchischen Daten durch verschiedene Detaillevel hindurch.

Zunächst wird nur eine obere Ebene auf Vorschau ausgegeben (z. B. "Kunden") und durch einen Klick auf einen Kunden dann ein neuer Bericht (z. B. "Bestellungen") geöffnet, der im Normalfall Details zu dem Datensatz enthält, auf den man geklickt hat. So klickt man sich nach und nach herunter (daher die Bezeichnung) bis man z. B. bei den einzelnen Produkten gelandet ist. Der Vorteil liegt in der Performance, durch die schrittweise Spezialisierung findet man auch in komplexen und großen Datenbeständen schnell genau die Informationen, die man sucht. Drilldown funktioniert in List & Label für die Vorschau, und für Tabellenzeilen oder -felder.

Voraussetzung für dieses Feature ist, dass Ihre Entwicklungsumgebung auf Callbacks oder Fenster-Nachrichten reagieren kann (siehe Kapitel Callbacks und Notifications).

Die .NET- und VCL-Komponenten unterstützen im datengebundenen Modus automatisch dieses Feature, sobald eine Datenquelle angebunden wird, die Hierarchien unterstützt und auch zurückgesetzt werden kann (die meisten DataProvider erfüllen diese Voraussetzungen). Wenn Sie die Komponente so verwenden, brauchen Sie den Inhalt dieses Kapitels nicht zu berücksichtigen.

Für C++ ist bereits ein vollständig implementiertes Beispiel in Quellcode-Form vorhanden. Sie finden es im Verzeichnis '"Beispiele > Visual C++ > Designer Preview and Drilldown ''.

Für eine verbesserte Benutzerakzeptanz empfiehlt es sich bei anderen Entwicklungsumgebungen das Drilldown durch den Einsatz von Threads zu implementieren, so dass die Arbeit dazu im Hintergrund stattfinden kann. Dies ist aber nicht zwingend notwendig. Sie müssen in diesem Fall einen Thread mit einer Druckprozedur starten können und benötigen Synchronisationselemente wie Mutex, Critical Section oder ähnliches.

Die von Ihrem Code durchzuführende Aufgabe besteht darin, Ihren Echtdatendruck mit einer passend gefilterten Datenquelle auszuführen. Hierfür gibt es über einen Callback Informationen über die Aufgabe (Start und Ende eines Drilldown-Berichts). Dabei wird ein Zeiger auf eine scLlDrillDownJob Struktur übergeben, die alle für die jeweilige Aktion benötigten Daten enthält. Es sind nur geringe Änderungen gegenüber dem normalen Druck notwendig.