Dans la section zones de listes relative
à la librairie tcltk de R, nous avons
vu comment construire et utiliser une boîte de dialogue permettant de saisir un nom de variable
(sous forme de zone de liste), une légende (sous forme de zone de texte) afin de faire un rapport
sur cette variable d'un dataframe.
Nous reprenons cet exemple pour le traiter avec le module SAS/AF.
Etape 1 : creation d'un catalogue
La première étape consiste à créer un catalogue dans le dossier de
votre choix.
libname lib "C:\Documents and settings\raffinat";
/* à adapter */
proc build catalog=lib.demo.fenetre1.frame;
run;
Concrètement, vous pouvez constater avec l'explorateur Windows que cela crée
un fichier nommé ici "demo" dans le dossier spécifié avec l'instruction libname.
Une fenêtre vide (nommée ici fenetre1) est alors créée
et il vous reste à la compléter en lui ajoutant des composants.
Si le fichier et la fenêtre existaient déjà, la procédure build permet de
modifier cette fenêtre.
Etape 2 : ajout des composants
Concrètement, il faut ici ajouter 5 composants :
-
ajouter un premier label (double-clic sur "Text Label Control")
-
ajouter une zone de texte (double-clic sur "Text Entry Control") et la
déplacer (sinon elle se superpose avec le label)
-
ajouter un second label et le déplacer
-
ajouter une zone de liste (double-clic sur "List Box Control") et la déplacer
-
ajouter un bouton de commande (double-clic sur "Push Button Control") et le déplacer
Etape 3 : modification des propriétés des composants
Pour le bouton, il faut ensuite afficher ses propriétés (clic droit sur le bouton) et
changer les valeurs des propriétés "label" (remplacer Button par OK) et "name" (remplacer
pushButton1 par bouton_ok).
La propriété "label" correspond au texte affiché à l'écran et la propriété
"name" est l'identifiant du bouton (utilisé ensuite dans la programmation).
En procédant de façon analogue pour les autres composants, il reste à :
-
modifier la propriété "name" de la zone de texte (remplacer textEntry1 par zone_legende)
-
modifier la propriété "name" de la zone de liste (remplacer Listbox1 par zone_variable)
-
modifier la propriété "label" des composants textLabel1 et textLabel2
Etape 4 : écriture de code SCL et tests
Il faut ensuite ouvrir l'éditeur de code (commande Affichage / Scl) pour associer des actions
à la fenêtre :
-
La première partie du code (init : ...) indique les choix
qu'il est possible de sélectionner dans la zone de liste (math, anglais, russe).
Cette action s'exécute lors de l'ouverture de la fenêtre.
-
La seconde partie du code (bouton_ok : ...) associe une action au bouton.
Dans le cas présent, on se contente de faire afficher les valeurs
qu'aura entrées l'utilisateur avant de cliquer sur le bouton.
Ensuite, enregistrer la fenêtre, puis la compiler (commande Créer / Compiler).
Si tout s'est bien passé (vérifier dans le journal), exécuter le programme
(commande Créer / Test) et examiner l'effet du programme dans le journal.
Etape 5 : ajout de statistiques ou de graphiques
Il reste à compléter le code de façon à ce qu'un rapport soit réalisé
quand on clique sur le bouton OK.
Ce rapport sera appliqué au tableau de données suivant :
data notes;
input nom$ math anglais russe sexe$;
cards;
Alfred 10 5 15 homme
Berthe 10 7 5 femme
Carole 5 7 5 femme
run;
Les instructions statistiques et graphiques, n'étant pas exprimées en langage SCL, doivent être insérées
entre "submit continue" et "endsubmit".
Le programme doit ensuite être compilé (commande Créer / Compiler), mais ne
peut être testé (commande Créer / Tester) commé précédemment à cause
du "submit continue".
Il faut alors :
-
fermer les fenêtres "BUILD..." (faire par exemple un clic droit)
-
rechercher le catalogue (nommé ici demo) avec l'explorateur Sas
-
faire un clic droit sur la fenêtre fenetre1, puis choisir la commande exécuter