Veröffentlicht am :

DataGridProvider

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses Skript ist dazu bestimmt, als Stored Process oder SAS© Job ausgeführt zu werden. Es empfängt Makro-Parameter (dset, start, limit) als Eingabe, um die Quelltabelle und das Paginierungsfenster zu definieren. Es berechnet die Gesamtzahl der Beobachtungen, extrahiert die angeforderte Untermenge in eine temporäre Tabelle und generiert dann manuell eine JSON-Struktur, die die Gesamtzahl der Datensätze und das Datenarray für die angeforderte Seite enthält, alles an den Web-Ausgabestrom (_webout) gesendet.
Datenanalyse

Type : MIXTE


Standardmäßig verwendet das Skript 'sashelp.class' über das Makro %defaults. Die Quelltabelle kann dynamisch über die Makrovariable 'dset' geändert werden. Eine Bibliothek 'dtemp', die auf 'D:\Temp' verweist, ist definiert, wird aber in der Haupttransformationslogik nicht explizit verwendet.

1 Codeblock
LIBNAME
Erklärung :
Definition einer temporären Bibliothek (Windows-Pfad, an Viya/Linux anzupassen).
Kopiert!
1LIBNAME dtemp 'D:\Temp' ;
2 Codeblock
MACRO
Erklärung :
Initialisierung der Standardparameter (Quelltabelle, Start, Limit), falls diese nicht von der aufrufenden Umgebung bereitgestellt werden.
Kopiert!
1%macro defaults ;
2 %IF %symexist(dset)=0 %THEN %DO;
3 %global dset;
4 %let dset=sashelp.class;
5 %END;
6 %IF ^%symexist(start) %THEN %DO; %global start; %let start=0; %END;
7 %IF ^%symexist(limit) %THEN %DO; %global limit; %let limit=160; %END;
8%mend defaults;
9%defaults
3 Codeblock
DATA STEP
Erklärung :
Öffnen der Quelltabelle, um die Gesamtzahl der Beobachtungen (Metadaten 'nobs') abzurufen und in einer Makrovariablen zu speichern.
Kopiert!
1DATA _null_ ;
2 dsid=open("&dset");
3 nobs=attrn(dsid,'nobs');
4 call symput('nobs',strip(put(nobs,8.)));
5RUN;
4 Codeblock
MACRO
Erklärung :
Berechnung der Paginierungsgrenzen (erster und letzter Datensatz, der extrahiert werden soll).
Kopiert!
1%let first=%eval(&start+1);
2%let last=%eval(&start+&limit);
3%put first=&first last=&last nobs=&nobs;
4 
5 Codeblock
DATA STEP Data
Erklärung :
Erstellung der Tabelle 'subset', die nur die Daten der angeforderten Seite enthält.
Kopiert!
1 
2DATA subset;
3SET &dset (firstobs=&first obs=&last);
4RUN;
5 
6 Codeblock
DATA STEP
Erklärung :
DATA _NULL_-Schritt, der die Tabelle 'subset' durchläuft und manuell eine formatierte JSON-Struktur (totalCount, rows) in den Ausgabestrom '_webout' schreibt. Der Code prüft dynamisch die Variablentypen (numerisch oder Zeichen), um die JSON-Werte korrekt zu formatieren.
Kopiert!
1DATA _null_ ;
2 LENGTH type $ 1 char $ 128 num 8;
3 file _webout;
4 dsid=open("subset");
5 /* ... logique de génération JSON ... */
6 dsid=close(dsid);
7RUN;
7 Codeblock
MACRO
Erklärung :
Aufruf der Standard-Stored Process-Makros zur Finalisierung der Ausführung und Verwaltung der Ausgabe.
Kopiert!
1%let _result=streamfragment ;
2%STPBEGIN;
3/* ... */
4%STPEND;
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.