SAS9

Anpassen des Stils von Summenzeilen an Kopfzeilen in PROC REPORT

Simon 8 Aufrufe

Beim Erstellen von Berichten mit PROC REPORT ist das Hinzufügen einer Zusammenfassungszeile (Gesamtsumme) eine häufige Operation, die normalerweise mit der Anweisung RBREAK durchgeführt wird.

Standardmäßig übernimmt diese Zusammenfassungszeile einen Standardstil, der durch die aktive ODS-Vorlage definiert ist (oft ein hellgrauer oder weißer Hintergrund). Aus ästhetischen Gründen oder zur besseren Lesbarkeit ist es jedoch oft erwünscht, dass diese Summenzeile genau wie die Kopfzeile der Tabelle aussieht (gleiche Hintergrundfarbe, gleiche fette Schrift, gleiche Textfarbe).

Anpassen des Stils von Summenzeilen an Kopfzeilen in PROC REPORT -

Der mühsame Ansatz: Hardcodierung

Die erste natürliche Reaktion ist, den Quellcode der ODS-Vorlage zu öffnen, die hexadezimalen Farbcodes der Kopfzeile zu finden (zum Beispiel cx112277 für den Text und cxEDF2F9 für den Hintergrund im Stil HTMLBlue), und sie manuell in die Anweisung zu kopieren.

SAS©
1
 
1/* À éviter : Code rigide et difficile à maintenir */
2rbreak after / summarize style=[fontweight=bold color=cx112277 backgroundcolor=cxEDF2F9];
3 
Obwohl diese Methode funktioniert, ist sie problematisch: Wenn Sie den ODS-Stil ändern (z. B. von HTMLBlue zu Plateau), passt sich Ihre Summenzeile nicht an und behält die alten Farben bei, was zu einem inkonsistenten Design führt.

Die elegante Lösung: Stilvererbung

SAS© ermöglicht es, direkt auf bestehende Stilelemente über ihren Namen zu verweisen, anstatt ihre Attribute einzeln neu zu definieren. Das Stilelement, das das Aussehen der Spaltentitel steuert, heißt einfach Header.

Es gibt zwei einfache Möglichkeiten, diesen Stil auf Ihre Zusammenfassungszeile anzuwenden.

Methode 1: Lokale Anwendung auf die RBREAK-Anweisung

Dies ist die präziseste Methode, wenn Sie nur die von RBREAK erzeugte Gesamtsumme gezielt ansprechen möchten.

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;

Methode 2: Globale Anwendung über die Option STYLE

Sie können dieses Verhalten auch auf der Ebene der PROC REPORT-Anweisung selbst definieren. Dies weist die Prozedur an, den Stil "Header" für jedes Element vom Typ "summary" zu verwenden.

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;

Warum diese Methode verwenden?

Der Hauptvorteil ist die Portabilität. Durch die Verwendung von style=Header sagen Sie SAS©: "Egal welche ODS-Vorlage ich verwende (PDF, HTML, RTF), sorge dafür, dass meine Summe wie meine Titel aussieht". Wenn Sie den globalen Stil Ihres Berichts ändern, passt sich die Summenzeile automatisch an, ohne dass Sie eine einzige Codezeile ändern müssen.