support clients / FAQ

Output Delivery System - SAS/BASE®

Liens utiles

Articles parus

  • Les nouveautés de l'ODS Layout en version 9.4 – Décembre 2013 – SAS 9.4 Lire 
  • ODS orienté objet - Des rapports personnalisés avec une étape Data – Décembre 2012 – SAS 9.3 Lire 
  • Les nouveautés de l'ODS GRAPHICS en version 9.3 – Décembre 2011 – SAS 9.2 et 9.3 Lire
  • Les sorties HTML avec le TAGSET TABLEEDITOR - Juin 2007 - SAS 9.1 Lire (PDF) 
  • Des éditions sur mesure avec l'ODS Orienté Objet - Novembre 2006 - SAS 9.1 Lire (PDF) 
  • Deux instructions expérimentales en SAS®9 : ODS Layout et ODS Region - Février 2006 - SAS 9.1 Lire (PDF)
  • Organisez vos rapports SAS®9 avec l'ODS DOCUMENT - Janvier 2005 - SAS 9.1 Lire (PDF)
  • Des graphiques statistiques automatiques grâce à l'ODS Graphics - Novembre 2004 - SAS 9.1 Lire (PDF)
  • Gestion des sauts de page dans vos restitutions HTML - Avril 2004 - SAS 8.2 Lire (PDF)
  • Du français dans vos rapports - Décembre 2003 - SAS 8.2 Lire (PDF)

FAQs

QUESTIONS GENERALES

  • Présentation de l'ODS Réponse nouveau
  • Comment s’assurer que la sortie web d’une instruction ODS sur le type de sortie _webout exécutée dans un Stored Process Server sera bien formatée ? Réponse nouveau
  • Lorsque j'utilise une intruction ODS, je reçois le message suivant : WARNING: no output destinations active. Quelle en est la raison ? Réponse 
  • Où trouver plus de FAQ pour personnaliser ses sorties ? Réponse
  • Comment connaître le nom des objets (tables) générés dans la fenêtre OUTPUT ? Réponse
  • Comment récupérer dans une table les résultats d'une procédure donnée ? Réponse
  • Comment choisir les tables qui seront affichées dans la fenêtre output ? Réponse
  • Comment accéder à la liste des styles définis dans SAS ? et au code SAS correspondant ? Réponse 
  • Comment changer la localisation des styles personnels ? Réponse 
  • Comment identifier facilement le nom des éléments d’un style SAS (afin de pouvoir le modifier plus aisément) ? Réponse 

ODS LISTING 

  • Comment créer un fichier texte à partir d'une table SAS et y intégrer des titres et footnotes ? Réponse

ODS HTML

  • Comment changer le titre figurant dans la bannière d'un navigateur, d'un fichier HTML créé avec l'ODS ? Réponse
  • Comment remplacer, dans une table des matières, "The Print Procedure" par un texte personnalisé ? Réponse
  • Comment faire pour insérer un logo lorsqu'on crée des fichiers HTML à partir de l'ODS HTML ? Réponse
  • Comment supprimer les sauts de page dans un document HTML ? Réponse
  • Comment supprimer l'encadré d'un titre dans une page HTML ? ( Il est visible quand la couleur de fond du titre est différente de celle de la page HTML). Réponse
  • Dans Enterprise Guide, il existe une interface pour créer ses propres styles. Est-il possible d'appliquer ces styles dans SAS ? Réponse
  • Dans les préférences (TOOLS -> OPTIONS -> PREFERENCES), au niveau de la restitution des résultats (onglet Results), dans la partie HTML, il est possible de spécifier qu'un fichier HTML soit créé par défaut pour chaque sortie. Le style qui sera appliqué au document HTML peut également être choisi. Dans la liste déroulante, on ne voit que les styles proposés par SAS. Est-il possible d'ajouter à cette liste les styles définis par l'utilisateur ? Réponse
  • Comment mettre en place un formatage conditionnel dans un tableau ? Réponse
  • Lors de la création d'une table des matières, avec l'ODS HTML, comment procéder pour que les références aux fichiers HTML soient exprimées de façon relative ? Réponse
  • Comment faire pour définir l'emplacement des graphiques au format gif générés en ODS HTML ? Réponse
  • Entre la version 8.2 du Système SAS et SAS 9, il se peut que les sorties HTML diffèrent en raison d'un code HTML généré différent. Comment faire pour retrouver le code HTML de la version 8.2 du Système SAS avec SAS9 ? Réponse 
  • Comment inclure le code d'un fichier CSS dans un fichier HTML ? Réponse
  • Comment positionner plusieurs graphiques sur une même page dans une sortie HTML ?  Réponse

