> Tech > Imprimer « page X de Y »

Imprimer « page X de Y »

Tech - Par Scott Klement - Publié le 24 juin 2010
email

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 […]

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 inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez les dernières tendances et solutions IT autour des univers de Poste de travail, Affichage et Collaboration, Impression et Infrastructure, et notre dossier Green IT sur les actions engagés par inmac wstore pour réduire son impact environnemental

Tech - Par Scott Klement - Publié le 24 juin 2010