Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > ODS et reporting
ODS et reporting Forum d'entraide sur les fonctionnalités de reporting de SAS : gérer les sorties et graphiques de SAS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/01/2011, 18h13   #1
Invité régulier
 
Inscription : juillet 2010
Messages : 28
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 28
Points : 5
Points : 5
Par défaut [ODS RTF] Destination (FILE) ODS avec sas macro

Bonjour,

J'ai un problème de destination ods en utilisant SAS macro. je veux tracer un boxplot, que je vais ensuite envoyer par ods dans un fichier rtf. le Problème c'est SAS me dit que la destination n'a pas été crée, selon mes paramètres d'entrée. Voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
%macro trace_boxplot(TABLE,titre,titre1_graph,titre2_graph,lab_y,var,classe);
%let chemin="G:\Espace Equipe STAT\Ibrwa\universite";
ods rtf path=&&chemin. body=&titre..rtf style=styles.minimal;
title;
OPTION nodate nonumber;
goption reset=ALL;
goption border;
goption devmap=winansi keymap=winansi;
goptions xmax=5 IN ymax=4.5 IN;
goption device=jpeg;
axis1 label=none value=(h=10pt j=c color=black);
axis2 label=(c=black j=c f='arial/bold' height=10pt &lab_y.) value=(h=10pt j=c color=black);
title1;
title2 j=c h=12pt color=black  font='arial/bold'  &titre1_graph.
        j=c h=12pt color=black  font='arial/bold' &titre2_graph.;
proc boxplot DATA=&TABLE;
plot &var*&classe/vaxis=axis2 haxis=axis1;
run;
quit;
ods rtf close;
 
 
%mend trace_boxplot;
le message d'erreur est le suivant :

Citation:
ERREUR: La référence au membre de catalogue 'BOX_PUBLI.RTF' nécessite qu'un catalogue soit aussi
spécifié avec l'option PATH= dans l'instruction ODS.
ERREUR: Une erreur ODS fatale est intervenue. Impossible de continuer à utiliser cette destination de
sortie.
Merci de votre aide.
ibrahima13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 20h00   #2
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
Tu as un &&chemin. au lieu d'un &chemin. non ?
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 22h48   #3
Invité régulier
 
Inscription : juillet 2010
Messages : 28
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 28
Points : 5
Points : 5
Par défaut Pb destination ODS avec SAS macro

Merci de ta réponse,

J'avais essayé auparavant avec &chemin., mais ça ne marche pas. Je vais continuer à chercher une solution....

Merci
ibrahima13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 08h12   #4
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
Bonjour.
Je pense que c'est peut-être à cause de l'absence de guillemets autour de la valeur proposée dans l'option FILE. Tu écris
Code :
ods rtf path=&&chemin. body=&titre..rtf style=styles.minimal;
Pour &Chemin (pas besoin de &&, un seul & suffit) tu mets les guillemets directement dans la valeur de la macro-variable, donc c'est OK. Pour FILE, en revanche, tu dois utiliser à la fois une macro-variable &TITRE. et le suffixe en dur .RTF. Il te faut donc impérativement des guillemets autour du tout :
Code :
ods rtf path=&chemin. body="&titre..rtf" style=styles.minimal;
Comme on ne voit pas l'appel à ton macro-programme, je n'ai pas d'idée du genre de valeurs que peut prendre &TITRE. Mais il faudra bien faire attention à éviter dans &TITRE les caractères interdits dans les noms de fichiers (ponctuation en particulier).
Bon courage.
Olivier
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/01/2011, 10h35   #5
Invité régulier
 
Inscription : juillet 2010
Messages : 28
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 28
Points : 5
Points : 5
Par défaut pb de destination

Bonjour,

ça marche!! Il faut effectivement mettre des guillements dans path=. La macro je l'ai appelé par le code suivant :
Code :
1
2
3
4
5
6
7
%trace_boxplot(projet.brevet_publi2,
box_publi,
"Boxplot de la variable nombre de publications",
"En fonction des classes disciplinaires",
"nbr de publication",
nb_publi,
classe);
.

Mais ce qui est intéressant dans tout ça c'est que pour l'instruction file il faut mettre des guillements et dans l'appel proscrire les caractères speciaux alors que pour les titres et labels on ne mets pas de guillemets dans la macro, mais par contre dans l'appel il faut mettre des guillemets.

Merci
ibrahima13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 10h49   #6
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
A titre personnel, je ne mets quasiment jamais de guillemets dans les valeurs des macro-variables... surtout par peur de les oublier un jour. Je ne les mets que là où je les utilise.
Ton code pourrait tout aussi bien fonctionner avec :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
%macro trace_boxplot(TABLE,titre,titre1_graph,titre2_graph,lab_y,var,classe);
%let chemin=G:\Espace Equipe STAT\Ibrwa\universite;
ods rtf path="&chemin." body="&titre..rtf" style=styles.minimal;
title;
OPTION nodate nonumber;
goption reset=ALL;
goption border;
goption devmap=winansi keymap=winansi;
goptions xmax=5 IN ymax=4.5 IN;
goption device=jpeg;
axis1 label=none value=(h=10pt j=c color=black);
axis2 label=(c=black j=c f='arial/bold' height=10pt &lab_y.) value=(h=10pt j=c color=black);
title1;
title2 j=c h=12pt color=black  font='arial/bold'  "&titre1_graph."
        j=c h=12pt color=black  font='arial/bold' "&titre2_graph." ;
proc boxplot DATA=&TABLE;
plot &var*&classe/vaxis=axis2 haxis=axis1;
run;
quit;
ods rtf close;
 
%mend trace_boxplot;
Appelé ensuite ainsi :
Code :
1
2
3
4
5
6
7
%trace_boxplot(projet.brevet_publi2,
box_publi,
Boxplot de la variable nombre de publications,
En fonction des classes disciplinaires,
nbr de publication,
nb_publi,
classe);
Ce qui a (à mes yeux) le mérite d'être plus cohérent : il n'y a pas certains arguments du macro-programme avec guillemets et d'autres sans.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 11h44   #7
Invité régulier
 
Inscription : juillet 2010
Messages : 28
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 28
Points : 5
Points : 5
En effet ça marche en mettant seulement les guillemets dans la macro là il faut, et tu as raison en plus c'est plus cohérent.
ibrahima13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h34.


 
 
 
 
Partenaires

Hébergement Web