Académique Documents
Professionnel Documents
Culture Documents
Objectif : se familiariser avec les éditeurs d’IHM et d’analyse et de requêtes. Accès aux propriétés des champs –
Introduction au Wlangage.- Lecture et affichage des informations d’une base de données.
Créer un projet appelé ‘TP_intro’, sans analyse (c’est-à-dire sans MLD associé). Pour cela, répondez à toutes
les questions posées (il est possible de modifier par la suite si besoin).
1
Puis créez une fenêtre vierge :
Par la suite, le menu ‘Création’ affiche le bandeau qui va permettre de glisser des nouveaux champs dans la
fenêtre vierge :
2
Créez maintenant les champs qui
figurent dans le volet ci-dessous,
en respectant les noms. Modifier
les propriétés (onglet ’Général’
ou ‘Détail’ de la description) pour
qu’ils apparaissent tels que sur la
copie d’écran.
3
2. Modifier la fenêtre pour qu’elle possède un titre, un icône, une barre de messages et une couleur de
fond.
3. Tester en cliquant sur Go (Test de la fenêtre).
Taper la touche tabulation plusieurs fois pour
passer d’un champ à l’autre.
Remarque :
4. Codage
Sélectionner le champ voulu et taper sur F2 pour accéder à son code. Saisissez petit à petit les codes suivants
en testant à chaque fois.
Pour que le bouton Ok puisse aussi être activé avec la touche ‘Enter’, il faut le définir comme bouton de
validation. Tester.
Pour que le bouton Annuler puisse aussi être activé avec la touche ‘Escape’, il faut le définir comme bouton
d’abandon. Tester.
4
Aide en ligne : Positionner le curseur sur la fonction OuiNon et taper F1. Chercher la bonne syntaxe pour
sélectionner l’option Non par défaut.
SELON SEL_sexe
// Homme
CAS 1
IMG_homme..Visible = Vrai
IMG_femme..Visible = Faux
// Femme
CAS 2
IMG_homme..Visible = Faux
IMG_femme..Visible = Vrai
FIN
Tester. On s’aperçoit qu’un problème a lieu lors du premier affichage (les deux images sont visibles).
Il est possible d’en masquer une lors de l’initialisation des champs. Par exemple, en mettant dans le code
d’initialisation de sel_sexe :
IMG_homme..Visible = Faux
IMG_femme..Visible = Vrai
Tester. On s’aperçoit qu’il y a incohérence à l’ouverture de la fenêtre car le sélecteur est initialisé à homme
et c’est l’image Img_femme qui est visible… on peut rajouter Sel_sexe = 2 au code d’initialisation de
Sel_sexe (un sélecteur est considéré comme un entier).
On souhaiterait que seuls les potentiomètres de saisie de la distance hebdomadaire des sports sélectionnés
soient actifs. Un interrupteur est considéré comme un tableau de booléens :
SI INT_Sport[1] ALORS
POT_Distance_hebdo_Nat..etat=Actif
SINON
POT_Distance_hebdo_Nat..etat=Grisé
FIN
Tester et faire de même pour le vélo et la course à pied…
S’inspirer du code d’initialisation du sélecteur pour régler les problèmes d’initialisation (cases non cochées
mais potentiomètres actifs…).
Créer interrupteur (case à cocher) pour permettre de préciser si la personne est licenciée dans un club :
appelons le Int_licence
5
5. Modifier les valeurs maximales des potentiomètres (100 pour natation, 1500 pour vélo et 300 pour
cap).
Définir 4 cases de 200 pixels de large pour la barre de message de la fenêtre (double clic).
Tenter de modifier le code du potentiomètre pour que la couleur du texte d’affichage dans les cases de la
barre de messages varie en fonction des valeurs des potentiomètres…
Par exemple, pour la natation : rouge en dessous de 6, noir entre 6 et 10 et vert au dessus de 10. Uutiliser
le mot clé SELON ainsi que la propriété CBM_nat..Couleur=…
Nous allons maintenant nous interresser à la sauvegarde des informations dans une base de données
6
Sexe est de type « liste, combo » rempli avec les valeurs « Madame, Monsieur » (il sera stocké comme un
entier). Sport (cf. copie d’écran) est de type interrupteur avec les 3 valeurs Natation, vélo, course à pied (il
sera stocké comme un tableau de booléens).
Nom et Licencié peuvent être définis comme des « clés avec doublon », ce qui permettra de parcourir les
données selon ces critères de tris.
La création de l’analyse permet de valider la description des futurs fichiers de données, mais elle ne les crée
pas.
Les fichiers de données sont stockés dans le répertoire ‘exe’, lui-même inclus dans le dossier du projet.
7
Vérifier qu’il n’y a aucun fichier dans ce répertoire‘exe’.
L’outil WdMap permet de consulter / modifier / supprimer directement les données des fichiers décrits dans
l’analyse. Lancer WdMap et ajouter trois enregistrements.
Pour chaque champ, demander l’onglet liaison dans la description et sélectionner la rubrique concernée.
Tester. HlitPremier est un ordre de lecture dans le fichier. FichierVersEcran remplace en une seule instruction
l’affection de chaque champ lié avec la valeur de la rubrique lue. (Sai_Nom = Personne.nom ; Sai_Prénom=
Personne.Prénom ; etc…).
Les images n’étant pas liées à des rubriques, on s’aperçoit qu’il faut gérer par programmation leur mise à
jour. Il en est de même pour la visibilité des potentiomètres…
Puisque ce code existe déjà dans la partie ‘modification’ du sélecteur Sel_sexe et dans l’interrupteur
Int_Sport, il est possible de demander l’exécution de ce code.
Pour cela, il suffit d’ajouter les lignes suivantes dans le code d’initialisation de la fenêtre :
ExécuteTraitement(SEL_sexe,trtModification) // mise à jour des images
ExécuteTraitement(INT_Sport,trtModification) // mise à jour des potentiomètres
8
11. Cas des champs non reliés à des rubriques
Si un champ n’est pas relié à une rubrique, par exemple Int_licence. Il faut gérer par programme la
sauvegarde de sa valeur dans la base de données (rubrique Personne.Licencié).
De même avant chaque affichage (après un lecture dans le fichier Personne, il faut exécuter
l’instruction suivante : Int_licence[1] = Personne.Licencié
9
13. Amélioration de la présentation
Modifier les styles et réorganiser les champs pour que la fenêtre ressemble à cette copie d’écran…
Lorsque l’utilisateur redimensionne la fenêtre, l’organisation spatiale des champs doit s’adapter.
10