Veröffentlicht am :

Erstellung von PDF-Berichten über ODS und Makros

Dieser Code ist auch verfügbar auf: English Español Français
Das Skript demonstriert die Verwendung des ODS PDF-Ziels zur Erstellung paginierter Berichte. Es beginnt mit einem einzelnen Bericht über gefilterte Schuhe. Anschließend wird ein Makro '%loopTroughMake' definiert, das einen Autobericht für eine bestimmte Marke generiert, wobei jeder Bericht in einer separaten PDF-Datei gespeichert wird. Das Makro wird mehrmals für verschiedene Automarken aufgerufen, was die dynamische Generierung mehrerer PDF-Ausgaben veranschaulicht.
Datenanalyse

Type : SASHELP


Die Daten stammen ausschließlich aus den SASHELP-Bibliotheken, insbesondere aus den Datensätzen SASHELP.SHOES und SASHELP.CARS, die in SAS integrierte Beispieldatensätze sind.

1 Codeblock
PROC REPORT
Erklärung :
Dieser Block initialisiert das ODS PDF-Ziel, um die Datei 'input_pdf_merge_1.pdf' zu erstellen. Er generiert einen einfachen Bericht mit 'PROC REPORT' aus dem Datensatz SASHELP.SHOES, filtert die Regionen 'Canada' und 'Pacific' und zeigt die Region, das Produkt und die Verkäufe an.
Kopiert!
1ODS PDF FILE= "&out/input_pdf_merge_1.pdf" NOTOC;
2TITLE "Table 1: By Group Report about shoes";
3PROC REPORT DATA=sashelp.shoes(WHERE=(region IN ('Canada', 'Pacific'))) CONTENTS="";
4 BY region;
5 COLUMN region product sales;
6 DEFINE region / ORDER NOPRINT;
7RUN;
8ODS PDF CLOSE;
2 Codeblock
Macro
Erklärung :
Definiert das Makro '%loopTroughMake', das zwei Parameter akzeptiert: 'make' (Automarke) und 'i' (Dateinummer/Titel). Bei jedem Aufruf öffnet es eine neue PDF-Datei, erstellt einen Bericht mit 'PROC REPORT' aus SASHELP.CARS, gefiltert nach der angegebenen Marke, und schließt dann die PDF-Datei. Dies ermöglicht eine wiederholte Generierung von Berichten mit verschiedenen Daten.
Kopiert!
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";
4 PROC REPORT DATA=sashelp.cars(WHERE=(make = "&make")) nowd headline spacing=2;
5 COLUMN make model type msrp;
6 RUN;
7 TITLE;
8 ODS PDF CLOSE;
9%MEND;
3 Codeblock
Appel de macro
Erklärung :
Diese Zeilen rufen das Makro '%loopTroughMake' dreimal mit verschiedenen Automarken (Acura, Audi, BMW) und entsprechenden Indexnummern auf. Jeder Aufruf generiert eine separate PDF-Datei mit einem Bericht über die Fahrzeuge der angegebenen Marke.
Kopiert!
1%loopTroughMake(Acura,2);
2%loopTroughMake(Audi,3);
3%loopTroughMake(BMW,4);
4 
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Project : SMILE - SAS Macros, Intuitive Library Extension Author : Katja Glass Creation : 2021-02-18 License : MIT