Attention : Dieser Code erfordert Administratorrechte.
Das Skript definiert ein Hauptmakro `message_js`, das eine HTML-Datei durch Iteration über Listen von Makrovariablen schreibt. Es verwendet Hilfsmakros (Präfix AHG) zur Verwaltung dieser Listen. Das Skript fragt die Ansicht `sashelp.vlibnam` ab, um aktive Bibliotheken (außer SASHELP, SASUSER, MAPS) aufzulisten und in HTML-Links umzuwandeln. Ein zweites Makro `dosomething` überprüft die Existenz spezifischer Dateien (über einen in `__snapshot` definierten Pfad) und generiert die endgültige HTML-Seite, die dann über einen Systembefehl geöffnet wird.
Datenanalyse
Type : GEMISCHT
Verwendet fest definierte Daten (datalines/cards4 über das Makro AHG2arr) und SAS-Sitzungsmetadaten (sashelp.vlibnam).
1 Codeblock
DATA STEP
Erklärung : Definition des Makros `message_js`, das eine Textdatei (HTML) über einen Data Step `_NULL_` erstellt. Es iteriert über die bereitgestellten Variablenpräfixe, um den Inhalt zu schreiben. Anschließend führt es einen Systembefehl `x` aus, um die generierte Datei zu öffnen (Windows-spezifischer Befehl 'start', für Linux anzupassen).
Kopiert!
%macro message_js(pre,file=) ;
data _null_ ;
file "&file";
put "&html1";
put "&html2";
put "&html3";
%local i J one;
%do j=1 %to %AHGcount(&pre);
%let one=%scan(&pre,&j,%str( ));
%if not %symexist(&one._n) %then
%do;
%if %bquote(%sysfunc(rank(%substr(%bquote(&&&one),1,1))))=34
or %bquote(%sysfunc(rank(%substr(%bquote(&&&one),1,1))))=39 %then put %unquote(&&&one);
%else put "%unquote(&&&one)";
%end;
%else
%do i=1 %to &&&one._n;
%put ############### &&&one&i;
%if %bquote(%sysfunc(rank(%substr(%bquote(&&&one&i),1,1))))=34
or %bquote(%sysfunc(rank(%substr(%bquote(&&&one&i),1,1))))=39 %then put %unquote(&&&one&i);
%else put "%unquote(&&&one&i)";
;
put;
%end;
%end;
put "&html4";
put "&html5";
run ;
x "start &file";
%mend message_js ;
option mprint;
Erklärung : Abrufen der Pfade aktiver SAS-Bibliotheken (außer Systembibliotheken) aus `sashelp.vlibnam` zur Erstellung von HTML-Anker-Tags.
Kopiert!
%AHGdel(url,like=1);
proc sql;
create table html as
select '''<a href="'||trim(path)||'">'||compress(libname)||'</a>''' as url
from sashelp.vlibnam
WHERE not libname in ( 'SASHELP','SASUSER','MAPS');
;
quit;
1
%AHGdel(url,like=1);
2
3
PROC SQL;
4
create TABLE html as
5
select '''<a href="'||trim(path)||'">'||compress(LIBNAME)||'</a>''' as url
6
from sashelp.vlibnam
7
WHERE not LIBNAME in ( 'SASHELP','SASUSER','MAPS');
8
;
9
QUIT;
4 Codeblock
DATA STEP
Erklärung : Übertragung der Liste der generierten URLs aus der SAS-Tabelle in Makrovariablen (`url1`, `url2` usw.) zur späteren Verwendung.
Kopiert!
data _null_;
set html;
call symput('url'||%AHGputN(_n_,BEST.),TRIM(url));
call symput('url_N',_N_);
run;
%AHGpmlike(url);
Erklärung : Definition und Ausführung des Makros `dosomething`. Es überprüft das Vorhandensein spezifischer Dateien in einem Verzeichnis `__snapshot` (falls definiert), erstellt dynamische Links, falls die Dateien existieren, und ruft schließlich `message_js` auf, um den HTML-Bericht zu generieren.
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.