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
Microsoft 365 Tenant Resilience
Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Secteur public : l’IA accélère la modernisation des infrastructures
- De l’inventaire à l’action : l’Asset Management au service d’un Numérique plus responsable
- IA et bureaucratie : la complexité qui grève les projets
- IA dans les services financiers : priorité stratégique, mais passage à l’échelle sous tension
Articles les + lus
Model Context Protocol : le contexte, grand oublié du débat
Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
Computex 2026 : 5 signaux forts à retenir
À la une de la chaîne Tech
- Model Context Protocol : le contexte, grand oublié du débat
- Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
- Computex 2026 : 5 signaux forts à retenir
