ACC2000 : Comment faire pour imprimer un pied de groupe à un emplacement spécifique

Traductions disponibles Traductions disponibles
Numéro d'article: 208979 - Voir les produits auxquels s'applique cet article
Modéré : Nécessite macro base, de codage et les compétences de l'interopérabilité.

Cet article s'applique à une base de données Microsoft Access (.mdb) et à un projet Microsoft Access (.adp).

Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article décrit comment afficher des informations de pied de groupe d'un état à un endroit spécifique dans la page. Cela peut être utile lorsque vous imprimez des rapports pour les formulaires préimprimés. Bien que vous ne pouvez pas le faire en utilisant les paramètres de propriété du pied de groupe, vous pouvez utiliser une des trois méthodes suivantes :
  • Placez les informations dans le pied de page de l'état, qui est toujours imprimé en position déterminée.
  • Définissez les propriétés de l'état de la section de pied de page.
  • Définissez les propriétés de l'état de la section détail.

Plus d'informations

Méthode 1: Utilisation du pied de page

Le pied de page est toujours imprimé à un emplacement fixe sur la page de l'état, juste au-dessus de la marge inférieure. Par exemple, si votre rapport a une marge inférieure de 1 pouce (2,54 centimètres) et la hauteur du pied de page est 1 pouce, le pied de page commence 5 centimètres à partir du bas de la page (ou 9 cm de haut d'une page de 11 pouces). Placer les contrôles de pied de groupe dans le pied de page entraîne leur être imprimé à emplacement fixe du pied de page sur la page.

Remarque : vous ne pouvez pas utiliser des fonctions d'agrégation telles que SUM() ou Count() dans un pied de page. Pour plus d'informations sur la façon d'afficher les résultats de regroupement dans le pied de page, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
208850ACC2000 : Comment faire pour calculer la somme d'un calcul dans un rapport

Méthode 2: Définition des propriétés de rapport pour la section de pied de page

Cette méthode implique l'utilisation MoveLayoutPrintSection, propriétés et NextRecord de l'état pour vous assurer que le pied de groupe s'impriment pas au-dessus d'un emplacement spécifique sur la page. Avec cette méthode, vous ne sont pas réellement la spécification de coordonnées du pied de groupe sur la page, mais avancer la position d'impression du pied de groupe jusqu'à ce qu'un décalage vertical spécifié soit atteint.

Pour vous assurer que le pied de groupe est imprimé où vous le souhaitez, vous devez prendre en compte la hauteur de chaque section du rapport. Dans la mesure où vous ne pouvez pas spécifier l'emplacement de la section de pied de groupe (ou toute autre section) avec un paramètre de propriété, vous devez utiliser la propriété MoveLayout pour déplacer la section vers un emplacement d'impression approprié.

La propriété de l'état MoveLayout est False pour chaque section par défaut, mais il peut être modifiée par une procédure événementielle. Par exemple, considérez une section de pied de groupe avec une hauteur de 0,5 pouce qui imprime normalement (c'est-à-dire, lorsque la propriété de l'état MoveLayout a la valeur false) à une position 3,75 pouces du haut de l'état. Si OnFormat événement la section affecte la valeur True à la propriété de l'état MoveLayout, puis lors formatage de la section de pied de groupe, sa position d'impression va être avancée par sa propre hauteur, à une position 4,25 pouces à partir du haut de l'état.

