Posts Tagged ‘formdlim’

h1

Structurer les sauts de page (ODS RTF)

mars 19, 2008

Atomiun, Bruxelles

Par défaut, des sauts de page sont insérés entre les différentes sorties de SAS. Voici deux exemples.

  • Certaines procédures produisent de multiples sorties comme PROC UNIVARIATE.
  • De plus, lorsqu’une instruction BY est utilisée, il y a autant de sorties que de valeurs prises par les BY variables. C’est le cas, d’un PROC FREQ notamment.

Résumé : une ancienne méthode moyennement performante existe pour supprimer les sauts de page. Elle consiste à remplacer le symbole servant de délimiteur par un espace. Grâce à la notation ODS (Output Delivery System), on peut créer rapidement un document RTF lisible par Word et enlever tous les sauts de page ou une partie.

1. L’ancienne méthode : le symbole utilisé pour définir un saut de page en SAS est le trait d’union. Pour que SAS n’interprète pas ce symbole pour un saut de page, on le remplace par un espace avec l’option globale FORMDLIM.

Exemple : pour tester le code suivant, vous pouvez faire un PROC UNIVARIATE sur le jeu de données SASHELP.CLASS et sa variable AGE

  • Remplacer le saut de page par des espaces :

options formdlim=‘ ‘;

  • Restaurer le saut de page :

options formdlim=‘-‘;

Voici deux inconvénients :

  • Des lignes de blancs sont présentes en début de chaque sortie.
  • L’option s’applique sur tout le document à moins de la réinitialiser entre temps

2. Enlever les sauts de page avec ODS RTF : l’ODS RTF permet de créer des documents lisibles par Word.

Enlever touts les sauts : l’option STARTPAGE=NO enlève tous les sauts de page jusqu’à la fin du document, à moins que d’autre instruction ODS RTF soient insérées. La valeur par défaut est STARTPAGE=YES.

ods rtf file=‘C:/vero/sautpage.rtf’ startpage=no;
/*mon proc univariate*/
ods rtf close;

Changer la valeur de STARTPAGE en cours de programme : pour changer le statut de STARTPAGE, on insère une instruction ODS RTF sans redéfinir le nom du fichier. STARTPAGE=NOW n’insèrera qu’un seul saut alors que STARTPAGE=YES insèrera des sauts jusqu’à la fin du document.

Exemple : dans l’exemple qui suit, seul un saut de page entre les sorties de la procédure UNIVARIATE et la procédure FREQ est insérée.

ods rtf file = ‘C:/vero/sautpage.rtf’ startpage=no;
/*mon proc univariate*/
ods rtf startpage=now;
/*ma proc freq*/
ods rtf close;

NOTE 1, résoudre certains problèmes grâce à ODS PRINTER : l’instruction ODS PRINTER est nouvelle dans SAS 9. Si vous rencontrez des difficultés avec vos sauts de pages, je pense notamment à des sauts de pages supplémentaires que vous n’exceptez pas, désactivez les sauts de pages créé par l’ODS PRINTER avec STARTPAGE=NO. Pensez bien à ajouter cette instruction après l’ODS RTF file= et non avant. Vous risquez sinon d’avoir des surprises avec vos images graphiques.

ods printer startpage=no;

NOTE 2, changer l’orientation de la page avec ODS RTF : pour changer l’orientation de la page, on utilise l’option globale ORIENTATION avant l’instruction ODS RTF. Par défaut, c’est PORTRAIT. Pour changer l’orientation au cours du document, on ajoute après une instruction ODS RTF juste après.

options orientation=landscape;
ods rtf file=‘C:/vero/sautpage.rtf’;
/*mon tableau en orientation paysage*/
options orientation=portrait;
ods rtf;
/*mon listing en orientation portrait*/
ods rtf close;

NOTE 3, suspendre la sortie LISTING : quand on utilise ODS RTF, on peut aussi vouloir arrêter d’afficher les sorties dans la fenêtre OUTPUT, nommées LISTING en langage SAS.

ods listing close;
/*ods rtf, …*/
ods listing;