I. Présentation▲
Objectifs : Connaître les objets de base de WinDev avec manipulation des :combo-box, interrupteurs,
tables mémoires. Pré requis : Connaître l'éditeur WinDev |
Pour cette seconde partie, nous allons créer des fenêtres comportant plusieurs objets de base dont
nous allons étudier le comportement.
- Créez un projet nommé TP2 sans Analyse et une fenêtre nommée « sélecteurs » et « Bonjour » pour Titre.
II. Champ Sélecteur▲
Insérez un champ sélecteur à l'intérieur de votre fenêtre.
Allez dans sa description (clic droit / Description) dans la zone Nom du champ inscrivez :
Civilité. Idem dans le Libellé du champ.
Dans la zone Options inscrivez :
Madame
Mademoiselle
Monsieur
Rajouter un champ de saisie que vous nommerez choix avec comme libellé « Elément sélectionné : ».
Votre fenêtre doit ressembler à ceci :
Vous allez faire en sorte que le champ « Elément sélectionné » se renseigne selon la Civilité.
Pour cela, allez dans le Code du champ « civilité » (clic droit) dans la zone « A
chaque modification de Civilité » et saisissez le code suivant :
SELON Civilité
CAS 1: choix="Madame"
CAS 2: choix="Mademoiselle"
CAS 3: choix="Monsieur"
FIN
Comme vous le remarquez, WinDev ne renvoi pas le libellé du choix effectué mais l'index (ou position) de l'élément (1, 2 ou 3).
Testez la fenêtre en cliquant sur Go.
III. Les listes déroulantes▲
Créez une nouvelle fenêtre que vous nommerez « liste » et « Liste déroulante »
en Titre. A droite de l'écran, cliquez sur le 2ème onglet puis sur le bouton droit
de la souris pour pouvoir choisir Nouvelle fenêtre.
A l'intérieur, placez :
Une combo (Créer une combo) que vous nommerez « liste » et qui aura comme libellé
« Civilité » (ne pas saisir de liste de valeurs à afficher).
Un champ de saisie nommé « choix » et ayant « Choix » comme libellé.
Un bouton nommé « remplir » et ayant comme libellé « Remplir la liste Civilité ».
La fenêtre ressemblera à ceci :
Nous allons programmer le bouton pour qu'il remplisse la combo avec les éléments souhaités (Madame,
Mademoiselle, Monsieur). Puis nous allons définir le comportement de la combo pour qu'elle affecte
le champ « choix ».
Dans la zone « Clic sur remplir » du Code du bouton écrivez le code suivant :
ListeSupprimeTout
(
liste)
// Pour éviter d'ajouter les éléments à chaque clic sur le bouton
ListeAjoute
(
liste,
"Madame"
)
ListeAjoute
(
liste,
"Mademoiselle"
)
ListeAjoute
(
liste,
"Monsieur"
)
Vérifiez que votre liste soit correctement remplie en cliquant sur le bouton Remplir puis en l'ouvrant avec la flèche vers le bas :
Dans la zone « sélection d'une ligne de. » du Code de la combo Civilité écrivez
le code suivant :
choix=liste..ValeurAffichée
Par cette simple ligne vous demandez à la combo de copier la valeur affichée dans le champ « choix ».
Sauvegardez et testez la fenêtre.
N'oubliez pas d'utiliser l'aide pour approfondir vos connaissances !!
IV. Les tables mémoires▲
Le champ table permet de simplifier l'affichage et la saisie d'informations stockées en mémoire ou
provenant d'un fichier de données, d'une vue ou d'une requête. Une table est composée de lignes et
de colonnes. L'intersection d'une ligne et d'une colonne définit une cellule. Une table peut être
gérée ligne par ligne, colonne par colonne ou cellule par cellule.
Les informations affichées dans la table peuvent :
- être déterminés par programmation : on parle alors de Table Mémoire ;
- provenir d'un fichier de données ou d'une requête : on parle alors de Table fichier.
Les tables permettent de sélectionner un ou plusieurs éléments de la table.
Pour créer un champ de type Table :
- Sous l'éditeur de fenêtres, cliquez sur l'icône .
- Cliquez dans la fenêtre à la position où le champ doit être créé. L'assistant de création d'un champ table se lance automatiquement.
Pour afficher les caractéristiques du champ, sélectionnez l'option « Description » dans
le menu contextuel du champ. Deux types d'informations peuvent être visualisées :
- les informations concernant la table dans son ensemble (il suffit de sélectionner le nom de la table) ;
- les informations concernant chacune des colonnes de la table (il suffit de sélectionner le nom d'une des colonnes de la table).
Pour notre exemple, créez une fenêtre nommée « tablemem » et « Table mémoire »
pour Titre, créez un champ de type table et positionnez le sur la fenêtre.
Indiquez à l'assistant que vous allez remplir la table vous-même. Cliquez sur Terminer pour
sortir de l'Assistant, sans vous soucier des autres choix qu'il vous propose. Nous allons modifier
manuellement les propriétés de la table.
Pour ce faire, cliquez sur la table avec le bouton droit de la souris pour faire apparaître le menu
contextuel. Choisissez « Description ».
Nommez la table « matable ».
Créez 3 colonnes en appuyant 2 fois sur le bouton « Nouveau ».
Pour la première colonne : Nommez la « Nom », son type restera Texte,
dans la zone « Titre » de l'onglet « Général » incrivez « LeNom ».
Dans la zone « tailledesaisie » inscrivez « 50 ».
Ainsi l'utilisateur ne pourra pas inscrire un nom de plus de 50 caractères.
Pour la deuxième colonne : Nommez la « Prénom », son type sera Texte,
dans la zone « Titre », inscrivez « LePrénom » et 20 caractères
de taille de saisie.
Pour la troisième colonne : Nommez la « Age », son type sera Numérique,
dans la zone « Titre » inscrivez « Age », dans la combo « masquedesaisie »
trouvez le masque « 999 » (en haut de liste), cela signifie que seuls des entiers
de 3 chiffres maximum seront acceptés.
Une fois ces manipulations réalisées vous pouvez cliquer sur « Appliquer » et « Ok »
pour valider vos choix.
Ajouter 4 Boutons :
Le premier se nommera « remplirtable » et aura comme libellé « Remplir » ;
Le second se nommera « supligne » et aura comme libellé « Supprimer » ;
Le troisième se nommera « videtable » et aura comme libellé « Viderlatable » ;
Le quatrième se nommera « quitter » et comme libellé « Quitter ».
Voici une représentation de votre fenêtre :
Nous allons étudier les différents codes permettant de remplir la table avec des informations, supprimer
la ligne sélectionnée, vider complètement la table et enfin fermer la fenêtre.
Dans la zone « Clic sur remplirtable » du bouton « Remplir », insérez
le code suivant (n'hésitez pas à employer le copier-coller pour éviter de le retaper) :
TableAjoute
(
matable,
"Auguy"
+
TAB
+
"Amandine"
+
TAB
+
14
)
TableAjoute
(
matable,
"Durand"
+
TAB
+
"Cédric"
+
TAB
+
11
)
TableAjoute
(
matable,
"Baptiste"
+
TAB
+
"Sylvain"
+
TAB
+
5
)
TableAjoute
(
matable,
"Dumas"
+
TAB
+
"Béatrice"
+
TAB
+
35
)
TableAjoute
(
matable,
"Martin"
+
TAB
+
"Jean-Luc"
+
TAB
+
37
)
« Auguy » correspond au Nom, « Amandine » au Prénom et « 14 » à l'âge. TAB indique le changement de colonne.
Utilisez l'aide pour avoir plus de renseignements sur la fonction Tableajoute.
Dans la zone « clic sur supligne » de « Supprimer », insérez le
code suivant :
TableSupprime
(
matable)
Dans la zone « clic sur videtable » de « Vider la table », insérez le code suivant :
TableSupprimeTout
(
matable)
Dans la zone « clic sur quitter » de « Quitter », insérez le code suivant :
Ferme
Testez les différents boutons et appuyez sur la loupe (à coté du nom de la colonne) pour tester son comportement par défaut.
Comme vous pouvez le constater, WinDev est puissant et peu de lignes de codes suffisent. Il est bien
évident que le remplissage de la table peut être fait à partir de la lecture d'un fichier.
Pour terminer ce cours, il nous reste à faire une fenêtre de départ comportant 3 boutons qui
ouvriront les différentes fenêtres.
Créez donc une nouvelle fenêtre vierge que vous nommerez « depart », son Titre
sera « Bonjour ». Insérez-y 4 boutons : 3 serviront à lancer les fenêtres, 1 à quitter
l'application :
Pour indication, le code d'ouverture d'une fenêtre est : ouvre, le code de fermeture est :
ferme. Je vous laisse mettre le code correspondant.
Il ne vous restera qu'à ne pas oublier d'enregistrer cette fenêtre pour pouvoir la déclarer comme
première fenêtre du projet.
Dans la zone exploratrice des éléments du projet, faites un clic droit sur la fenêtre départ et choisissez
« Premièrefenêtreduprojet ».
V. Exercice applicatif▲
Créez un projet exo1tp2 et une fenêtre nommée « départ » ressemblant à celle ci :
Le but de l'exercice, comme vous le voyez, est de remplir la table en utilisant dans le code du bouton
Calcul les valeurs contenues dans les champs « Multiplicateur » et « Profondeur ».
Pour ce faire, vous utiliserez la structure itérative « Pour ».
Comme toujours, n'hésitez pas à utiliser l'aide.