Hi Peter

This is because of historical Reasons. In the very Beginning (List & Label 8 or 9) there was only the cListLabelWrapper Class. Since that Times the DefineAllFields is a Notification where you should define all your available Fields in your Report. In a later List & Label Version combit added the Report Container Style which made it possible to do Drilldown-Reports and such stuff. To support this new Report Container from within DataFlex many changes and extensions have to be done. I decided to add a additional Class cListLabelReport which were able to do all the nedded new Stuff and some new Features like automatically define all used DataDictionaries inside the View. My main goal is always to avoid breaking existing Code for Users that already used the old cListLabelWrapper Class. This (among other Points which i may not remember any more ;-) ) is why i just overrided my own Notification in the new class.

If you look at the definition of DefineAllFields in the new cListLabelReport Class you can see a clear Warning stating that you definitely should forward the Notification:

Code:
    // DefineAllFields: Is overriden to automatically define all defined Datadictionaries. If you use
    //                  this in your Object don't forget to forward it.
    Procedure DefineAllFields
    ...
I agree with you that this could have been done maybe a little smoother ;-)

If you don't want to automatically bring all existing DataDictionaries to List & Label there is a Notification

Code:
    // OnAddDictionary
    // Is called for each Dictionary Object that is about to be added to the Report
    // Parameters: 
    //              Integer hoDDo           The ObjectID of the DataDictionary Object in Question
    //
    // Return Values:
    //              TRUE  Add the Dictionary and all connected Dictionaries to the Report
    //              FALSE Don't add the Dictionary and all connected Dictionaries
    //
    Procedure OnAddDictionary Integer hoDDo
        Procedure_Return (True)
    End_Procedure
Just return False inside this Notification for one or all DataDictionary Objects and the underlying Tables are not Reported to List & Label

HTH
Bernhard