ODS Das Output Delivery System Eine Einführung - Grischa Pfister
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
ODS Das Output Delivery System Eine Einführung Grischa Pfister Der Referent z Grischa Pfister z Seit 1993 SAS aktiv z Arbeitsfelder z Anwendungsentwicklung AF, IntrNet, Java z Data Warehousing z SAS9 BI-Architektur z Schulungen z Base z AF z Java z BI-Architektur 1
Einleitung z Zeitrahmen z 14:00 – 18:00 Uhr z Pausen ca. 15:30 – 15:45 und 16:45 – 17:00 Uhr? z Ablauf z Vortrag z Anwendungsbeispiele z Fragen z Immer und jederzeit Agenda z Das Konzept z Grundlegende Beispiele z Output Objekte z Der Output Kanal z Ods Destinations Printer / PDF / RTF z HTML Ausgabe z Ods und Graphiken z Ods Styles z Ods und Reporting Prozeduren z Table & Style Templates z Neues in V9 2
Literaturhinweise z Bernadette Johnson: Instant ODS: Style Templates for the SAS Output Delivery System (Stand 8.2) z Lauren Haworth: Output Delivery System: The Basics (Stand 9.1.3) z Sunil Gupta: Quick Results with the Output Delivery System (Stand 9.1.3) Literaturhinweise z SAS Hilfe z SAS Products Æ Base SAS Æ Output Delivery System z support.sas.com z Communities -> Base SAS z ODS generell: http://support.sas.com/rnd/base/index-ods- resources.html z ODS MARKUP Resources: http://support.sas.com/rnd/base/topics/odsmarkup/ z SUGI-Proceedings z http://support.sas.com/usergroups/sugi/proceedings/ 3
Das Konzept SAS-Output vor ODS z Zwei Formen z Listing im Output-Fenster z Ausgabe-Tabellen z Nachteile z Manche Prozeduren erzeugen keine Tabellen z Nicht alle Informationen in Tabellen z Statisch z Nur Proportional-Schriftarten z Keine echte Tabellenstruktur z Übernahme in Textverarbeitung, Tabellenkalkulation, Graphikprogramme schwer oder gar nicht möglich z Hoher Nachbearbeitungsaufwand 4
SAS-Output mit ODS z WYSIWYG z Alles was im OUTPUT-Fenster erscheint steht im ODS zur Verfügung z Alle Informationen aller Prozeduren z Parallelisierung des Output z Ergebnisse werden an viele Kanäle gleichzeitig geliefert z Gliederung des Output z Prozedur-Output wird in Objekte zerlegt z Zugriff auf jedes einzelne Objekt möglich ODS Ausgabe-Kanäle z Listing Æ Output-Fenster z Output Æ SAS-Tabelle z HTML Æ Dokument für WWW z PDF Æ Dokument für Acrobat Reader z RTF Æ Dokument für Textverarbeitung z Printer Æ Systemdrucker z PS Æ Postscript z Tagsets Æ Markup Languages - CSV - XML - ExcelXP 5
Funktionsweise des ODS Listing Kanal SAS-Tabelle Daten- Komponente Listing HTML Dokument Output Style HTML Template RTF Dokument Table RTF Template PDF Dokument PDF Output-Objekt PRINTER Ausdruck ... ... ODS-Syntax z Globale Statements z Voll batch-fähig z Schalterprinzip z Kanal wird geöffnet z Output von Prozeduren/Data Steps z Kanal wird geschlossen z Ergebnis ist betrachtbar 6
Öffnen und Schließen von ODS-Kanälen z Öffnen eines Kanals z Ods Kanal; z Ods Kanal File = „pfad“; z Ods Kanal output-objekt = SAS-Tabelle; z Schließen eines Kanals z Ods Kanal Close; z Ods _all_ Close; z Grundprinzip z Es muss mindestens ein Kanal geöffnet sein z Ansonsten Warning im LOG-Fenster Grundlegende Beispiele 7
Ods Listing z Ein-/Ausschalten z Ods Listing; z ... z Ods Listing Close; z Beispiel01.sas Ods Html z Ein-/Ausschalten z Ods Html File = fileref | „pfad“; z ... z Ods Html close; z Beispiel02.sas 8
Ods Pdf z Ein-/Ausschalten z Ods Pdf File = fileref | „pfad“; z ... z Ods Pdf Close; z Beispiel03.sas Ods Rtf z Ein-/Ausschalten z Ods Rtf File = fileref | „pfad“ z ... z Ods Rtf Close; z Beispiel04.sas 9
Ods Printer/PS z Ein-/Ausschalten z Ods Printer ; z Ods Ps File = fileref | „pfad“; z ... z Ods Printer/Ps Close; z Beispiel05.sas Mehrere Kanäle gleichzeitig verwenden z Unterschiedliche Kanäle z Ods Pdf File = fileref | „pfad“; z Ods Html File = fileref | „pfad“; z ... z Ods _all_ Close; z Beispiel06.sas 10
Mehrere Kanäle gleichzeitig verwenden z Gleiche Kanäle z Ods Html (id=1) File = fileref | „pfad“; z Ods Html (id=2) File = fileref | „pfad“; z ... z Ods Html (1) Close; z ... z Ods Html (2) Close z Beispiel07.sas Ods Grundeinstellungen z Tools -> Options -> Preferences z Tabber „Results“ z Ods Listing z Ergebnisse als HTML z Style = default z Web-Browser z Umstellen unter Tabber „Web“ z Direkte Anzeige der Ergebnisse 11
Output Objekte Output Objekte z Ods teilt Prozedur-Output in Objekte ein z Jedes Objekt ist identifizierbar z Jedes Objekt ist einzeln ansprechbar z Anzahl der Output Objekte ist abhängig von z Prozedur z Prozedur-Optionen z By-Gruppen 12
Output Objekte z Identifizieren von Output Objekten z Ods Trace On; z ... z Ods Trace Off; z Inhalt des Trace-Satzes z Name des Output Objektes z Label des Output Objektes z Name des verwendeten Table Templates z Pfad des Output Objekts z Beispiel08.sas z Results-Fenster zeigt Output Objekte an Auswahl von Output Objekten z Select-/Exclude-Liste z Enthält Auswahl von Output Objekten z Eine globale Liste z Eine Liste für jeden aktiven Kanal z Anzeigen der Select-/Exclude-Liste z Ods Show; z Dabei muss der Kanal muss aktiv sein z Beispiel09.sas 13
Auswahl von Output Objekten z Auswahl von Output Objekten z Ods Select ods-objekt ; z Ods Exclude ods-objekt ; z Ods (Select|Exclude) (All|None); z Dabei kann ods-objekt sein z Name aus Trace-Satz z Pfad aus Trace-Satz z Label aus Trace-Satz z Mischung aus Label und Pfad z Beispiel10.sas Voreinstellungen der Auswahllisten z Globale Select-/Exclude-Liste z Select All z Alle Bericht-Kanäle z Select All z Output-Kanal z Exclude All z Beispiel11.sas 14
Gültigkeitsdauer von Auswahllisten z Gültigkeitsdauer der Auswahl z Nachfolgende Prozedur z Option Persist z macht Auswahl eines Objektes dauerhaft z muss mit neuem Statement überschrieben werden z Ods (Select|Exclude) ods-objekt(Persist); z ... z Ods Select All; z Beispiel12.sas Output Kanal 15
Ods Output z Ein-/Ausschalten z Ods Output ods-objekt = SAS-Tabelle ...; z ... z z Beispiel13.sas Auftrennen in mehrere Tabellen z Verarbeitung von By-Gruppen z Standardverhalten: alle By-Gruppen in eine Tabelle z Match_all-Option: Ods Output ods-objekt(Match_all)= SAS-Tabelle; jede By-Gruppe in eigene Tabelle automatische Benennung mVar enthält Namen der erzeugten Tabellen z Beispiel14.sas 16
Verarbeiten mehrerer Prozedurausgaben z Verarbeiten mehrerer Prozeduren z Match_all + Persist-Option Ods Output ods-objekt(Match_all) = SAS-Tabelle; ... Ods Output Close; z Erhält Benennungsschema z Beispiel14a.sas ODS Destinations Printer / PDF / RTF 17
Seitenkontrolle z Grundeinstellung z Jede Prozedur beginnt neue Seite z Innerhalb der Prozedur selbst keine Eingriffsmöglichkeit z Seitenumbrüche steuern z Startpage-Anweisung z Ods Kanal Startpage = off; Schaltet automatischen Seitenumbruch nach Prozedur aus z Ods Kanal Startpage = on; Schaltet automatischen Seitenumbruch nach Prozedur ein z Ods Kanal Startpage = now; In Verbindung mit Ods Startpage off erzwingt Seitenumbruch an bestimmter Stelle z Beispiel15.sas Allgemeines Layout z Optionen für die Seitengestaltung z Title Titel z Footnote Fußnoten z [no]Center linksbündig z [no]Number keine Seitenzahlen z [no]Date kein Datum z Orientation = portrait|landscape Hochformat|Querformat z paperSize = „Iso A4“|(x,y) Seitengröße z [left|right|top| bottom]Margin = n Randeinstellungen z Funktionieren aber nicht immer mit allen Kanälen... z Beispiel16.sas 18
Titel und Fußnoten z Title & Footnote z Ähnlich SAS/GRAPH verwendbar z Font = Schriftart z Height = Schriftgröße z Color = Farbe z Justification = Ausrichtung z Beispiel17.sas Inhaltsverzeichnis z Option contents z Erstellt Inhaltsverzeichnis für PDF / RTF z In Word z alles Markieren (Strg + A) z Felder aktualisieren (F9) 19
Inline-Formatierung z Ods Escapechar = „Zeichen“; Definiert Zeichen als Beginn einer Escape-Sequenz z Standard Escape-Sequenzen z [arg]n [arg] Leerzeilen einfügen z S={} Style-Attribute z {super text} hochgestellt z {sub text} tiefgestellt z R/[RTF|PDF|HTML]““ Roh-Text für eine Destination z InlineFormatierung01.sas Paginierung z Verschiedene Platzhalter z {pageof} Æ page X of Y (nur RTF) z {thispage} Æ aktuelle Seitenzahl z {lastpage} Æ höchste Seitenzahl 20
PDF Spezifika z Notoc Kein Inhaltsverzeichnis z NoPdfNote Keine Annotations z Style-Attribut „flyover“ wird in PDF Note umgewandelt z Columns = n Ausgabe in mehrere Spalten z Text = „“ Einfügen von Text z V9 z Compress = [0|9] RTF Spezifika z BodyTitle Titel im Text z Author = Angabe des Autors z Title = Angabe des Titels z Columns = n Ausgabe in mehrere Spalten z Text = „“ Einfügen von Text z RTF-spezifische Felder verwenden z Title/Footnote beginnt mit „{“, endet mit „}“ z R/RTF „Anweisung“ z {Seite \field{\*\fldinst PAGE }} z http://support.sas.com/rnd/base/topics/ templateFAQ/Template_rtf.html z http://msdn.microsoft.com z Nach „rtf specification“ suchen z InlineFormatierung02.sas 21
HTML Ausgabe Ods HTML z Erstellen ganzer Web-Sites im Batch z Statische Reports als HTML z Automatische Erzeugung von Framesets z Verwendung von Cascading Style Sheets z „Verlinken“ verschiedener Seiten z Interaktive Graphiken z Graphiken mit Hyperlinks z Aufsplitten der Ergebnisse auf mehrere Dateien 22
Ods HTML z Was ist ein Frameset? z Konzept in HTML z Zeigt gleichzeitig mehrere HTML-Dateien an z Unterteilt die Anzeige in verschiedene Bereiche (Frames) z Mit Ods möglich z c Inhaltsverzeichnis z z d Seitenverzeichnis e Hauptseite c e d Ods HTML z Erstellen eines Frameset mit ODS z Ods Html Path = „verzeichnis“ (Url = none) Body = „name1.html“ Contents = „name2.html“ Page = „name3.html“ Frame = „name4.html“; z Path: Pfad unter dem alle Dateien angelegt werden z (Url = none): Hyperlinks werden relativ angelegt z Body: Hauptseite z Contents: Inhaltsverzeichnis z Page: Seitenverzeichnis z Frame: Html-Seite, die den Frameset enthält z Beispiel18.sas 23
Unterstützung von Cascading Style Sheets z Hintergrund z HTML: tag-gesteuerte Layoutanweisungen, ASCII z Dateien sollen möglichst klein sein z Wie wird Layout definiert? z Für jedes Element einzeln z Definition von Klassen (Cascading Style Sheet) z Verschiedene Möglichkeiten CSS zu verwenden z Ods Html ... Css; eingebettetes Stylesheet z Ods Html ... Stylesheet = „name.css“; CSS wird erstellt z Ods Html ... Stylesheet = (Url=„“); vorhandenes Stylesheet wird benutzt z Beispiel19.sas z Aufsplitten des Output z HTML-Dateien sollten möglichst klein sein z Grundeinstellung: aller Prozedur-Output landet in einer Datei z NewFile-Option z Ods Html ... NewFile = Output|Page|Proc; z Erstellt neue Dateien für z Jedes Output Objekt z Jede logische Seite z Jede Prozedurausgabe z Beispiel20.sas 24
z Eingriffsmöglichkeiten in das Inhaltsverzeichnis z Ods Proclabel „text“; Ändert die Hauptüberschrift z Option Contents = „text“ bei den Prozeduren Print, Report und Freq, Tabulate (hier auch als Option im Table-Statement) Ändert die Unterüberschrift(en) z Ods Noptitle; Unterdrückt den Prozedurspezifischen Titel z Beispiel21.sas z HTML direkt verwenden z Titel und Fußnoten dürfen HTML-Code enthalten z 1. Zeichen muss „
Ods und Graphiken Wie erstellt SAS Grafiken? z Device-Konzept z Grafik wird zunächst unabhängig erzeugt z Anschließend von Device interpretiert z Problem Schriftarten z V6 z Device enthält Übersetzungsliste von SAS-spezifischen in True Type Font-Namen z V8 z Bestimmte Devices können TTF-Namen erkennen z Die vom ODS verwendeten Devices nicht! 26
Ods, Grafiken und True Type Fonts in V9 z Free Type Library für Schriftarten z Werden von ODS-Devices verwendet z Registrieren von TTF in SAS Registry Æ Schriftarten stehen zur Verfügung z Proc Fontreg z Kommando REGEDIT z Core/Printing/Freetype/Fonts z Unterstützende Devices z SASEMF, GIF, JPEG, PNG z Mehr zu diesem Thema: z TS 674: An Introduction to Exporting SAS/Graph Output to Microsoft Office SAS Release 8.2 and higher z Beispiel24.sas Grafiken in HTML z HTML z Pixel-Graphiken in GIF- bzw. JPEG-Format z Werden als Referenz in Seite integriert () z Ods Html Gpath = „verzeichnis“ (Url=none); setzt das Verzeichnis, in dem Graphiken gespeichert werden z SAS/GRAPH Treiber z JPEG z GIF z Goptions xPixels = n yPixels = n [no]Transparency z Beispiel25.sas 27
Spezielle Devices z Spezielle SAS/GRAPH Treiber z ActiveX z Java z Interaktive Graphiken mit diversen Möglichkeiten wie z Anzeige von Werten z Rotieren Strg + LMB z Verschieben Alt + LMB z Zoomen Shift + LMB z Selektion Strg + Shift + LMB z Umstellen des Graphiktyps Kontextmenü z ... z Beispiel26.sas SAS/GRAPH & ODS Html z Erweiterung der Graphik-Prozeduren z Graphiken mit Hyperlinks versehen z Option Html = variable in den verschiedenen Statements z Schritte zum Erstellen von gelinkten Graphiken z 1. Tabelle mit Drillvariable erzeugen variable = „href = name.html“; z 2. Graphik erzeugen z 3. Die Seiten erzeugen, auf die verwiesen wird z Beispiel27.sas 28
ODS Styles z Abstrakte Beschreibung von ODS-Elementen z Dokument z Inhaltsverzeichnis z Tabelle z Zelle z Layoutangaben z Farben z Schriftarten (Größe, Gestaltung) z Tabellengestaltung (Abstände, Ränder) z Beschriftung (z.B. des Inhaltsverzeichnisses) z Werden immer verwendet z HTML -> default z RTF -> rtf z PDF -> printer z PRINTER/PS -> printer 29
z Mitgelieferte Styles z Default z D3d z Brick z statDoc z Minimal z sasWeb z barrettsBlue z ... z Tools -> Options -> Preferences -> Results Tabber z Verwendung von Styles z Ods Kanal Style = name; z Beispiel28.sas ODS und Reporting Prozeduren Proc Print, Proc Report, Proc Tabulate 30
z Neue Style-Option z Style = {style-anweisung ...}; z Style(element) = {style-anweisung...}; z Überschreibt Layoutanweisungen des gewählten Styles z Style Anweisungen (Auswahl) z Background = Farbe z Foreground = Farbe z borderColor = Farbe z Schriftart spezifisch z Font_face= Schriftart z Font_size= Schriftgröße z Font_weight= Schrift-Gewichtung (normal/fett) z Font_style= Darstellung (italic=kursiv) z Zellenlayout z Cellheight= Zellenhöhe z Cellwidth= Zellenbreite z Cellpadding= Randabstand innerhalb Zelle z Cellspacing= Abstand zwischen Zellen z Just= horizontale Ausrichtung z Vjust= vertikale Ausrichtung z Graphische Elemente z BackgroundImage= Hintergrundbild z PreImage= Bild vor Objekt z PostImage= Bild nach Objekt z HTML spezifisch z PreHtml= z PostHtml= z Url= z Flyover= 31
z ODS & Proc Print z Output in Elemente unterteilt z Jedes Element kann einzeln formatiert werden z Style-Angaben für z Gesamt-Tabelle z Spaltenüberschriften z Obs-Spalte z Datenbereich z Einzelne Spalte z Einzelne Zelle (Ampel-Funktion) z Beispiel29.sas z ODS & Proc Report z Globale Angaben als Optionen in Prozeduraufruf z Header z Column z Spaltenbezogene Angaben als Optionen im Define-Block z Header z Column z Beispiel30.sas 32
z ODS & Proc Tabulate z Verwenden der Style-Option in verschiedenen Statements z Class z Classlev z Var z Keyword z Box-Option z Table-Statement z Beispiel31.sas Table & Style Templates 33
z Table Template z Grund-Layout z Aufteilung in Spalten z Spaltenbeschriftung z Zahlenformatierung z Kann auch Style-Anweisungen enthalten z Style Template z Layout der Elemente z Abhängig vom Kanal z Objekt-orientierter Ansatz Default Printer PDF RTF [...]Printer RTF Statdoc D3d,... 34
z Verwaltung von Table & Style Templates z Ods Template Viewer z Kommando OdsTemplate z Results-Fenster z Hierarchische Organisation in MT itemstore z Defaults: Sashelp.Tmplmst (schreibgeschützt) z Eigene: Sasuser.Templat z Anlegen eigener itemstores mit Proc Template z Ods Suchpfad z Ods Path Show; z Ods Path libref.itemstore(modus) ...; modus = read | update | write z Table Templates verändern z Beispiel Proc Univariate: Extreme Observations z Beschriftung eindeutschen z Wird in Sasuser.Templat gespeichert z Beispiel32.sas 35
z Style Templates anpassen z Neuen Style ableiten z Gewünschte Änderungen vornehmen z Aufbau des Styles Default z Definition von Schriftarten z Definition von Farben z Definition der einzelnen Elemente z Hierarchie in OnlineDoc beschrieben Base SAS Software -> Guide to the SAS Output Delivery System -> Reference -> The TEMPLATE Procedure -> Concepts z Beispiel33.sas z Data Step Reporting & Table Templates z Mit Table Templates Schablonen entwerfen z Spaltenlayout z Beschriftung z Style-Anweisungen z Ampelfunktion mit Hilfe von z Cellstyle-Anweisung z Style-Anweisung + Expression-Funktion z Style-Anweisung + Format z Berechnete Spalten z Verändern von Werten z Beispiel34.sas – Beispiel38.sas 36
Neues in V9 Ods Markup z Neue Destination z Stellt Event-Modell zur Verfügung 37
z Event = Ereignis z Start & finish ODER zustandslos z Mit Trigger event können eigene Events aufgerufen werden z Verhalten in Tagsets zusammengefasst z Z.B. Tagset Csv z Tagsets01.sas Tagsets als Informationsquelle z Informationen über Style-Elemente anzeigen z Style_popup z Style_display z namedHtml z Informationen über Events anzeigen z Event_map z Volle Freiheit für Benutzer aber hohe Komplexität z http://support.sas.com/rnd/base/topics/odstagsets/ z Eric Gebhart: MARKUP: The Power of Choice and Change. Sugi 27, Advanced Tutorials z Tagsets02.sas 38
ODS Tagset ExcelXP z Export von SAS nach Excel (ab Excel 2002) z XML nach Microsoft-Standard z Neueste Version z http://support.sas.com/rnd/base/ topics/odsmarkup/ ODS Tagset ExcelXP z Features z Benennung der Tabellenblätter z Je Tabelle ein Tabellenblatt in Excel Æ By-Gruppen, Prozedur,… z Beschriftung als Header/Footer oder im Blatt z Überschriften (Spalten und Zeilen) fixieren z Automatische Spaltenfilter z Formatierung von Zahlenwerten mit Excel-Formaten z Verwendung von Excel-Formeln 39
ODS Tagset ExcelXP z Aufruf z Ods Tagsets.ExcelXP file=„path" options(optionen); … Ods Tagsets.ExcelXP Close; z Dokumentation ist in Style enthalten z Ods Tagsets.ExcelXP file=„path“ options(doc=„help“); ExcelXP001.sas ODS Tagset ExcelXP z Steuerung über Optionen z Bei Öffnen des ODS Kanals z Vor einer individuellen Tabelle z options(name=„value“ ) z Ods Tagsets.ExcelXP file=„path„ options(optionen); … Ods Tagsets.ExcelXP options(optionen); … Ods Tagsets.ExcelXP Close; 40
ODS Tagset ExcelXP z Ausgewählte Optionen z Seitenausrichtung orientation = „portrait“ | landscape z Größe der Anzeige in Excel zoom = „n“ z ExcelXP02.sas ODS Tagset ExcelXP z Excel Features z frozen_headers = „no“ | yes z frozen_rowHeaders = „no“ | yes z auto_filter = „none“ | all | column | startCol – endCol z Æ nur für mehrere aufeinander folgende Spalten z ExcelXP03.sas 41
ODS Tagset ExcelXP z Formatierung mit Excel-Formaten z Führende Nullen, feste Nachkommastellen z Style-Anweisung tagattr=„Excel-Format“ z 0 Æ alle signifikanten Ziffern # Æ nichtsignifikante Ziffern z tagattr=„000.00“ bzw. tagattr=„format:000.00“ z tagattr=„###.###.###.0#“ z tagattr=‚[Red][100]‘ ODS Tagset ExcelXP z Excel Formeln verwenden I z Relative Spalten- und Zeilenbezüge z R[+/-n]C[+/-n] RC[-1] Æ Wert der direkten linken Spalte RC[-2] Æ Wert der vorletzten Spalte R[-1]C[-1] Æ Wert der oberen linken Zelle z Alphanumerische Variable bilden z Länge beachten! z Var = „=Ausdruck“ 42
ODS Tagset ExcelXP z Excel Formeln verwenden II z Style-Anweisung tagattr=„formula:Formel“ z Numerische Variable bilden (var = .) z !! Englische Excel-Funktionen verwenden !! z [ExcelXPnn.sas] Ods Document z http://support.sas.com/rnd/base/topics/odsdocument/ z Experimentell in V8.2, produktiv in V9 z Speichern und Wiedergeben von Output-Objekten z Z.B. Ändern der Reihenfolge z Wird als Membertype Itemstore gespeichert z Ods Document Name = Itemstore(mode); 43
Proc Document z Proc Document Name= Itemstore; List / Levels = all; Replay
Weitere Fragen oder Anregungen ? g.pfister@icasus.de 45
Sie können auch lesen