L'exemple suivant montre comment imprimer le pied de groupe dans la partie inférieure de la page en ajustant les hauteurs de section et en utilisant une fonction définie par l'utilisateur d'exemple appelée SetGrpFtrLoc() vérifie si la propriété de l'état supérieur est inférieur au paramètre GrpFtrLoc (l'emplacement où le pied de groupe doit être imprimé). Si tel est le cas, la fonction définit la propriété de l'état MoveLayout True et les propriétés PrintSection et NextRecord sur false, qui déplace la section de pied de groupe à la position d'impression suivante sans l'imprimer ou en mettant en données d'un autre enregistrement. Lorsque la position correcte est atteinte, les propriétés MoveLayout et PrintSection sont les valeurs par défaut et le pied de groupe est imprimé.

Sachez que cela ne signifie pas que le pied de groupe s'imprimera avec précision à l'offset vertical spécifié (GrpFtrLoc); au lieu de cela, la position d'impression va être avancée jusqu'à ce que cet offset a été atteint ou dépassé. Une conséquence de cela est que les sections du rapport, telles que la section en-tête d'état, qui sont imprimées sur certaines pages mais pas sur d'autres, risquent de petites différences dans les emplacements d'impression du pied de groupe. Vous pouvez éviter cela en prenant soin de la configuration des hauteurs des sections différentes de votre rapport, comme le montre l'exemple.

Attention : Si vous suivez les étapes de cet exemple, vous modifier la base de données Comptoir.mdb. Vous souhaiterez peut-être sauvegarder le fichier Comptoir.mdb et suivre ces étapes sur une copie de la base de données.

  1. Démarrez Microsoft Access et ouvrez la base de données Comptoir.mdb.
  2. Créez un nouveau module et entrez la ligne suivante dans la section déclarations du module si elle n'est pas déjà :
    Option Explicit
    					
    Entrez la fonction suivante dans le module :
    Function SetGrpFtrLoc(Rpt as Report, GrpFtrLoc as Double)
    
        GrpFtrLoc=GrpFtrLoc*1440                     'Convert from inches to twips.
        If Rpt.top < GrpFtrLoc Then                  'Not at location yet, so
            Rpt.movelayout = True                    'move to next print location.
            Rpt.nextrecord = False                   'Do not go to next record.
            Rpt.printsection = False                 'Do not print the section.
        End If                                       'Until the required offset is reached
    
    End Function
    					
  3. Enregistrez le module sous Emplacement du pied de page et fermez-le.
  4. Utilisez l'Assistant État pour créer un nouveau rapport basé sur la table clients, y compris les champs suivants :
        Field          Sort           Group
        -----          ----           -----
        Country        Ascending       Yes
        CompanyName    Ascending
        Address
        City
        PostalCode
    					
  5. Sélectionnez disposition Stepped et Portrait et le style par défaut.
  6. Le rapport de clients par pays 1 du titre, sélectionnez Modifier la structure de l'état, puis cliquez sur Terminer.
  7. En mode de Création de l'état, dans le menu affichage, cliquez sur Trier et grouper.
  8. Sous champ/Expression, cliquez sur pays, cliquez sur Pied de groupe et sélectionnez Oui et puis fermez la fenêtre Trier et regrouper.
  9. Cliquez sur l'outil Zone de texte dans la boîte à outils, puis cliquez sur le centre de la section Pied de page pays pour créer une zone de texte indépendante.
  10. Si la feuille de propriétés n'est pas visible, cliquez avec le bouton droit sur la nouvelle zone de texte, puis cliquez sur Propriétés dans le menu contextuel pour l'afficher.
  11. Cliquez sur l'onglet autre et nommez la nouvelle zone de texte DetailCount.
  12. Cliquez sur l'onglet données et dans la zone Source contrôle, tapez =Count([CompanyName]).
  13. Définissez les propriétés de la section de Pied de page pays comme suit :
    Hauteur : 0,3 dans.
    ForceNewPage : après section
    OnFormat : =SetGrpFtrLoc([Report],7)
    Remarque : le paramètre 7 dans la fonction SetGrpFtrLoc() indique que vous souhaitez que le pied de groupe pour commencer au moins 7 pouces à partir du haut de la page.
  14. Enregistrer le rapport et affichez l'aperçu, en utilisant les boutons de navigation pour afficher des pages successives.
Notez que, pendant que le pied de groupe s'affiche à environ la position correcte, il n'apparaît pas au même endroit sur chaque page. Cela est dû au fait que les hauteurs des sections d'en-tête d'état et le détail n'ont pas été définies à un multiple intégral de la hauteur de la section en cours de déplacement. Pour ce faire, procédez comme suit :
  1. Ouvrez à nouveau l'état en mode Création.
  2. La valeur à la propriété Height de la section détail à 0,3.
  3. Définissez propriété de hauteur de la section de l'en-tête d'état à 0,6 cm
  4. Enregistrer et afficher un aperçu du rapport.
Notez que le pied de groupe apparaît maintenant à une position cohérente dans la page, tant que vous disposez d'un nombre modeste d'enregistrements de détail.

Remarque : sections l'en-tête de page et en-tête pays est inutile d'être ajustée, car ils occupent la même quantité d'espace sur chaque page. Si elles apparaissaient sur certaines pages et non sur d'autres, leurs hauteurs faudrait également être ajustée.

Cette méthode a certaines limitations. Si vous avez un grand nombre d'enregistrements de détail ou requièrent le pied de groupe s'affiche à une position relativement élevée sur la page, vous constaterez que le pied de groupe est déplacé vers le bas de la page que les sections détail impression au-delà de l'offset spécifié pour leur pied de page.

Méthode 3: Définition des propriétés de rapport pour la section détail

Vous pouvez utiliser une approche similaire avec les propriétés MoveLayout, PrintSection et NextRecord pour avancer d'une section de détail vide jusqu'à ce que l'emplacement de l'impression de la section de pied de groupe soit atteinte. Cette méthode est préférable de déplacer la section de pied de groupe si la section détail est inférieure à la section de pied de groupe et en particulier lorsque les sections détail ne doivent pas empiéter dans un espace réservé pour le pied de groupe, à l'instar des formulaires préimprimés.

L'exemple suivant montre comment imprimer le pied de groupe à un endroit spécifique sur la page à l'aide d'une fonction exemple défini par l'utilisateur appelée SetDetailLoc() et contrôle d'une page saut dans la section détail du rapport.
  1. Créez un nouveau module et entrez les instructions suivantes dans la section déclarations :
    Option Explicit
    Dim lngRecCntr as Long                               ' number of detail records printed
    					
  2. Entrez les fonctions suivantes :
    Function HidePageBreak(Rpt As Report)
        
        Rpt![HiddenPageBreak].Visible = False
        lngRecCntr = lngRecCntr - 1
        ' the detail is formatted for a second time, but not printed,
        ' on setting new page so adjust the count of printed records
    
    End Function
    
    Function ResetCounter()
    
        lngRecCntr = 0
    
    End Function
    
    Function SetDetailLoc(Rpt As Report, GrpFtrLoc As Double)
      
        GrpFtrLoc = GrpFtrLoc * 1440                 ' convert from inches to TWIPS
        lngRecCntr = lngRecCntr + 1
        
        If lngRecCntr < Rpt![DetailCount] Then       ' some details yet to print
            If Rpt.Top >= GrpFtrLoc Then             ' printing has moved into footer area
                Rpt![HiddenPageBreak].Visible = True ' go to new page
            End If                                   ' otherwise print normally
        ElseIf lngRecCntr = Rpt![DetailCount] Then
            If Rpt.Top < GrpFtrLoc Then              ' not yet at footer area
                Rpt.NextRecord = False               ' don't go to next group
            End If                                   ' until advanced to footer position
        Else                                         ' advancing to footer position
            Rpt.PrintSection = False                 ' don't print anything
            If Rpt.Top < GrpFtrLoc Then              ' not yet down to footer location
                Rpt.NextRecord = False               ' so don't go to next detail
                Rpt.MoveLayout = True                ' but do move down the page
            End If
        End If
    
    End Function
    					
  3. Enregistrez le module sous le Magasin de détail et fermez-le.
  4. Ouvrez l'état de clients par pays en mode Création et l'enregistrer en tant que clients par pays 2.
  5. Cliquez sur l'outil Saut de page dans la boîte à outils, puis cliquez sur en bas de la section détail sur Insérer un saut de page. Cela sera invisible, donc inefficace, par la fonction HidePageBreak() sauf s'il y a suffisamment enregistrements de détail pour exiger une page supplémentaire.
  6. Si la feuille de propriétés n'est pas visible, cliquez avec le bouton droit sur le saut de page pour l'afficher, puis cliquez sur l'onglet autre et tapez le nom HiddenPageBreak.
  7. Définissez les propriétés suivantes pour la section En-tête de page :
    OnFormat : =HidePageBreak([Report])
    Hauteur : 0,6 dans.
  8. Sélectionnez la zone de texte pays dans la section détail, coupez-le et collez-le dans la section d'en-tête de page et positionnez-la au bas de la section.
  9. Définissez la propriété suivante pour la section d'En-tête pays :
    OnFormat : =ResetCounter()
    Hauteur: 0 dans.
    Remarque : la hauteur de cette section peut être utilisée pour compenser un décalage de petit peut-être se produire lors de l'impression des pages supplémentaires de détail, en fonction des hauteurs des autres sections du rapport.
  10. Définissez la propriété suivante pour la section détail :
    OnFormat : =SetDetailLoc([Report],7)
  11. Supprimer la propriété d'événement AuFormatage (OnFormat) de la section Pied pays.
  12. Enregistrer et afficher un aperçu du rapport.
Pour observer l'effet de plusieurs pages d'enregistrements de détails, procédez comme suit :
  1. Ouvrez l'état Customers par pays 2 en mode Création.
  2. Modifiez la propriété Height de la section En-tête de pays à 3.0 pouces.
  3. Changez la propriété AuFormatage (OnFormat) de la section détail en =SetDetailLoc([Report],5)
  4. Enregistrer et afficher un aperçu du rapport.

Références

Pour plus d'informations sur les propriétés de rapport MoveLayout, NextRecord et PrintSection, cliquez sur Aide sur Microsoft dans le menu aide, tapez MoveLayout, NextRecord, PrintSection propriétés dans le Compagnon Office ou l'aide intuitive et puis cliquez sur Rechercher pour afficher la rubrique.

Propriétés

Numéro d'article: 208979 - Dernière mise à jour: mercredi 14 juillet 2004 - Version: 1.2
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Access 2000 Standard Edition
Mots-clés : 
kbmt kbhowto KB208979 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 208979
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com