ODS RTF

  • Pourquoi les couleurs que j'ai utilisées dans SAS ne sont pas restituées correctement dans Word ? Réponse
  • Comment changer la taille des marges de documents RTF créés à partir de l'Output Delivery System (ODS) ? Réponse
  • Comment créer de vrais tableaux Word ? Réponse
  • Comment gérer les sauts de page dans les documents RTF créés à partir de l'ODS RTF ? Réponse
  • Par défaut, lorsqu'on utilise l'ODS RTF, les titres (instruction TITLE) et notes de bas de page (instruction FOOTNOTE) se retrouvent dans les zones en-têtes et pieds de page de Word. Est-il possible de les avoir dans le corps du document Word ? Réponse
  • Comment créer un document RTF en mode paysage ? Réponse 
  • Comment souligner une partie d’un titre en sortie RTF? Réponse 
  • En SAS®9, lorsque les sauts de page ont été supprimés (option startpage positionnée à no), comment spécifier le nombre de lignes blanches entre les résultats des procédures ? Réponse
  • Comment créer un document RTF contenant à la fois des pages orientées en paysage et en portrait ? Réponse
  • Pourquoi des caractères insolites peuvent-ils apparaître dans la première colonne d'une sortie au format RTF ? Réponse
  • Comment mettre un texte caché dans un titre ? Réponse

ODS PDF

  • Comment avoir des numéros de page personnalisés dans les sorties pdf ? Réponse

Autres FAQs SAS/Base®

Généralités | Procédures, Instructions et Fonctions | Macro-langage | Traitement des fichiers externes | Interface, Log, Output | Exemples

Solutions

Caractéristiques :
  • Catégories : ODS
  • OS : Windows, Unix, z/OS
  • Version : Toutes
  • Vérifié en mai 2013
Présentation de l'ODS

L'Output Delivery System (ODS) est disponible dans le module BASE SAS. Toutes les procédures du Système SAS l'utilisent pour produire leurs sorties.
Avec l'ODS, il est possible :

  • de sélectionner ou d'exclure certaines parties des résultats produits par les procédures SAS,
  • d'appliquer des styles (gras, italique, choix de couleurs, de polices, etc),
  • de rediriger les sorties vers le type de rapport de votre choix (HTML, PDF, RTF, etc), directement  vers l'imprimante, ou encore dans des tables SAS.

Comment utiliser l'ODS ? Prenons un exemple simple : des calculs de statistiques avec une procédure Univariate. En encadrant le code de la proc Univariate par des instructions ODS HTML, le résultat sera enregistré dans un fichier html :

ods html file='c:\temp\resultat.html';
proc univariate data=sashelp.class;
var age;
run;
ods html close;
 

Il est tout aussi aisé de récupérer les résultats dans une table SAS, en encadrant le code SAS avec des instructions ODS OUTPUT cette fois.
Une information est nécessaire : le nom de l'objet contenant les résultats à sauvegarder. Dans le cas de la procédure Univariate, cinq objets sont créés : moments, statistiques élémentaires, tests de position, quantiles et valeurs extrêmes. L'instruction ODS TRACE permet d'identifier leur nom (ils seront affichés dans la log).

ods trace on;
proc univariate data=sashelp.class;
var age;
run;
ods trace off;
 

Ainsi l'objet contenant les statistiques élémentaires est "BasicMeasures". Cette information est alors utilisable dans l'instruction ODS Output, pour créer une table SAS contenant ces indicateurs.

ods output BasicMeasures=resultat;
proc univariate data=sashelp.class;
var age;
run;
ods output close;
 

Ces quelques éléments constituent le minimum vital pour débuter avec l'ODS, l'aide en ligne détaillant de manière complète l'ODS. Nous vous recommandons également cette page qui recense tous les liens utiles sur l'ODS.


