Publié le :
Reporting SASHELP

Génération d'Interface Web de Lancement de Rapport

Ce code est également disponible en : Deutsch English Español
Ce programme construit dynamiquement une interface web (formulaire HTML). Il commence par extraire la liste des lignes de produits disponibles dans la table `sashelp.orsales` pour créer une liste déroulante. Ensuite, il diffuse une page HTML vers la sortie web (`_webout`) contenant un formulaire. Ce formulaire permet à l'utilisateur de choisir un produit, un format de sortie (HTML, PDF, CSV, RTF) et un style, puis de soumettre la requête pour exécuter un programme SAS© spécifique.
Analyse des données

Type : SASHELP


Les données alimentant la liste déroulante proviennent de la table interne `sashelp.orsales`. Le reste du contenu est défini statiquement dans le code.

1 Bloc de code
PROC SQL
Explication :
Sélectionne les valeurs distinctes de la colonne `product_line` dans `sashelp.orsales`. Formate chaque valeur en balise HTML `<option>` et stocke la chaîne concaténée dans la macro-variable `:options`.
Copié !
1PROC SQL ;
2 select distinct '<option value="'||strip(product_line)||'">'||strip(product_line)||'</option>'
3 into :options separated BY ' '
4 from sashelp.orsales ;
5QUIT ;
2 Bloc de code
DATA STEP
Explication :
Génère le flux HTML vers la destination `_webout` (navigateur). Utilise `cards4` pour inclure le code HTML inline. La fonction `resolve` permet d'interpréter les macro-variables (comme `&options` générée précédemment, ou `&_srvname`) au sein des données brutes avant l'envoi.
Copié !
1DATA _null_ ;
2 file _webout ;
3 INPUT ;
4 line=resolve(_infile_) ;
5 put line ;
6 cards4 ;
7
8
9

Pick a report to RUN

10
"get" ACTION="http://&_srvname:&_srvport/&_url?" target="content">
11<INPUT type="hidden" name="_program" value="/User Folders/phil/My Folder/test">
12
13&options
14
15
16
17
18
19
20
21
22
23
24
25
26
27<INPUT type="checkbox" name="_debug" value="log">Show log
28<INPUT type="checkbox" name="_debug" value="time">Show time taken
29
30
31<INPUT type="submit" value="Run">
32
33
35
36
37;;;;
38RUN ;
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.