Vorbereitungen

Um List & Label mitzuteilen, dass Sie Drilldown-Berichte entsprechend der obigen Anforderungen durchführen können, müssen Sie die Option LL_­OPTION_­DRILL­DOWN­PARA­METER auf einen Wert ungleich 0 setzen.

Beachten Sie aber, dass Sie diese Option für jeden Druckjob setzen müssen, der Drilldown ermöglichen soll:

// activate Drilldown for current LL-Job
::LlSetOption(hJob, LL_OPTION_DRILLDOWNPARAMETER,
                (LPARAM)&oMyDrillDownParameters);

Um Drilldown für den LL-Job wieder zu deaktivieren, müssen Sie diese Option einfach auf den Wert 'NULL' setzen:

// deactivate Drilldown for current LL-Job
::LlSetOption(hJob, LL_OPTION_DRILLDOWNPARAMETER, NULL);

Den Wert, den Sie in dieser Option übergeben, können Sie selbst definieren, beispielsweise als Zeiger auf interne Datenstrukturen oder Objekte. Sie bekommen diesen im START- und FINALIZE-Callback unverändert wieder geliefert (scLlDrillDownJob._nUserParam), um ihn dort benutzen zu können. Wichtig ist für List & Label nur, dass er nicht 0 ist.

Über den Callback LL_NTFY_VIEWERDRILLDOWN (Beschreibung siehe Kapitel Callbacks und Notifications) informiert List & Label Sie über die durchzuführende Aktion. Dieser Callback wird immer im Kontext des Vorschau-Threads aufgerufen, unabhängig davon, ob er aus der Echtdatenvorschau im Designer oder aus dem direkten Vorschaudruck heraus aufgerufen wurde.

Wenn Sie Werte aus der Struktur, wie zum Beispiel _nUserParam, im Thread verwenden, sorgen Sie bitte dafür, dass der Thread sie ausgewertet oder kopiert hat, bevor Sie aus dem Event-Handler wieder die Kontrolle an List & Label übergeben, da danach die Struktur nicht mehr gültig ist - dies gilt für alle Callbacks!