La syntaxe de ODS RTF a pour but de créer des fichiers ayant une extension .rtf lisible par Word notamment. Comment faire apparaître les numéros de pages en haut ou en bas de la page ? Comment faire pour ajouter des titres à vos tableaux par exemple quand les instructions TITLE et FOOTNOTE servent à la numérotation ?
1. Créer un document RTF
Stopper temporairement l’envoi vers la fenêtre OUTPUT : Dans un premier temps, la destination LISTING est désactivée. Elle est réactivée à la fin. En effet, par défaut le résultat d’un PROC PRINT est envoyé dans la fenêtre OUTPUT de SAS, fenêtre communément appelée LISTING en ODS.
Ouvrir et refermer le fichier RTF : la première instruction ODS RTF sert à définir le nom du fichier RTF à créer. Ici le fichier s’appelle NUMEROTATION.RTF et sera sauvegardé dans le répertoire SASREF du disque C. Toutes les impressions qui suivent (les deux PROC PRINT) seront inclues dans le document RTF. La dernière instruction ODS RTF indique la fermeture du fichier RTF. Plus aucune information ne sera ajoutée au fichier jusqu’à nouvel ordre.
Ajouter un en-tête : Une instruction TITLE située juste avant la première instruction ODS RTF ajoute une en-tête composée de deux parties :
- Le centrage, l’alignement (justification) par défaut : Mon EN-TETE est centrée (center en américain)
- Aligner à droite (right) : Page X/XX est affichée à droite de la page grâce à l’option qui la précède J. `
Par la suite X/XX seront remplacés par des numéros de page.
En effet par défaut les titres (title) et pieds de page (footnote) ne sont pas affichés dans le corps du document aux extrémités.
ods listing close;
title 'Mon EN-TETE' j=r 'Page x/xx';
ods rtf file='C:/sasref/numerotation.rtf';
proc print data=sashelp.class;
run;
proc print data=sashelp.class;
run;
ods rtf close;
ods listing;
2. Ajouter des numéros de page
A présent, deux petits ajouts sont fait.
Définir un symbole avec ODS ESCAPECHAR : Le symbole ^ servira de caractère pour introduire des mots-clés, comme l’indique l’instruction ODS ESCAPECHAR. Vous pouvez choisir le symbole de votre choix. La seule règle à respecter est de prendre un symbole qui n’a pas besoin d’être affiché dans le titre.
Afficher la page actuelle et le nombre total de page avec THISPAGE et LASTPAGE : dans l’instruction TITLE, les mots-clés THISPAGE et LASTPAGE doivent être englobés dans des accolades précédé de notre symbole ^ précédemment défini. SAS se chargera alors de les mettre à jour pour chaque page de votre document RTF.
Entre les deux numéros, la barre inclinée (slash) délimite le numéro de la page actuelle de celui de la dernière page. Vous être bien sûr libre d’ajouter le texte de votre choix entre les deux. De même, vous n´êtes pas obligé de faire précédé la numérotation du mot PAGE.
ods listing close;
ods escapechar='^';
title 'Mon EN-TETE' j=r 'Page ^{thispage}/^{lastpage}';
ods rtf file='C:/sasref/numerotation.rtf';
proc print data=sashelp.class;
run;
proc print data=sashelp.class;
run;
ods rtf close;
ods listing;
3. Ajouter des titres à mes différents tableaux
ODS RTF TEXT= : Maintenant que les options TITLE et FOOTNOTES servent pour les en-tête et pied de page, il faut trouver une alternative pour ajouter des titres à vos tableaux et graphiques. L’ODS RTF TEXT= se charge du travail.
La base, un exemple avec le titre du premier tableau : dans le premier exemple, on voit que l’instruction ODS RTF TEXT= contient entre guillemets ^S= suivi de deux accolades. De nouveau le symbole ^ est celui défini dans ODS ESCAPECHAR.
- La première accolade contiendra des informations de mise en forme du texte.
- La seconde accolade contiendra le titre.
Quelques options pour améliorer la mise en forme, un exemple avec le second titre : dans le second cas, on précise que
- Le texte est à centrer horizontalement (JUST=C) et verticalement (VJUST=C).
- Le texte sera afficher dans un emplacement de 3 cm de haut (OUTPUTHEIGHT=3cm) et cet emplacement prendra la totalité de la largeur de la page (OUTPUTWIDTH=100%).
- Enfin le texte aura une taille de 18pt (FONT_SIZE=18pt).
ods listing close;
ods escapechar='^';
title 'Mon EN-TETE' j=r 'Page ^{thispage}/^{lastpage}';
ods rtf file='C:/sasref/numerotation.rtf';
proc print data=sashelp.class;
run;
ods rtf text='^S={}{Tableau 1}';
proc print data=sashelp.class;
run;
ods rtf text='^S={just=c vjust=c outputheight=3cm outputwidth=100% font_size=18pt}{Tableau 2}';
ods rtf close;
ods listing;
Poursuivre votre lecture : Trois articles sur l’ODS RTF