Posts Tagged ‘rtf’

h1

9 points pour personnaliser ses titres

mars 28, 2008

silhouettes

Ajouter un titre à vos tableaux et graphiques est simple avec l’instruction TITLE. Je vous rappelle la différence entre les guillemets simples et doubles. Je vous parle des méthodes pour aligner vos titres, etc. Vous saurez ensuite comment supprimer vos titres. Pour rendre vos titres un peu plus flexibles, je vous donne un tuyau (l’option NOBYLINE). Pour ce qui est d’un titre de tableau avec ODS RTF, je vous parle de l’option BODYTITLE. Et pour un titre de graphique, on parlera de l’option NOGTITLE. Bonne lecture.

1. Créer un titre : l’instruction globale TITLE permet d’ajouter un titre. Pour cela, on fait suivre le mot-clé du titre entre guillemets.

title ‘Mon titre’;

2. Créer plusieurs titres : SAS autorise jusqu’à 10 lignes servant de titre. Pour les distinguer, un numéro a été ajouté au mot-clé TITLE1-TITLE10. Ainsi TITLE est équivalent de TITLE1.

title1 ‘Mon premier titre’;
title2 ‘Mon second titre’;

title10 ‘Mon dixième titre’;

3. Supprimer un titre : Par défaut, SAS inscrit « The SAS System » comme titre de vos sorties. Pour l’enlever, vous pouvez soit réécrire dessus ou l’enlever définitivement avec une instruction TITLE vide. Notez que pas seulement le premier titre sera supprimé mais l’intégralité des titres définis.

title ;

4. Un titre sur une seule page d’éditeur : votre titre est long et vous avez besoin d’utiliser la barre de défilement horizontale de votre éditeur SAS pour le lire en entier. La solution est de couper votre titre.

title ‘Ma première partie’
      ‘Ma deuxième partie’
;

5. Guillemets simples ou doubles : pour alléger le programme, utilisez de préférence des guillemets simples. Dans certains cas, cependant, vous aurez besoin de guillemets doubles :

  • Résoudre une macro variable
  • Avoir un titre avec des apostrophes

title « Etude : &numero_etude. »;
title « Don’t do it »;

Une autre solution pour traiter les apostrophes est de mettre deux apostrophes simples l’une à coter de l’autre.

title ‘Don »t do it’;

6. Changer l’alignement : votre titre sera par défaut centré. Pour aligner à gauche, vous pouvez suspendre temporairement l’option globale de centrage (options nocenter; /*votre programme*/ options center). Vous pouvez aussi utiliser l’option pour justifier (j=). Celle-ci peut prendre trois valeurs :

  • j=l (left) pour aligner à gauche,
  • j=c (center) pour centrer,
  • j=r (right) pour aligner à droite.

7. Un texte à gauche et un texte à droite : vous pouvez aussi avoir sur une seule ligne plusieurs éléments à positionner : un à gauche, un à droite et un au milieu.

L’ancienne méthode : l’ancienne méthode consiste à assembler le texte de gauche, x blancs, le texte du milieu, y blancs et le texte de droite. Le tout faisant la largeur de la page. Pour cela un petit calcul s’impose.

  • On prend le nombre total de caractères sur la ligne (linesize).
  • La longueur des trois morceaux de texte y est soustraite.
  • Le reste est divisé par deux. Si on a un nombre impair, les deux textes blancs auront un espace de différence.

La nouvelle méthode : avec SAS 8.2 il existait une alternative, temporairement indisponible sous SAS 9.1.3 mais qui devrait redevenir disponible sous SAS 9.2 (cette année !).

title j=l ‘Mon texte de gauche (left)’
      j=c ‘Mon texte du milieu (center)’
      j=r‘Mon texte de droite (right)’;

En fait, l’option ‘justifié’ (j=) est toujours disponible sous SAS 9.1.3 mais seul le dernier est pris en considération par SAS. D’ici là, il ne vous reste plus que l’ancienne méthode.

8. Personnaliser son titre avec la valeur d’une BY variable : l’option globale BYLINE permet d’ajouter automatiquement un titre pour précisez la valeur d’une valeur BY variable. Par exemple, vous construisez un proc report…; by pop;… D’un côté vous avez la forme automatique avec BYLINE (Par Protocol). De l’autre, vous pouvez personnaliser votre titre (Population : Par Protocol).  Pour cela, on désactive l’option avec NOBYLINE (options nobyline;). Puis on utilise #byvar() et ou #byval() dans le titre. Soit on souhaite faire apparaître le nom de la BY variable soir la valeur de la BY variable. Dans le second cas, cette valeur est rendue parlante avec un format.

title ‘Population : #byval(pop)’;proc report …;
  by pop;
  …;
  format pop pop.;
run;

9. ODS RTF : lorsqu’on crée des documents RTF lisibles par Word, il faut pouvoir adapter les options par défaut des titres pour répondre à ses besoins.

Un titre de tableau dans le corps du document : par défaut les titres d’un tableau sont inclus dans les entêtes du document RTF. Pour qu’il fasse partie intégrante du corps du document, on ajoute l’option BODYTITLE.

Un titre de graphique dans le corps du document : par défaut les titres des graphiques sont inclus dans l’image graphique générée par SAS. Pour que cela ne soit plus le cas, on ajoute l’option NOGTITLE dans l’instruction ODS RTF.

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;