Publicado el :
Informes SASHELP

Generación de informes PDF a través de ODS y macros

Este código también está disponible en: Deutsch English Français
El script demuestra el uso del destino ODS PDF para crear informes paginados. Comienza con un informe único sobre zapatos filtrados. Luego, define una macro '%loopTroughMake' que genera un informe de automóviles para una marca especificada, y cada informe se guarda en un archivo PDF distinto. La macro se llama varias veces para diferentes marcas de automóviles, lo que ilustra la generación dinámica de múltiples salidas PDF.
Análisis de datos

Type : SASHELP


Los datos provienen exclusivamente de las bibliotecas SASHELP, en particular de los conjuntos de datos SASHELP.SHOES y SASHELP.CARS, que son conjuntos de datos de ejemplo integrados en SAS.

1 Bloque de código
PROC REPORT
Explicación :
Este bloque inicializa el destino ODS PDF para crear el archivo 'input_pdf_merge_1.pdf'. Genera un informe simple usando 'PROC REPORT' sobre el conjunto de datos SASHELP.SHOES, filtrando las regiones 'Canadá' y 'Pacífico', y mostrando la región, el producto y las ventas.
¡Copiado!
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 Bloque de código
Macro
Explicación :
Define la macro '%loopTroughMake' que toma dos parámetros: 'make' (marca de coche) e 'i' (número de archivo/título). Para cada llamada, abre un nuevo archivo PDF, crea un informe con 'PROC REPORT' a partir de SASHELP.CARS filtrado por la marca especificada, y luego cierra el archivo PDF. Esto permite una generación repetida de informes con diferentes datos.
¡Copiado!
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 Bloque de código
Appel de macro
Explicación :
Estas líneas llaman a la macro '%loopTroughMake' tres veces con diferentes marcas de coches (Acura, Audi, BMW) y números de índice correspondientes. Cada llamada generará un archivo PDF distinto que contiene un informe sobre los coches de la marca especificada.
¡Copiado!
1%loopTroughMake(Acura,2);
2%loopTroughMake(Audi,3);
3%loopTroughMake(BMW,4);
4 
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : Project : SMILE - SAS Macros, Intuitive Library Extension Author : Katja Glass Creation : 2021-02-18 License : MIT