Community deutschsprachiger SAS-Anwender und -Programmierer

Antworten
Dies ist eine offene Gruppe. Melden Sie sich an und klicken Sie auf die Schaltfläche „Gruppe beitreten“, um Mitglied zu werden und damit zu beginnen, Beiträge in dieser Gruppe zu veröffentlichen.
Highlighted
New Contributor
Beiträge: 2
Wie HTML-Datei mittels Code öffnen?
[ Bearbeitet ]

Hallo zusammen,

 

besteht denn die Möglichkeit, aus SAS EG heraus mittels Code eine HTML-Datei zu öffnen?

 

Ich erstelle HTML-Tabellen, aber nicht mit ods oder proc export. Stattdessen wird eine Textdatei erstellt, die HTML- bzw. CSS-Code beinhaltet. Für einfache Anwender wäre es sinnvoll, diese Tabellen zunächst nicht in den Tiefen des Dateisystems zu suchen (machen sie später ohnehin), sondern unmittelbar nach dem Programmablauf die gerade erstelle Tabelle betrachten zu können.

 

Ein Import der Daten bringt nichts, da die Tables nicht erkannt werden. Über das Menü Datei öffnen -> Sonstiges ->html funktioniert es hingegen perfekt! Ist es aber möglich, diese Funktion im Code unterzubringen, d.h. die gerade erstellte Tabelle aus dem Programm heraus zu öffnen?

 

Danke im Voraus und Grüße!

 

Felix

Esteemed Advisor
Beiträge: 5.933
Betreff: Wie HTML-Datei mittels Code öffnen?

Nachdem es nur um die Anzeige geht:

Wenn der SAS Workspace Server lokal läuft, kann man ja mit X oder CALL SYSTEM oder %sysexec einen externen Viewer für das File öffnen.

Läuft der Workspace Server remote, ist sowieso alles vergebene Liebesmüh, weil man aus dem Code nicht auf den Client (und schon gar nicht den aktiven Desktop) zugreifen kann.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
SAS Super FREQ
Beiträge: 620
Betreff: Wie HTML-Datei mittels Code öffnen?

Wir können aus dem SAS code heraus nicht Aktionen im EG steuren. Wir können dem EG aber sagen, dass wir eine Ausgabe erzeugt haben, er wird diese dann anzeigen. Das Beispiel Programm sollte in einem Codekonten stehen, der selber keine Ausgabe erzeugt.

 

Habe das Beispiel mit EG7.1 auf einem SAS Server 9.4 auf Linux getest.

 

* orginal HTML ;
filename xres "!HOME/sample.html";

* temp file, da wir orginal nicht verändern wollen ;
filename xres2 temp mod;
* kopie von orginal ;
data _null_;
  infile xres;
  input;
  file xres2;
  put _infile_;
run;

* dummy output erstellen, damit EG diesen anzeigt ;
ods html file=xres2 (NO_TOP_MATTER NO_BOTTOM_MATTER);

data _null_;
  declare odsout obj();
  obj.body_start();
  obj.body_end();
run;

ods html close;

Bruno

New Contributor
Beiträge: 3
Betreff: Wie HTML-Datei mittels Code öffnen?

Nur zur Ergänzung: Zur programmatischen Kontrolle der Ergebnisanzeige gibt es einen schönen Beitrag vom Global Forum 2013. Inhatlich entspricht das den Antworten hier und liefert noch ein paar Hintergrundinformationen: Programmatically Controlling Output in EG

 

Contributor
Beiträge: 21
Betreff: Wie HTML-Datei mittels Code öffnen?

Hallo Felix,

 

mir fällt dazu folgende Möglichkeit ein. Zunächst musst Du unter Extras -> Optionen -> Ergebnisse -> Ergebnisse allg. den Haken bei der Option "Manuell codierte ODS-Ergebnisse verknüpfen" setzen. Dann kannst Du folgenden Trick benutzen:

 

1.) Erzeugen der Textdatei mit dem HTML

2.) Filename-Statement auf einen temporären Buttter

3.) Den Ods HTML Kanal öffnen, aber ohne dass SAS den öffnenden und schließenden Teil des HTML erstellt

4.) Mit einem Data _Null_ Step den Inhalt der HTML-Datei an das ODS übergegen

5.) Ods Html schließen

 

Durch diese Methode wird die erzeugte HTML-Datei eins zu eins in einen "offiziellen" ODS-Stream kopiert und im EG als Ergebnis angezeigt.

(Es hilft, beim Programm unter Eigenschaften -> Ergebnisse die vom EG erzeugte Standard-Seite abzuschalten, dann wird nur das eigentliche Ergebnis angezeigt)

 

Hier ein kurzes Beispiel:

* GP Erzeugte HTML-Seite *;
Data _Null_;
  file "F:/temp/test.html";
  Put "<html><body style=""background-color:#336699""><h1>Test</h1><table border=""1""><tr><td>zelle1</td><td>zelle2</td></tr></body></html>";
run;

* GP Lesen und kopieren in ODS-Stream *;
Filename ttt TEMP;
Ods Html file=ttt(notop nobot);
Data _Null_;
  Infile "f:/temp/test.html";
  File print;
  Input;
  Put _infile_;
Run;
Ods Html Close;

Hoffe, das hilft Dir weiter.

 

Viele Grüße,

 

  Grischa

New Contributor
Beiträge: 2
Betreff: Wie HTML-Datei mittels Code öffnen?
[ Bearbeitet ]

Vielen Dank! Es funktioniert beides, wobei die Ausgabe aus Bruno_SAS' Lösung optisch schöner ist.

 

Viele Grüße

 

Felix