Print Page | Close Window


Printed From: Roger's Access Library
Category: Other Download Libraries
Forum Name: Tejpal, A.D.
Forum Description: A.D. Tejpal's Library
Printed Date: 23 Jul 2018 at 11:48am

Topic: Report_HideGrpHdrsIfNoDetail
Posted By: A.D. Tejpal
Subject: Report_HideGrpHdrsIfNoDetail
Date Posted: 02 Dec 2008 at 11:09pm

Sample Db - Explanatory Notes

    This sample db demonstrates run time hiding of group headers and footers in access reports, if there are no longer any printable records for the group as a result of conditional cancellation of detail section's format event.    

    This functionality is achieved by using a set of two classes. The main class (C_CondHeaders_Main) determines the maximum existing number of group levels and report sections, apart from building up a list of unique group keys. This class also builds up a collection of objects conforming to sub-class (C_CondHeaders_Sub).
    Each instance of the subclass represents a group header or footer section. Instead of trying to pass report section object as an argument, simply the section index is supplied, thereby circumventing the hurdle otherwise faced. Corresponding report section object (WithEvents) is generated within the sub-class.
    List of unique group keys generated in ShowDetal method of main class gets pushed to the sub-class via the latter's ShowGroups property. Action for hiding the group header / footer as applicable, is carried out in the sub-class.
    With the combination of two classes as outlined above, the arrangement becomes completely generic, capable of handling any number of grouping levels. At the same time, the code becomes drastically shorter and compact.

    1 - The report must have a calculated text box having [Pages] as part of its expression.
    2 - Each group header section should have a text box bound to that level's ControlSource field
    3 - If there are any sorting/grouping levels above the last header which do NOT have headers, then for each such level, the  report must include a textbox (may be hidden) located in Detail section, bound to the field serving as group's ControlSource.

USAGE - In Report Module:
Declarations Section:
Private cRh As New C_CondHeaders_Main

In Report_Open:
Set cRh.ReportObject = Me

In Report_Close:
Set cRh = Nothing

Last statement in existing Detail_Format:
If Cancel = False Then cRh.ShowDetail

Reference required - DAO 3.6

Version - Access 2000 file format

Download File >>: - uploads/37/


Email: -

Print Page | Close Window