Publié le :
Reporting CREATION_INTERNE

Génération de graphiques interactifs dc.js avec PROC STREAM

En attente de validation
Le script utilise `PROC STREAM` pour écrire du code HTML et JavaScript dans le fichier de sortie `_webout`. Une première étape `PROC STREAM` initialise la structure HTML et le début du code JavaScript, en préparant un tableau JavaScript statique. Ensuite, un `DATA STEP` crée un jeu de données `test` avec les informations à visualiser. Un `DATA _NULL_` parcourt ce jeu de données et écrit chaque observation au format d'objet JavaScript dans le `_webout`, complétant ainsi le tableau de données. Finalement, une deuxième étape `PROC STREAM` termine le code JavaScript qui utilise les librairies `d3.js`, `crossfilter.js` et `dc.js` pour traiter les données et générer trois graphiques interactifs : un diagramme en anneau par année, un histogramme des dépenses et un graphique en barres par personne.
Analyse des données

Type : CREATION_INTERNE


Les données sont créées et stockées dans la table 'test' à l'aide d'un DATA STEP et de l'instruction 'cards'. Elles ne proviennent ni de SASHELP ni d'une source externe.

1 Bloc de code
PROC STREAM
Explication :
Ce bloc initialise la sortie HTML via `_webout`. Il crée l'en-tête HTML, inclut les librairies JavaScript nécessaires (d3.js, crossfilter.js, dc.js) et définit les conteneurs (div) pour les futurs graphiques. Il commence également la déclaration d'un tableau JavaScript `spendData` qui sera peuplé par la suite.
Copié !
1PROC STREAM outfile=_webout prescol ;
2BEGIN
3
4"en">
5
6 dc.js - Our modified example
7 "UTF-8">
8 "stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/dc/1.7.5/dc.css"/>
9
10
11 
12
"chart-ring-year">
13
"chart-hist-spend">
14
"chart-row-spenders">
15 
16
17
18
19
33 
34
35
36;;;;
37RUN ;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Banner
Le Conseil de l'Expert
Expert
Michael
Responsable de l'infrastructure Viya.
« L'utilisation de PROC STREAM pour injecter des données SAS directement dans des librairies JavaScript comme dc.js représente le sommet de l'interopérabilité. Là où les graphiques SAS classiques (SGPLOT) sont statiques, cette méthode permet de créer un véritable tableau de bord interactif où chaque graphique agit comme un filtre pour les autres grâce à Crossfilter.

La force de ce script réside dans sa structure en 'sandwich' : on utilise la puissance de traitement de données de SAS en amont pour structurer le JSON, tout en déléguant le rendu visuel au navigateur de l'utilisateur. C'est une stratégie gagnante pour diffuser des rapports percutants via SAS Stored Processes ou SAS Viya, sans surcharger les ressources du serveur. »