SAS9

Armonizar el estilo de las filas de totales con las cabeceras en PROC REPORT

Simon 3 views

Al crear informes con PROC REPORT, añadir una línea de resumen (total general) es una operación común, generalmente realizada mediante la instrucción RBREAK.

Por defecto, esta línea de resumen adopta un estilo estándar definido por la plantilla ODS activa (a menudo un fondo gris claro o blanco). Sin embargo, por razones estéticas o de legibilidad, es frecuente querer que esta línea de total se parezca exactamente a la línea de encabezado de la tabla (mismo color de fondo, misma fuente en negrita, mismo color de texto).

Armonizar el estilo de las filas de totales con las cabeceras en PROC REPORT -

El enfoque laborioso: La codificación "en duro"

La primera reacción natural es abrir el código fuente de la plantilla ODS, localizar los códigos de color hexadecimales de la cabecera (por ejemplo, cx112277 para el texto y cxEDF2F9 para el fondo en el estilo HTMLBlue), y copiarlos manually en la instrucción.

SAS©
1
 
1/* À éviter : Code rigide et difficile à maintenir */
2rbreak after / summarize style=[fontweight=bold color=cx112277 backgroundcolor=cxEDF2F9];
3 
Aunque funcional, este método plantea un problema: si cambia de estilo ODS (por ejemplo, de HTMLBlue a Plateau), su línea de total no se adaptará y mantendrá los colores antiguos, creando un diseño incoherente.

La solución elegante: La herencia de estilo

SAS© permite hacer referencia directamente a elementos de estilo existentes por su nombre, en lugar de redefinir sus atributos uno por uno. El elemento de estilo que controla la apariencia de los títulos de las columnas se llama simplemente Header.

Existen dos maneras sencillas de aplicar este estilo a su línea de resumen.

Método 1: Aplicación local en la instrucción RBREAK

Este es el método más preciso si desea apuntar únicamente al total general generado por RBREAK.

1PROC REPORT DATA=sashelp.class;
2 columns sex weight;
3 define sex / group;
4 define weight / analysis mean f=5.2;
5
6 /* On applique directement le style 'Header' à la ligne de résumé */
7 rbreak after / summarize style=Header;
8RUN;

Método 2: Aplicación global a través de la opción STYLE

También puede definir este comportamiento a nivel de la instrucción PROC REPORT misma. Esto indica al procedimiento que use el estilo "Header" para cualquier elemento de tipo "summary".

1PROC REPORT DATA=sashelp.class style(summary)=Header;
2 columns sex weight;
3 define sex / group;
4 define weight / analysis mean f=5.2;
5
6 rbreak after / summarize;
7RUN;

¿Por qué usar este método?

La ventaja principal es la portabilidad. Al usar style=Header, le está diciendo a SAS©: "No importa qué plantilla ODS esté usando (PDF, HTML, RTF), haz que mi total se parezca a mis títulos". Si cambia el estilo general de su informe, la línea de total se adaptará automáticamente sin que tenga que modificar una sola línea de código.