Annibale,
My reports are always based on views, parameterized if required.
In the INIT() of the report dataEnvironment, I DO a certain form to get the parameters, then REQUERY() the view. I check for the number of records. If there is none, I issue a message, and RETURN .F. By doing so, the report is never run if there are no records to show!.
José