Le script démontre l'utilisation de la destination ODS PDF pour créer des rapports paginés. Il commence par un rapport unique sur les chaussures filtrées. Ensuite, il définit une macro '%loopTroughMake' qui génère un rapport de voitures pour une marque spécifiée, chaque rapport étant enregistré dans un fichier PDF distinct. La macro est appelée plusieurs fois pour différentes marques de voitures, illustrant la génération dynamique de multiples sorties PDF.
Analyse des données
Type : SASHELP
Les données proviennent exclusivement des bibliothèques SASHELP, notamment les jeux de données SASHELP.SHOES et SASHELP.CARS, qui sont des jeux de données d'exemple intégrés à SAS.
1 Bloc de code
PROC REPORT
Explication : Ce bloc initialise la destination ODS PDF pour créer le fichier 'input_pdf_merge_1.pdf'. Il génère un rapport simple utilisant 'PROC REPORT' sur le jeu de données SASHELP.SHOES, filtrant les régions 'Canada' et 'Pacific', et affichant la région, le produit et les ventes.
Copié !
ODS PDF FILE= "&out/input_pdf_merge_1.pdf" NOTOC;
TITLE "Table 1: By Group Report about shoes";
PROC REPORT DATA=sashelp.shoes(WHERE=(region IN ('Canada', 'Pacific'))) CONTENTS="";
BY region;
COLUMN region product sales;
DEFINE region / ORDER NOPRINT;
RUN;
ODS PDF CLOSE;
1
ODS PDF FILE= "&out/input_pdf_merge_1.pdf" NOTOC;
2
TITLE "Table 1: By Group Report about shoes";
3
PROC REPORTDATA=sashelp.shoes(WHERE=(region IN ('Canada', 'Pacific'))) CONTENTS="";
4
BY region;
5
COLUMN region product sales;
6
DEFINE region / ORDER NOPRINT;
7
RUN;
8
ODS PDF CLOSE;
2 Bloc de code
Macro
Explication : Définit la macro '%loopTroughMake' qui prend deux paramètres : 'make' (marque de voiture) et 'i' (numéro de fichier/titre). Pour chaque appel, elle ouvre un nouveau fichier PDF, crée un rapport avec 'PROC REPORT' à partir de SASHELP.CARS filtré par la marque spécifiée, puis ferme le fichier PDF. Cela permet une génération répétée de rapports avec des données différentes.
Copié !
%MACRO loopTroughMake(make,i);
ODS PDF FILE= "&out/input_pdf_merge_&i..pdf" NOTOC;
TITLE "Table &i: Multiple outputs - Cars for make = &make";
PROC REPORT DATA=sashelp.cars(WHERE=(make = "&make")) nowd headline spacing=2;
COLUMN make model type msrp;
RUN;
TITLE;
ODS PDF CLOSE;
%MEND;
1
%MACRO loopTroughMake(make,i);
2
ODS PDF FILE= "&out/input_pdf_merge_&i..pdf" NOTOC;
3
TITLE "Table &i: Multiple outputs - Cars for make = &make";
Explication : Ces lignes appellent la macro '%loopTroughMake' trois fois avec différentes marques de voitures (Acura, Audi, BMW) et des numéros d'index correspondants. Chaque appel générera un fichier PDF distinct contenant un rapport sur les voitures de la marque spécifiée.
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.
Informations de Copyright : Project : SMILE - SAS Macros, Intuitive Library Extension
Author : Katja Glass
Creation : 2021-02-18
License : MIT
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.