Um List & Label mitzuteilen, dass Sie Drilldown-Berichte entsprechend der obigen Anforderungen durchführen können, müssen Sie die Option LL_OPTION_DRILLDOWNPARAMETER 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!