Preparations

To enable expandable regions in List & Label set the option LL_OPTION_EXPANDABLE_REGIONS_REALDATAJOBPARAMETER to a value unequal to 0.

Please note that this option has to be set for each LL-job that should support expandable regions:

// activate expandable regions for current LL-Job
::LlSetOption(hJob, LL_OPTION_EXPANDABLE_REGIONS_REALDATAJOBPARAMETER,
                (LPARAM)&oMyExpandableRegions);

To deactivate expandable regions for this LL-job set the option to NULL:

// deactivate expandable regions for current LL-Job
::LlSetOption(hJob, LL_OPTION_EXPANDABLE_REGIONS_REALDATAJOBPARAMETER, NULL);

The parameter passed with this option can be used freely, for example as a pointer to an internal data structure or objecets. This parameter will be passed unchanged in the callback for your use (scLlDrillDownJob._nUserParam). Please make sure the parameter is not 0 or NULL unless you want to deactivate expandable regions.

Via the callback LL_NTFY_VIEWERDRILLDOWN (for further description, please see chapter Drilldown Reports in Preview) List & Label informs about the current task. This callback will always be called in the context of the preview thread, regardless if initiated from designer or preview print.

When you use structure members, e.g. like _nUserParam, please ensure that the thread has evaluated or copied them before you pass control back to List & Label, as the structure will no longer be valid then – this is true for all Callbacks!