Caractéristiques :
  • Catégories : ODS
  • OS : Windows, Unix
  • Version : 9.1 et au-delà
  • Vérifié en mai 2013
Comment s'assurer que la sortie web d'une instruction ODS sur le type de sortie _webout exécutée dans un Stored Process Server sera bien formatée ?

Dans la déclaration de la ligne de code ODS, il suffit d’ajouter l’option :

rs=none 

Cette option permet de formater la sortie en mode « record based » (mode où les enregistrements envoyés vers le fichier de sortie sont des lignes entières).
Cette option est particulièrement recommandée quand vous générez des fichiers HTML avec une instruction ODS dans une application stockée ou SAS/Intrnet (sur un filename _webout).
Elle est également applicable si l'instruction ODS crée un fichier plat (texte) contenant des données UTF-8.

Exemple :

ods listing close;
ods csv file=_webout options(Delimiter=';') rs=none;
data _null_;
set sasuser.matable;
file print ods;
put _ods_;
run;
ods csv close;
ods listing;
 

 

Lorsque j'utilise une intruction ODS, je reçois le message suivant : WARNING: no output destinations active.
Quelle en est la raison?


Par défaut, la destination ODS LISTING est toujours ouverte. Si vous la fermez (syntaxe : ODS LISTING CLOSE) et que vous exécutez une procédure, sans avoir précisé une nouvelle destination de sortie, vous recevrez alors le message ci-dessus puisque aucune destination n'est alors active.

Pour résoudre le problème, soumettez simplement l'instruction :
ODS LISTING ;
Ou tout autre destination ODS possible (RTF, PDF, PRINTER, HTML, etc.). 



Où trouver plus de FAQ pour personnaliser ses sorties ?

Sur notre site américain, vous trouverez des FAQ en Anglais utilisant la procédure TEMPLATE : http://support.sas.com
 

Retour Haut


Comment connaître le nom des objets (tables) générés dans la fenêtre OUTPUT? 

Afin de connaître le nom des objets générés par les procédures, vous pouvez utiliser les commandes ODS TRACE ON/OFF, comme suivant :

ODS TRACE ON;
Proc reg data=sashelp.class;
model weight=height age;
Run;
quit;
ODS TRACE OFF;

Le nom de chaque objet s’affiche dans la fenêtre LOG, comme suivant :

Output Added:
-------------
Name:       NObs
Label:      Number of Observations
Template:   Stat.Reg.NObs
Path:       Reg.MODEL1.Fit.Weight.NObs
-------------

Output Added:
-------------
Name:       ANOVA
Label:      Analysis of Variance
Template:   Stat.REG.ANOVA
Path:       Reg.MODEL1.Fit.Weight.ANOVA
-------------

Output Added:
-------------
Name:       FitStatistics
Label:      Fit Statistics
Template:   Stat.REG.FitStatistics
Path:       Reg.MODEL1.Fit.Weight.FitStatistics
-------------

Output Added:
-------------
Name:       ParameterEstimates
Label:      Parameter Estimates
Template:   Stat.REG.ParameterEstimates
Path:       Reg.MODEL1.Fit.Weight.ParameterEstimates
-------------

 
 

 
Caractéristiques :
  • Catégories : Base SAS
  • OS : tous
  • Version : 8.2 et +
  • Vérifié en Octobre 2010
Comment récupérer dans une table les résultats d'une procédure donnée ?

Une fois le nom de l'objet concerné identifié (avec l'ods trace, cf FAQ ci-dessus), l'ods output permet de créer une table SAS qui contiendra les résultats affichés dans la sortie de la procédure.
Ainsi, les paramètres estimés d’une régression peuvent être sauvegardés dans une table en utilisant cette syntaxe :

ods output ParameterEstimates=param;
proc reg data=sashelp.class;
model weight=height age;
run;
quit;
ods output close;

Le nom de l'objet correspondant est bien ParameterEstimates.

Et la table qui sera créée est param. 

 


Comment choisir les tables qui seront affichées dans la fenêtre output? 

Utiliser les commandes ODS SELECT ou ODS EXCLUDE.

  1. ODS SELECT  : permet de sélectionner les objets que l’on souhaite garder
  2. ODS EXCLUDE  : permet d’exclure des objets de l’output

