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!
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 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!
%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";
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.
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
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.