Q: Comment puis-je imprimer « Page X de Y » sur mes rapports ? RPG permet d’imprimer facilement le numéro de page courante, mais comment imprimer le nombre total de pages ? R: C’est plus compliqué qu’il n’y paraît. Au moment où les en-têtes de pages sont imprimés, on ignore le nombre de pages final […]
Imprimer « page X de Y »
Q: Comment puis-je imprimer « Page X de Y » sur mes rapports ? RPG permet d’imprimer facilement le numéro de page courante, mais comment imprimer le nombre total de pages ?
R: C’est plus compliqué qu’il n’y paraît. Au moment où les en-têtes de pages sont imprimés, on ignore le nombre de pages final du rapport. D’ailleurs, on ne le connaîtra qu’après impression de la dernière page et après fermeture du fichier d’impression.
D’aucun suggère tout simplement d’exécuter deux fois le programme : une première fois pour obtenir le comptage des pages et une seconde pour l’impression proprement dite. Cette méthode n’est pas toujours pratique pour plusieurs raisons : certains programmes mettent à jour des fichiers et, de ce fait, ne sauraient être réexécutés ; d’autres mettent très longtemps à s’exécuter et donc, on hésitera à le faire deux fois. Parfois, les données qui nourrissent le rapport changeront, modifiant le comptage des pages.
Je crois avoir trouvé une meilleure solution. J’ai créé une commande qui s’exécute une fois que le rapport a été sauvegardé dans le spool. Elle lit le fichier spoolé, recherche une certaine chaîne et la remplace par le comptage de pages total.
Pour utiliser cette commande, changez simplement votre programme de reporting afin qu’il imprime une chaîne unique, comme « ++++ », où vous voulez placer le nombre de pages total. Mettez le fichier spoolé en suspens puis exécutez cet utilitaire pour insérer le comptage de pages. La figure 2 montre un exemple.
Voici quelques commentaires à propos de cet utilitaire :
1. Il utilise l’API QUSCRTSP, livrée avec l’autorité PUBLIC(*EXCLUDE). Par conséquent, il vous faudra soit changer l’autorité de cette API, soit faire adopter au programme l’autorité d’un profil utilisateur autorisé à l’exécuter. Dans mes instructions de compilation, je montre comment faire adopter au programme l’autorité QSECOFR.
2. Le texte est « remplacé » par la création d’une nouvelle copie du fichier spoolé avec les numéros de pages inclus et par la suppression de la copie originale. Par conséquent, le numéro du fichier spoolé changera par rapport à sa valeur originale.
Téléchargez cette ressource

Guide de Cyber-résilience pour Microsoft 365
La violation de votre tenant M365 va au-delà d’un simple incident de cybersécurité. Elle peut entraîner une interruption opérationnelle généralisée, des perturbations commerciales et une exposition de vos données sensibles. Découvrez les méthodes et technologies pour évaluer, comparer et renforcer votre posture de sécurité Microsoft 365.
Les articles les plus consultés
- Chiffrements symétrique vs asymétrique
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Afficher les icônes cachées dans la barre de notification
- Activer la mise en veille prolongée dans Windows 10
Les plus consultés sur iTPro.fr
- Accessibilité numérique : l’impact des nouveaux design systems iOS et Android sur l’expérience utilisateur mobile
- Cloud et IA générative : le secteur de la santé visé
- La progression latérale dans les cyberattaques échappe encore à la détection !
- Panorama de la maturité cyber des entreprises françaises
- L’IA n’est pas une stratégie, elle est au service de VOTRE stratégie. Alors posez-vous donc les bonnes questions !
