Publié le :
Reporting SASHELP

Création d'un rapport PDF avec plusieurs graphiques

Le processus commence par définir un répertoire de sortie. Ensuite, il utilise une série d'appels à PROC SGPLOT pour créer des nuages de points à partir de la table SASHELP.CLASS. Chaque graphique est automatiquement exporté en tant que fichier PNG grâce à l'instruction 'ODS GRAPHICS'. Dans un deuxième temps, PROC GSLIDE est utilisé pour charger ces images PNG dans le catalogue graphique WORK.GSEG. Finalement, PROC GREPLAY, combiné avec une destination ODS PDF, réorganise ces quatre graphiques dans un modèle 2x2 (template L2R2) pour produire un document PDF final consolidé.
Analyse des données

Type : SASHELP


La source de données principale est la table 'sashelp.class'. Le script génère également des fichiers graphiques (PNG) intermédiaires qu'il utilise ensuite comme source pour créer le PDF final.

1 Bloc de code
ODS
Explication :
Définit la variable macro 'outdir' pour le répertoire de sortie, configure les options SAS globales et ouvre la destination ODS HTML pour exporter les résultats et les graphiques.
Copié !
1%let outdir=H:\temp;
2 
3options orientation=landscape nodate nonumber;
4 
5goptions reset=all;
6 
7ods results off;
8ods listing close;
9ods html path="&outdir" (url=none) file='sastest.html'
10 image_dpi=300;
2 Bloc de code
PROC SGPLOT
Explication :
Ce bloc exécute la procédure SGPLOT à quatre reprises. Pour chaque exécution, ODS Graphics est configuré pour générer un fichier PNG distinct ('sgplot1.png', 'sgplot2.png', etc.) représentant un nuage de points basé sur les données de 'sashelp.class'. À la fin, la destination ODS HTML est fermée.
Copié !
1ods graphics on / reset=index imagename='sgplot1'
2 width=4in height=3in;
3 
4title1 'First SGPLOT Output';
5PROC SGPLOT DATA=sashelp.class;
6 scatter x=height y=weight / group=sex;
7 discretelegend;
8RUN;
9 
10ods graphics on / imagename='sgplot2'
11 width=4in height=3in;
12 
13title1 'Second SGPLOT Output';
14PROC SGPLOT DATA=sashelp.class;
15 scatter x=height y=weight / group=sex;
16 discretelegend;
17RUN;
18 
19ods graphics on / imagename='sgplot3'
20 width=4in height=3in;
21 
22title1 'Third SGPLOT Output';
23PROC SGPLOT DATA=sashelp.class;
24 scatter x=height y=weight / group=sex;
25 discretelegend;
26RUN;
27 
28ods graphics on / imagename='sgplot4'
29 width=4in height=3in;
30 
31title1 'Fourth SGPLOT Output';
32PROC SGPLOT DATA=sashelp.class;
33 scatter x=height y=weight / group=sex;
34 discretelegend;
35RUN;
36 
37ods html close;
38ods listing;
39ods results on;
3 Bloc de code
PROC GSLIDE
Explication :
Utilise la procédure GSLIDE de manière répétitive pour charger les quatre fichiers PNG précédemment créés. L'option 'iback' spécifie l'image à utiliser. Cette action peuple le catalogue graphique 'WORK.GSEG' qui sera utilisé par PROC GREPLAY.
Copié !
1goptions reset=all device=png300 nodisplay
2 xmax=4in ymax=3in;
3 
4goptions iback="&outdir.\sgplot1.png" imagestyle=fit;
5 
6PROC GSLIDE;
7RUN;
8QUIT;
9 
10goptions iback="&outdir.\sgplot2.png" imagestyle=fit;
11 
12PROC GSLIDE;
13RUN;
14QUIT;
15 
16goptions iback="&outdir.\sgplot3.png" imagestyle=fit;
17 
18PROC GSLIDE;
19RUN;
20QUIT;
21 
22goptions iback="&outdir.\sgplot4.png" imagestyle=fit;
23 
24PROC GSLIDE;
25RUN;
26QUIT;
4 Bloc de code
PROC GREPLAY
Explication :
Ce bloc final utilise PROC GREPLAY pour combiner les graphiques. Il ouvre d'abord la destination ODS PDF. Ensuite, GREPLAY utilise le template 'L2R2' (2 lignes, 2 colonnes) pour réarranger les quatre graphiques du catalogue 'work.gseg' sur une seule page. Le résultat est enregistré dans le fichier 'greplay_sgplot.pdf'.
Copié !
1goptions reset=all device=sasprtc;
2 
3ods listing close;
4ods pdf file="&outdir.\greplay_sgplot.pdf" notoc dpi=300;
5 
6PROC GREPLAY igout=work.gseg nofs tc=sashelp.templt
7 template=L2R2;
8 treplay 1:1 2:2 3:3 4:4;
9RUN;
10QUIT;
11 
12ods pdf close;
13ods listing;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Banner
Le Conseil de l'Expert
Expert
Simon
Expert SAS et fondateur.
« Produire des rapports consolidés sans intervention manuelle est le graal du reporting SAS. Ce processus démontre comment automatiser la chaîne complète : de la génération des données graphiques à la création d'un livrable PDF unique. »