Ausgabe von PROC TABULATE bei LIS und RTF und PDF unterschiedlich

Hallo miteinander,

wir verwenden für die statistische Auswertung und Darstellung sehr häufig die Prozedur Tabulate.

Die Spaltenbreite stellen wir über /RTS und Format (z.B. F=8.0) für jede Spalte explizit ein.

Nun mussten wir feststellen, dass die Ausgabe über ODS RFT diese Spaltenbreitensteuerung ignoriert und die Breite nach Gutdünken anpasst.
Bei Erstellen einer PDF-Datei werden die Zeichen kleiner, wodurch die Tabellen kleiner werden, aber dann auch schlechter lesbar sind.

Wie kann man steuern, dass die gewünschte Spaltenbreite bei RTF- und PDF-Ausgabe identisch mit der Bildschirmausgabe bleibt.

W. Übelhör

Die schnelle Antwort ...

Hallo Herr Übelhör!

Die schnelle Antwort ist die Option "cellwidth":

data test;                                                                                                                              
  cat1='A'; cat2='AA'; wert=1; output;                                                                                                  
  cat1='A'; cat2='AB'; wert=2; output;                                                                                                  
proc tabulate;                                                                                                                          
  class cat: / s={cellwidth=111};                                                                                                       
  var wert / s={cellwidth=222};                                                                                                         
  table cat1*cat2, wert;                                                                                                                
run;

Hier werden allerdings - genau wie bei der RTSPACE-Option - alle Spalten im Zeilenkopf gleich breit. Will man unterschiedlich breite Zeilenköpfe, muß man möglicherweise auf PROC REPORT ausweichen.

Ein richtig gutes Paper zu dem Thema gibt's unter: http://www.nesug.org/html/Proceedings/nesug04/pr/pr03.pdf.

Gruß
S. Frenzel

Vielen Dank für die schnelle Antwort

Hallo Herr Frenzel,

nach stundenlangem Probieren habe ich folgendes heraus gefunden:

Ihr Tipp mit s = cellwidth war recht gut. Nicht optimal bei mir ist dieser Schalter nach CLASS und VAR. Dadurch werden die Tabellen teilweise nur noch einspaltig. Ein recht gutes Ergebnis erziele ich, wenn ich s = ... direkt nach PROC TABULATE (ohne Schrägstrich) einbaue. Dann ist die 1. Spalte (Zeilenüberschrift) breiter und alle anderen Spalten mit den Statistiken sind gleich breit. Das Aussehen der Zahlen in jeder Spalte kann man mit unterschiedlichen Formatangaben steuern.

Soweit so gut, aber: Die Worttrennung im Spaltenkopf kann SAS natürlich überhaupt nicht (bei PDF und RTF). Das kann jedoch Word machen, wenn man die RTF-Datei editiert. Am Bildschirm schaut die Tabelle dann auch schön aus. Leider wird jedoch dann beim Ausdruck erneut und anders getrennt (Wordproblem?) und dann passt bei mir in einer Spalte das letzte Zeichen eines Wortes nicht mehr in die Zeile und der eine Buchstabe wird einfach mitsamt dem grauen Hintergrund in die nächste weiße Zelle gedruckt. Also auch nicht optimal. Das passiert auch bei der Umwandlung von RTF (DOC) in PDF über den Acrobat-Writer. (Übrigens wird bei einer neuen Abspeicherung das neue RTF-Dokument zehnmal größer als das von SAS erstellte.)

Bei der direkten Ausgabe von SAS in PDF ist die Silbentrennung inaktiv (schlecht) und bei einer Grafik der linken oberen Zelle sind die 2 Überschriftszeilen der Spalten gleich hoch, was auch Unsinn ist, da die 1. Zeile über 4 Spalten geht. Also PDF-Datei aus SAS ist auch

Das empfohlene Dokument ist hübsch geschrieben und hat mir wertvolle Tipps gegeben, löst meine Probleme jedoch auch nicht vollständig. Zumindest weiß ich jetzt, wie man in die linke obere Ecke eine JPG-Grafik hinein zaubert.

Vorläufiges Zwischenergebnis:
Meine Tabellen sind schöner geworden, aber noch nicht perfekt. Man kann noch viel Zeit verbraten...

Bringt da wohl ein Umstieg auf PROC REPORT den großen Fortschritt? Mit dieser Prozedur habe ich (noch) keine Erfahrung.

Viele Grüße

W. Übelhör

Danke ...

Hallo Herr Frenzel,

besten Dank für Ihren Link zum Paper - es gibt tolle Tips zu Proc Tabulate bzw. ODS und ist außerdem didaktisch sehr ansprechend !

Marcus Pilz
Projektleiter,
Produktverantwortung 'HV-Auswertungssysteme'

Commerzbank AG

ODS RTF, Word

hallo Herr Übelhör,

SAS kann zwar die horizontale Gestaltung von RTF Tabellen vornehmen, jedoch ist MS Word für die vertikale zuständig. So hab ich es jedenfalls verstanden. Ich hatte zb. gerade Kreuztabellen über ODS als RTF gespeichert. Dabei wanderten title und footnotes von SAS in die WordDoc-Bereiche Kopf- und Fusszeile. Das wollt ich jedoch nicht so trennen von der Tabelle an sich. Und obwohl ich dann mit der option BODYTITLE es hinbekommen habe, dass Titel und Fusstext zusammengehalten wurden im RTF File, war ich nicht zufrieden: Die Titel- und Fusszeilentexte wurden zentriert und beides in fett gedruckt.

Es wird dann echt kompliziert mit SAS. Man benötigt jetzt noch proc template --> define style usw. um das zu beheben, sprich Font-Grösse etc zu steuern. Mühsam, wie ich finde. Deshalb glaube ich, dass man lieber gleich diese Arbeit dem Word VBA überlassen sollte. Mit ein paar VBA-Zeilen sind die Formatierungen schnell angepasst.

Schöne Grüsse
Dirk