Exemple : On souhaite afficher dans l'output d'une procédure REG, seulement l'estimation des paramètres.
ODS SELECT ParameterEstimates ;
Proc reg data=sashelp.class;
model weight=height age;
Run;
quit;
 

 

 
Caractéristiques :
  • Catégories : Base - ODS
  • OS : Tous
  • Version : 9.1 – 9.2
  • Vérifié en février 2011
Comment accéder à la liste des styles définis dans SAS ? et au code SAS correspondant ?

Il existe deux approches pour lister les styles dans SAS.

1. Via programmation, avec ces instructions :

proc template;
 list styles;
run;
Les styles fournis par défaut avec SAS sont présents dans la bibliothèque SASHELP (objet TMPLMST). Citons par exemple analysis, statistical, meadow, statdoc, etc.
Dès lors que des styles personnalisés sont créés (à partir de ces styles fournis en standard), ils sont par défaut stockés dans la bibliothèque SASUSER (dans l'objet TEMPLAT)

2. en cliquant, dans la fenêtre Résultats, sur Résultats (avec le bouton droit de la souris) et en choisissant Templates. Ensuite, il convient de naviguer dans la fenêtre, et de descendre par exemple dans SASHELP.TMPLMST et styles (pour voir les styles standard), ou encore SASUSER.TEMPLAT et styles (pour voir ses propres styles).

En procédant ainsi, il est alors possible de double-cliquer sur les styles, ce qui éditera le code de la procédure TEMPLATE utilisé pour le créer. 

 

 
Caractéristiques :
  • Catégories : Base - ODS
  • OS : Tous
  • Version : à partir de SAS 8.2
  • Vérifié en février 2011
Comment changer la localisation des styles personnels ?

Par défaut, les styles personnalisés sont créés dans la bibliothèque SASUSER. Il est possible de spécifier une autre bibliothèque, en utilisant l’instruction ODS PATH. Voici un exemple de syntaxe :

ODS PATH autre.templat(update) sasuser.templat(read) sashelp.tmplmst(read);

Les nouveaux styles créés seront stockés dans la bibliothèque nommée 'autre'. Ceux existant dans la bibliothèque SASUSER seront accessibles en lecture, de même que ceux fournis en standard avec SAS (soit dans la bibliothèque SASHELP). 

Retour Haut


Caractéristiques :
  • Catégories : Base - ODS
  • OS : tous
  • Version : 9.1 - 9.2
  • Vérifié en juin 2011
Comment identifier facilement le nom des éléments d'un style SAS (afin de pouvoir le modifier plus aisément) ?

Pour personnaliser ses rapports SAS, il est parfois nécessaire de modifier le style utilisé. Voici une technique pour identifier le nom des éléments, que ce soit le titre du rapport, l'en-tête du tableau, les données par exemple. Elle consiste à encadrer le code de son rapport, ici une proc print, par l'ods markup, en utilisant un tagset particulier : style_popup

ods markup file="c:\temp\exemple.html" tagset=tagsets.style_popup;
proc print data=sashelp.class;
run;
ods markup close;

Ensuite, il suffit d'ouvrir le fichier HTML dans un navigateur et de passer sa souris sur les éléments du tableau pour les activer en surbrillance rouge. En cliquant sur une zone, une nouvelle fenêtre s'ouvre, contenant le code de la procédure template correspondant.

Prenons un exemple. En passant la souris sur la colonne Name du tableau généré avec le code ci-dessus, l'information Header est affichée dans une info bulle.

Et en cliquant sur la cellule, la syntaxe est affichée :

L'idée est ensuite de créer un nouveau style, héritant du style précédemment utilisé (default ici puisqu'aucun style n'était précisé explicitement).
En voici une illustration :

Un style nouveau a été créé, où la couleur des entêtes de colonnes et de lignes a été modifiée (à la fois le texte et le remplissage des cellules), ce qui donne :

Référence d’un document en Anglais et plus complet : PROC TEMPLATE: The Basics 

 


Comment créer un fichier texte à partir d'une table SAS et y intégrer des titres et footnotes ?

L'astuce consiste à utiliser les options ODS et FOOTNOTE dans une instruction file print.

Un petit exemple :

/* Redirection de la sortie dans un fichier texte */
ods listing file='c:\temp\test.txt';

/* l'option variables= permet de choisir les noms des variables de votre table SAS */
data _null_;
set sashelp.class;
file print ods=(variables=(name age)) footnote;
put _ods_;
title 'mon titre';
footnote 'mon footnote';
run;

/* Fermeture */
ods listing close;

/* Pour que les résultats soient à nouveau affichés dans la fenêtre Output */
ods listing;
 

 

 
Comment changer le titre figurant dans la bannière d'un navigateur, d'un fichier HTML créé avec l'ODS ?

Avec l'option title = dans l'instruction ODS HTML.

Exemple :

ods html file='d:\temp\toto.html'(title="My Title");

 

  

Comment remplacer, dans une table des matières, "The Print Procedure" par un texte personnalisé ?

Avec l'instruction ODS proclabel.

Exemple :

ods html contents='d:\temp\contents.html'
body='d:\temp\body.html'
frame='d:\temp\frame.html';
ods proclabel "La procédure d'impression";
proc print data=sashelp.class;
run;

ods html close;


Autre impact de cette instruction ODS proclabel : ce texte est affiché dans la fenêtre Results. 

 


 

Comment faire pour insérer un logo lorsqu'on crée des fichiers HTML à partir de l'ODS HTML ?

La procédure TEMPLATE permet de définir des styles. Vous pourrez ensuite appliquer ces styles à vos documents HTML.
Voici un exemple simple. Il crée le style styles.test et hérite du style DEFAULT, c'est-à-dire que vous conservez toute la définition de ce style, vous ajoutez simplement une image en haut, à droite de votre fichier HTML.


proc template;
define style styles.test;
parent=styles.default;
style body from document /
prehtml="<table width=100%><td align=right><img src=""c:\images\img1.jpg""></td> </table>";
end;
run;

Ensuite, pour l'utiliser, vous ajoutez l'option style dans votre instruction ODS HTML :

ods html file='c:\temp\ods.html' style=styles.test;
/* Votre code SAS */
ods html close ;

 


 

Comment supprimer les sauts de page dans un document HTML ?

En modifiant le style DEFAULT, plus précisément le paramètre pagebreakhtml, en le positionnant à _UNDEF_.

Voici un exemple de code :

proc template;
define style saut;
parent = styles.default;
style body from body / pagebreakhtml = _UNDEF_;
end;
run;

ods html file='c:\temp\saut.html' style=saut;

proc print data=sashelp.class;run;
proc print data=sashelp.class;run;
proc print data=sashelp.class;run;

ods html close;

 
 

 

Comment supprimer l'encadré d'un titre dans une page HTML ? ( Il est visible quand la couleur de fond du titre est différente de celle de la page HTML).

Ce code montre comment changer la couleur de fond de la page (body) et du titre (systemtitle) :

proc template;
define style newtest;
parent=styles.default;
style body from body / background=blue;
style systemtitle from systemtitle / background=blue;
end;
run;


En appliquant ce style, le titre sera encadré en gris.

Pour supprimer cet encadrement, il faut ajouter cette instruction dans la procédure Template :

style SysTitleAndFooterContainer from Container /
cellpadding = 0
cellspacing = 0;


 

Dans Enterprise Guide, il existe une interface pour créer ses propres styles. Est-il possible d'appliquer ces styles dans SAS ?

Tout à fait, mais uniquement dans les fichiers HTML. Il faut savoir qu'Enterprise Guide crée des CSS (Cascade Style Sheet) qu'on peut réutiliser dans une instruction ODS HTML.

Voici la syntaxe pour les utiliser dans SAS :

ODS HTML file='c:\temp\test.html' stylesheet=(url="c:\program Files\SAS Institute\Enterprise Guide\Styles\montest.css");
proc print data=sashelp.class;
run;
ODS HTML CLOSE;


 

Dans les préférences (TOOLS -> OPTIONS -> PREFERENCES), au niveau de la restitution des résultats (onglet Results), dans la partie HTML, il est possible de spécifier qu'un fichier HTML soit créé par défaut pour chaque sortie. Le style qui sera appliqué au document HTML peut également être choisi.
Dans la liste déroulante, on ne voit que les styles proposés par SAS. Est-il possible d'ajouter à cette liste les styles définis par l'utilisateur ?


Pour ce faire, vous devez appliquer les étapes suivantes :

1- Vous définissez votre style avec la procédure Template et vous le stockez dans la sashelp
(avec l'option store, cf exemple ci-dessous) :
define style Styles.amoi / store = SASHELP.TMPLMST;

2- Vous tapez REGEDIT en ligne de commandes.
- Dans la fenêtre Registry Editor, vous cliquez sur ODS, PREFERENCES et STYLES
- Dans les menus, vous cliquez sur Edit -> New -> Key
- Dans la fenêtre Edit Key Name, vous tapez le nom de votre style (amoi dans cet exemple)

3- Vous verrez désormais le style amoi dans la liste déroulante où sont présents les styles SAS.

 


 

Comment mettre en place un formatage conditionnel dans un tableau ?

Avec la procédure REPORT, dans un bloc compute, comme le montre cet exemple :

data test;
input valeur annee;
/* seule la 2ème observation est marquée (flag=1), le but est d'afficher 49 en rouge et laisser les deux autres valeurs en noir */
if valeur < 50 then flag=1;
cards;
100 1960
49 1961
62 1962
;
run;
ods html body='c:\temp\body.html' style=statdoc;
proc report data=test nowd;
column annee flag valeur ;
define flag / display noprint;
define valeur / sum;
define annee / display;
compute valeur;
if flag=1 then
call define(_col_, "style", "style=[foreground=red]");
endcomp;
run;
ods html close;

 

Lors de la création d'une table des matières, avec l'ODS HTML, comment procéder pour que les références aux fichiers HTML soient exprimées de façon relative ? 

L'option url=none de l'instruction path permet de stocker les chemins relatifs.

Voici un exemple :

ods html path='c:\mon_web'(url=none)
     frame='frame.html'
     contents='contents.html'
     body='res.html' ;
proc print data=sashelp.class;
run;
ods html close;

L'option path= permet de donner le répertoire où devront être créés tous les fichiers (body, frame, contents, page, etc).

Pour le vérifier, il suffit d'éditer le fichier contents.html.
Sans l'option url=none, le chemin absolu est stocké :
< A HREF="c:\mon_web\res.html#IDX" TARGET="body">

Avec l'option url=none, c'est le chemin relatif qui est stocké :
< A HREF="res.html#IDX" TARGET="body"> 

 

 

Comment faire pour définir l'emplacement des graphiques au format gif générés en ODS HTML ?

Avec l'option GPATH= dans l'instruction ODS HTML.


 


Entre la version 8.2 du Système SAS et SAS 9, il se peut que les sorties HTML diffèrent en raison d'un code HTML généré différent. Comment faire pour retrouver le code HTML de la version 8.2 du Système SAS avec SAS9 ?

Pour obtenir du code HTML généré identique à la version précédente, 2 solutions sont possibles :

Dans vos programmes, remplacer les instructions ODS HTML et ODS HTML CLOSE par ODS HTML3 et ODS HTML3 CLOSE, comme le montre l'exemple suivant :

ods html3 file="temp.html";
      proc print data=sashelp.class;
      run;
ods html3 close;

Modifier la base des registres SAS :

• saisir REGEDIT dans la ligne de commande
• se positionner sur l'item ODS
• modifier la valeur de "Default HTML version" de HTML4 en HTML3

 
 

 

Comment inclure le code d'un fichier CSS dans un fichier HTML?

Par défaut, un fichier CSS n'est pas intégré dans le fichier HTML mais une balise pointe sur le fichier CSS. Vous devez donc avoir accès au fichier CSS pour que la feuille de style soit appliquée.
Pour une utilisation autonome du fichier HTML avec les personnalisations d'intégrées, vous pouvez inclure le code du CSS directement dans le fichier HTML.

La solution consiste à lire le fichier CSS via une étape data _null_.
Vous trouverez ci-dessous un exemple de code où le fichier CSS est lu entre les balises et .  L’option NOTOP est positionnée lors de l’instruction ODS HTML pour éviter que de telles balises soient recréées :

filename temp 'c:\temp\add_css.html' mod; 

   data _null_;
      infile 'c:\temp\mon_style.css' truncover end=last;
      input;
      file temp;
      if _n_= 1 then do;
         put '';
         put '';
         put '';
         put '';
      end;
   run

   ods html file=temp(notop) stylesheet;

   proc print data=sashelp.class;
   run

   proc print data=sashelp.class;
   run

   ods html close;
   filename temp clear;

Vous devez faire attention au fait que l'intégration du fichier CSS directement dans le code HTML va augmenter la taille du fichier HTML généré.

 
 

Caractéristiques :
  • Catégories : ODS - SAS/BASE®
  • OS : Unix, Windows
  • Version : SAS® 9.1.3 et au-delà
  • Vérifié en juin 2011

Comment positionner plusieurs graphiques sur une même page dans une sortie HTML ?

En utilisant par exemple l'ODS TAGSETS.HTMLPANEL :

%let panelcolumns = 2;
%let panelborder = 1;

ods listing close;

filename odsout 'c:\';

ods tagsets.htmlpanel body = "paneltest.html" path = odsout;

ods tagsets.htmlpanel event=panel(start);

goptions
  reset   = goptions
  device  = GIF
  xpixels = 400
  ypixels = 400
  ftext   = 'Arial'
  htext   = 1.2;

proc gchart data=sashelp.class;
   vbar name / sumvar=weight ascending;
   where sex="M";
   pattern1 c=cyan v=solid;
run;

proc gchart data=sashelp.class;
 vbar age;
run;

proc gchart data=sashelp.class;
   vbar name / sumvar=weight ascending;
   where sex="F";
   pattern1 c=magenta v=solid;
run;

proc gchart data=sashelp.class;
  where sex="F";
vbar age;
run;
quit;

ods tagsets.htmlpanel event=panel(finish);
ods _all_ close;
ods listing;

Aide en ligne :
http://support.sas.com/rnd/base/ods/odsmarkup/htmlpanel.html



Pourquoi les couleurs que j'ai utilisées dans SAS ne sont pas restituées correctement dans Word ?

Word ne supporte que 16 couleurs. Donc si le document RTF créé à partir de SAS contient une couleur autre, Word utilise une technique de " Dithering " qui consiste à faire un mélange de points de couleurs différentes pour élaborer des couleurs intermédiaires. 

 

Comment changer la taille des marges de documents RTF créés à partir de l'Output Delivery System (ODS)?

L'astuce consiste à modifier le style par défaut, et plus particulièrement la valeur des options leftmargin, rightmargin, topmargin et bottommargin.
Voyons sur l'exemple ci-dessous.

*-- Création d'un fichier RTF "classique" -- ;
*-- Le style rtf est utilisé par défaut, même sans l'option style=styles.rtf -- ;

ods rtf file='c:\temp\style_normal.rtf' style=styles.rtf;
proc print data=sashelp.table;
run;
ods rtf close;

*-- Création d'un nouveau style héritant du style RTF --;
*-- Modification des marges --;

Proc template;
define style Styles.RtfMarge;
parent = styles.rtf;
replace Body from Document /
leftmargin = 3cm
rightmargin = 3cm
topmargin = 1.2cm
bottommargin = 1.2cm;
end;
run;

*-- Création d'un fichier RTF utilisant ce nouveau style -- ;

ods rtf file='c:\temp\style_modifie.rtf' style=styles.rtfmarge;
proc print data=sashelp.table;
run;
ods rtf close;

 
 

 

Comment créer de vrais tableaux Word ?

A partir de la version 8.1 du Système SAS, nous avons ajouté aux formats déjà disponibles dans l'ODS la destination RTF.

Exemple de syntaxe :

ods rtf file='c:\temp\resultat.rtf';
proc univariate data=sashelp.class;
var age;
run;
ods rtf close;
 

 

Comment gérer les sauts de page dans les documents RTF créés à partir de l'ODS RTF ?


Cette fonctionnalité est disponible à partir de la version 8.2.
L'option STARTPAGE=, à positionner dans ODS RTF, supprime les sauts de page (insérés par défaut), entre les sorties de procédures distinctes, quand elle sera positionnée à OFF ou NO.

 
 

Par défaut, lorsqu'on utilise l'ODS RTF, les titres (instruction TITLE) et notes de bas de page (instruction FOOTNOTE) se retrouvent dans les zones en-têtes et pieds de page de Word.
Est-il possible de les avoir dans le corps du document Word ?

Cette fonctionnalité est disponible à partir de la version 8.2, à travers une nouvelle option : Bodytitle.
Elle doit être ajoutée dans votre instruction ODS RTF, sachant que le comportement décrit sera toujours celui par défaut.

 
 

Comment créer un document RTF en mode paysage ?

Avant votre instruction ODS RTF, ajoutez la ligne suivante :
option orientation=landscape; 

 
 

 

Comment souligner une partie d'un titre en sortie RTF ? 

Utiliser la syntaxe suivante :

ods escapechar="^";
ods rtf file="file.rtf"; 

proc print data=sashelp.class;
title "^S={protectspecialchars=off} Ceci est {\ul souligné} {et ceci ne l'est pas}";
run

ods rtf close;

 

 

En SAS®9, lorsque les sauts de page ont été supprimés (option startpage positionnée à no), comment spécifier le nombre de lignes blanches entre les résultats des procédures ? 

Avec l'option text de l'instruction ODS RTF.
Le code ci-dessous va ajouter 20 lignes entre les résultats des procédures print :

ods escapechar="^";
ods rtf file="c:\temp\test.rtf" startpage=no;

proc print data=sashelp.class(obs=2);

run;

ods rtf text="^20n"; 

proc print data=sashelp.class(obs=2);
run;
ods rtf close; 


 

Comment créer un document RTF contenant à la fois des pages orientées en paysage et en portrait ?
 
Le programme ci-dessous permet l'utilisation de l'orientation portrait et paysage dans un même document RTF. L'astuce consiste à utiliser l'option ORIENTATION entre chaque procédure et à répéter l'instruction ODS RTF :

options orientation = portrait;
ods rtf file = 'c:\temp\montest.rtf';
proc print data = sashelp.class;
run;
options orientation = landscape;
ods rtf;
proc print data = sashelp.class;
run;
ods rtf close;
 

 

Pourquoi des caractères insolites peuvent-ils apparaître dans la première colonne d'une sortie au format RTF ? 

Des caractères insolites peuvent apparaître dans la première colonne d'une sortie au format RTF, en raison de l'activation du bouton P inversé (¶).
Pour les faire disparaître, il faut :

  1. Soit désélectionner le bouton P inversé (¶, aussi appelé bouton 'Afficher/Masquer' sous Microsoft Word) qui permet l'affichage des marques de paragraphe et autres symboles de mise en forme masqués.
  2. Soit exécuter le programme avec l’option NOTOC_DATA au niveau de l’instruction ODS RTF :
        ods rtf file='c:\temp\sp2.rtf' NOTOC_DATA;
        proc print data=sashelp.class;
        run;
        ods rtf close;

            Cette option est disponible à partir du service pack 2 pour SAS 9.1.3.

La SAS Note suivante référence ce comportement :
http://support.sas.com/techsup/unotes/SN/010/010379.html

 

Caractéristiques :
  • Catégories : ODS
  • OS : Unix, Windows, z/Os
  • Version : A partir de SAS® 9.1.3
  • Vérifié en juillet 2010

Comment mettre un texte caché dans un titre ? 

Utiliser la syntaxe suivante :

ods escapechar="^";

ods rtf file="file.rtf";
 
proc print data=sashelp.class;
title "^S={protectspecialchars=off} Ce texte est {\v\f55\cf2\fs12 caché } {et celui là ne l'est pas}";
run;

ods rtf close;

Aide en ligne :  Adding RTF Control

 

 

Comment avoir des numéros de page personnalisés dans les sorties pdf ?


A partir de SAS 9.1, l'utilisation de l'ods escapechar associé aux fonctions {thispage} et {lastpage}, vous permet de personnaliser l'affichage des numéros de page dans vos sorties PDF.

Exemple de code :

ods listing close;
ods escapechar='^';
ods pdf file='c:\test.pdf';
title 'Page ^{thispage} sur ^{lastpage}';
proc print data=sashelp.class;
run;
proc print data=sashelp.air;
run;
ods listing;
ods pdf close;

Cette nouveauté de SAS 9.1 est également valable pour vos sorties RTF. Retour Haut