FAQ SASConsultez toutes les FAQ

Nombre d'auteurs : 13, nombre de questions : 308, dernière mise à jour : 5 avril 2016  Ajouter une question

 

Cette F.A.Q., qui traite de tout type de questions portant sur l'outil SAS, a été réalisée à partir des contributions des membres des forums sas de developpez.com en vue de répondre à des questions fréquemment posées par les utilisateurs et grâce à SAS France qui a bien voulu nous donner accès à ses sources.

Si vous désirez contribuer à l'amélioration de cette F.A.Q., vous pouvez participer au billet de participation à l'enrichissement de la faq SAS , ou contacter le responsable SAS , ou contacter un des responsables de l'équipe Business Intelligence .

Nous espérons que cette F.A.Q. saura répondre à un maximum de vos questions. Nous vous souhaitons une bonne lecture.

L'équipe SAS de developpez.com remercie les contributeurs actuels : ash_rmy , bahraoui , datametric , fafabzh6 , Fleur-Anne.Blain , green_fr , oncle_pete , raf64flo , rastoix , s_a_m et steelspirit .

L'équipe SAS de developpez.com remercie aussi claudeLeloup et jacques_jean pour leurs relectures attentives de la F.A.Q. dans le but de chasser les fautes d'orthographes.


SommaireReporting et ODSHTML (11)
précédent sommaire suivant
 

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

rs=noneCette 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 :

Code sas : Sélectionner tout
1
2
3
4
5
6
7
8
9
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;

Mis à jour le 14 avril 2014 sas

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

Exemple :

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

Mis à jour le 14 avril 2014

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.

Code sas : Sélectionner tout
1
2
3
4
5
6
7
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.

Code sas : Sélectionner tout
1
2
3
ods html file='c:\temp\ods.html' style=styles.test; 
/* Votre code SAS */ 
ods html close ;

Mis à jour le 14 avril 2014 fafabzh6 sas

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

Voici un exemple de code :

Code sas : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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;

Mis à jour le 14 avril 2014 fafabzh6 sas

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

Code sas : Sélectionner tout
1
2
3
4
5
6
7
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 :

Code sas : Sélectionner tout
1
2
3
style SysTitleAndFooterContainer from Container / 
cellpadding = 0 
cellspacing = 0;

Mis à jour le 14 avril 2014 sas

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.

Mis à jour le 14 avril 2014 sas

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

Ci-après un exemple.

Code sas : Sélectionner tout
1
2
3
4
5
6
7
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é.

Code sas : Sélectionner tout
< A HREF="c:\mon_web\res.html#IDX" TARGET="body">

Avec l'option url=none, c'est le chemin relatif qui est stocké.

Code sas : Sélectionner tout
< A HREF="res.html#IDX" TARGET="body">

Mis à jour le 14 avril 2014 fafabzh6 sas

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

Mis à jour le 14 avril 2014 fafabzh6 sas

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 :

Code sas : Sélectionner tout
1
2
3
4
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 HTML

Mis à jour le 14 avril 2014 sas

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 :

Code sas : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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é.

Mis à jour le 14 avril 2014 fafabzh6 sas

En utilisant par exemple l'ODS TAGSETS.HTMLPANEL :

Code sas : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
%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

Mis à jour le 14 avril 2014 fafabzh6 sas

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2020 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.