Connaître les objets de base de WinDev

Jean Luc Baptiste

Connaître les objets de base de WinDev. Manipulation des Combo-box, des interrupteurs, des tables mémoires, … Vous aborderez certains grands classiques de programmation tout en douceur.

- Titre : Connaître les objets de base de WinDev

- Auteur : Jean Luc Baptiste

- Parution : 27 novembre 2008

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2008 Jean Luc Baptiste. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Présentation

- II. Champ Sélecteur

- III. Les listes déroulantes

- IV. Les tables mémoires

- V. Exercice applicatif

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.