Windev 23 Auto Formation
Windev 23 Auto Formation
En saisissant ce code sous l’éditeur de code, vous constatez que les différentséléments saisis utilisent
des couleurs différentes. C’est la coloration syntaxique.L’éditeur de code permet ainsi d’identifier
rapidement les différents élémentsmanipulés par le code. Ainsi, dans l’éditeur de code utilisant le
thème clair :
Info
affiche le message passé en paramètre sur une ou plusieurs lignes. Notre mes-sage est construit à
partir du texte "Bonjour " et de la valeur du champ "SAI_Prénom". Le signe ","sépare les paramètres
de la fonction Info. Chaque paramètre est affiché sur une ligne différente.
N o t e s
Dans cet exemple, le texte saisi est affiché dans une fenêtre système, mais il estégalement possible de
l’afficher dans une fenêtre créée avec WINDEV.
1.
Cliquez sur parmi les boutons d’accès rapide (ou utilisez la touche [F9]).
2.
La fenêtre que vous avez créée est automatiquement sauvegardée puis elle se lance enexécution.
3.
4.
5.
Validez la fenêtre système qui s’affiche (cliquez sur le bouton "OK").Tout développeur sait que tester
un programme est souvent long, voire fastidieux. Avec WINDEV,en UN CLIC, vous testez la fenêtre,
l’état ou la procédure que vous êtes en train de réaliser. C’està la fois simple et rapide !
Fermez la fenêtre de test : cliquez sur le bouton de fermeture système de la fenêtre (bouton"x" situé
dans la barre de titre).
L’éditeur de WINDEV réapparaît. Fermez l’éditeur de code : sous le volet "Accueil", dans legroupe
"Général", cliquez sur "Fermer".
Une erreur est affichée dans le volet "Erreurs de compilation". Cette erreur indique que lafenêtre est
redimensionnable mais qu’aucun ancrage n’est défini. Ne vous inquiétez pas :Nous allons traiter cette
erreur dans le paragraphe suivant
N o t e s
Erreurs de compilation : Les erreurs signalent un problème grave (erreur deprogrammation, ...). Le
test ou l’exécution du projet ne pourra pas fonctionner.
Warning de compilation : Les warnings signalent des cas de programmationpouvant entraîner des
comportements inattendus.
Erreurs d’IHM : Les erreurs de compilation d’IHM vous informent des pro-blèmes potentiels détectés
sur vos interfaces : images inexistantes, libelléstronqués, ...
Améliorations de la fenêtre
votre fenêtre peut être redimensionnée alors qu’elle ne contient que deux champs,
le prénom saisi est affiché avec la casse utilisée dans le champ de saisie. Nous allons forcerl’utilisation
d’une majuscule en début de [Link] allons revoir rapidement l’interface de cette fenêtre.
1.
2.
Cliquez sur la poignée située en bas à droite et réduisez la taille de la fenêtre en mainte-nant le
bouton gauche de la souris enfoncé.
1.
2.
Dans l’onglet "IHM", décochez l’option "Redimensionnable" (il suffit de cliquer sur l’option).
3.
Validez.
N o t e s
Nous allons maintenant forcer l’utilisation d’une majuscule lors de la saisie et de l’affichagedu
prénom
N o t e s
Par défaut, les caractères seront saisis en majuscules ou en minuscules selonla position de la touche
[CAPSLOCK] du clavier. Ce type de saisie peut poser pro-blème lors d’une recherche par
[Link] propose la gestion d’un masque de saisie pour un champ. Le masquede saisie
permet de mettre en forme la valeur saisie, automatiquement et sansaucune ligne de code.
1.
Double-cliquez sur le champ "Prénom". La fenêtre de description du champ s’affiche.
2.
Dans l’onglet "Général", déroulez la liste "Masque de saisie" et choisissez "1ère lettre maj.".
3.
4.
Relancez le test de cette fenêtre pour visualiser le résultat en exé[Link] venez de créer
rapidement et avec succès votre première fenêtre. Nous allons dans la suitede ce cours découvrir de
nouveaux concepts de WINDEV.
Validez le message et fermez la fenêtre de test (cliquez sur la croix en haut, à droite de lafenêtre).
L’éditeur réapparaît.
Fermez la fenêtre "FEN_Bienvenue" affichée sous l’éditeur : sous le volet "Accueil", dans legroupe
"Général", cliquez sur "Fermer
N o t e s
Dans cette leçon, nous avons utilisé deux types de champs : un champ de saisieet un [Link]
propose plus d’une cinquantaine de champs. Pour découvrir l’utilisationde chaque type de champ,
des exemples unitaires sont à votre disposition.
1.
2.
3.
4.
Dans la catégorie "Exemples unitaires", sélectionnez l’exemple voulu (parexemple "Le champ Arbre")
et double-cliquez sur son nom : la fenêtre corres-pondante s’ouvre automatiquement sous
l’é[Link] : Pour simplifier, tous les exemples unitaires correspondant auxchamps
commencent par les mots "Le champ ". Vous pouvez saisir ces motsdans le champ de recherche de la
fenêtre de bienvenue.
Fermez le projet : sous le volet "Accueil", dans le groupe "Général", déroulez "Fermer" etsélectionnez
"Fermer le projet".
Après la pratique, revenons à un peu de théorie pour aborder les concepts de base de WINDEV etla
terminologie spécifique à WINDEV.
Concepts de base
WINDEV permet de créer simplement une application. Mais que recouvre exactement ce terme
Application
?Une
application
est un outil qui permet de réaliser des tâches, des actions automatiquement. Uneapplication est
constituée d’un programme exécutable (ou d’un ensemble de programmes exécu-tables), de
librairies, de fichiers de données, ...Un
programme exécutable
est un fichier composé d’éléments directement manipulables par l’uti-lisateur (fenêtres, états
imprimés, ...). C’est ce que lance l’utilisateur final d’une [Link] créer un exécutable,
WINDEV propose de créer un
projet
. Un projet relie entre eux les dif-férents éléments du programme et les organise. C’est à partir du
projet que pourra être créé leprogramme exé[Link] votre application manipule des données,
WINDEV permet de définir la structure de la base dedonnées grâce à
l’analyse
. L’analyse WINDEV contient la description des fichiers (appelés sou-vent "Tables" dans de
nombreuses bases de données). Ces fichiers contiendront les données del’application.
38
N o t e s
La description des fichiers de données dans l’analyse n’entraîne pas leur créa-tion. Les fichiers de
données sont créés physiquement uniquement à l’exécutionde l’[Link] ou plusieurs projets
WINDEV peuvent être liés à la même analyse. Dans ce cas, on parle d’ana-lyse partagée. Par exemple,
une application de gestion commerciale peut être séparée en plu-sieurs modules exécutables.
Chaque module utilise la même analyse (et en exécution, chaqueexécutable peut également utiliser
les mêmes fichiers de données).
Projet 1
Projet 2
Projet N
Analyse
Terminologie
Comme nous venons de le voir, un projet WINDEV (lié si nécessaire à une analyse) permet decréer
une application. Avant de commencer réellement à travailler avec WINDEV, revenons surles termes
utilisés dans WINDEV. En effet, si vous avez travaillé avec d’autres outils, de nombreuxtermes sont
spécifiques à WINDEV et ne recouvrent pas toujours la même signification que dansd’autres logiciels.
Dans l’analyse
Fichier
Table
" est réservé pour désigner un objet graphique permettant devisualiser le contenu d’un fichier de
données sous forme de tableau, et/ou de saisir des [Link] exemple, une table peut permettre de
saisir le détail d’une commande.
Enregistrement
39
Rubrique
: Dans l’analyse, le terme rubrique désigne une zone d’un fichier de données. L’en-semble des
rubriques d’un fichier de données permet de définir la structure d’un enregistre-ment.
Clé/Index
: Avec WINDEV et sa base de données HFSQL, la notion d’index est liée à la notion declé. La notion
de clé fait partie des caractéristiques d’une rubrique. Les clés permettent d’accé-lérer les accès aux
données ou de faciliter les parcours des fichiers de données. En WINDEV,si un fichier de données
HFSQL a plusieurs rubriques clés, en exécution, un seul fichier d’indexsera créé.
Fenêtre
: Les fenêtres permettent d’afficher ou de saisir à l’écran des informations. Les fenêtressont
également appelées "Écrans" ou "Boites de dialogue". L’utilisateur peut agir directementsur les
fenêtres par l’intermédiaire de champs, de boutons, ...
Etat
: Les états permettent d’obtenir une vue personnalisée d’informations. Ces informationspeuvent
provenir de la base de données, de fichiers texte, de champs présents dans les fe-nêtres, ... Les états
peuvent être visualisés à l’écran, imprimés sur papier, générés en PDF ouen HTML, ...
Champ
: Le mot "champ" est le terme utilisé pour désigner les différents objets graphiques affi-chés dans
une fenêtre ou dans un état.
Gabarit
: Le gabarit permet de définir le "look" de l’application : apparence visuelle des fenêtres,des boutons,
des champs, ...
Style
: Le style regroupe les caractéristiques graphiques d’un élément : image de fond, bordure,police, ...
Les styles des différents éléments constituant l’interface d’une application WINDEVsont regroupés
dans une feuille de styles.
I m p o r t a n t
40
EÇON
2.1. L
ES
VARIABLES
Dans un langage de programmation, une variable permet de conserver des données. Ce sont
desparties de la mémoire qui contiennent des chaînes, des nombres, [Link] variables permettent
d’effectuer des calculs mathématiques, de faire des comparaisons outout simplement de stocker des
informations pour les retrouver plus [Link] variable est représentée par :
une portée : Limite d’utilisation de la variable dans le programme. (voir Portée des variables).
Laportée est définie principalement par l’endroit où la variable est déclarée.
Avant d’utiliser une variable, il faut tout d’abord la déclarer (c’est-à-dire la créer).
Prix
est un
monétaire
•
Exemple de déclaration multiple :
Nom
Prénom
sont des
chaînes
Affectation et utilisation
Lorsque la variable est déclarée, il est possible de l’affecter (ou lui donner une valeur).Par exemple :
Prix =1256.67
Nom =“Dupont”
L’opérateur
N o t e s
En WLangage, le caractère " (double quote) est le caractère utilisé pour délimiterune chaîne de
caractères. Dans l’exemple ci-dessus, les doubles quotes sont uti-lisées pour affecter la valeur Dupont
à la variable [Link] contenu d’une variable peut aussi être lu et manipulé : il suffit tout simplement
d’utiliser lenom donné à la variable pour y accéder.L’exemple suivant permet de lire et d’afficher le
contenu de la variable Prix à l’écran :
Info(Prix)
45
es types de variables
Le type de la variable permet d’indiquer quelle est la forme de l’information que l’on stocke dansla
variable. Les types les plus basiques sont :
chaîne ("Dupont"),
entier (1234),
monétaire (12.32),
réel (7.766666),
etc.
I m p o r t a n t
Utilisez le type correspondant à l’information que vous voulez stocker. Vous opti-misez ainsi
l’utilisation de la mémoire mais surtout vous évitez des erreurs decalcul ou de traitement lors de
l’utilisation des variables dans les fonctions [Link] ce cours d’auto-formation, nous
allons utiliser la plupart de ces types de variables. Pourplus de détails, consultez l’aide en ligne
concernant le type voulu.
N o t e s
D’autres types existent comme les tableaux, les structures, les dates, les heures,...Il existe également
des variables de type "avancé". Ces types avancés regroupenttoutes les caractéristiques de l’élément
manipulé en une seule [Link] existe des types avancés notamment pour manipuler les documents
XML, lesemails, les fichiers XLS, ... Nous manipulerons ce type de variable dans la suitede ce cours.
Il est possible de déclarer les variables à n’importe quel endroit dans le code. Cependant, en fonc-tion
de la position de sa déclaration, la variable n’est pas utilisable (ou visible) pour effectuer
destraitements ou des calculs. On parle alors de portée des [Link] existe 2 types de portée :
Globale.
Locale.
Portée Globale
Le terme Global(e) signifie que la variable a une visibilité étendue dans le code. La variable estvisible
en dehors de l’endroit où elle a été déclarée. Il y a plusieurs niveaux de Globalité :
46
au niveau du projet
a la visibilité la plus importante dans le programme. Lavariable est visible partout, dans tous les
traitements du programme. Attention toutefois à ne pastrop déclarer de variables de cette portée :
en effet, la mémoire occupée par la variable est tou- jours réservée même si la variable n’est pas
utilisée. L’utilisation massive de variables globalesn’est pas conseillée dans l’architecture d’un
programme informatique. Pour passer les variablesà un traitement, il est conseillé d’utiliser des
paramètres (pour plus de détails, consultez "Para-mètres et résultat d’une procédure", page 74).Une
variable déclarée
à la même visibilité qu’une va-riable déclarée au niveau du projet. L’avantage de déclarer une
variable au niveau d’une Collec-tion est de regrouper (ou classer) les variables par thème (collection)
afin de rendre plus lisible letraitement d’initialisation du [Link] variable déclarée
limite la portée dela variable à tous les traitements de l’élément (Fenêtre, Fenêtre Mobile, Page ou
Etat) et de seschamps. Cela permet d’encapsuler et de limiter les utilisations.
Portée Locale
Le terme Local(e) signifie que la variable a une visibilité très limitée dans le code. La variable
estvisible uniquement dans le traitement où elle a été déclarée. Cela permet ainsi de
restreindrel’utilisation de la variable au traitement.
•
dans le code d’initialisation du projet (ou dans le code de déclaration de la collection de procé-dures).
La variable est globale au projet.
dans le code de déclaration des globales de la fenêtre, de la page ou de l’état. La variable estglobale à
l’élément (fenêtre, page ou état) dans lequel elle a été déclaré[Link] tous les autres cas, une variable
est locale au traitement dans lequel elle est déclarée.
47
Pour effectuer des calculs sur des variables, le WLangage met à disposition les opérateurs mathé-
matiques classiques :
/ pour faire une division.D’autres opérateurs peuvent être utilisés pour réaliser des calculs :
<> différent de
= égal àD’autres opérateurs sont disponibles. Pour plus de détails sur les opérateurs, consulter l’aide
enligne (mot-clé : "Opérateurs").
48
Conseils
Il est très pratique de nommer les variables avec des noms longs (et éviter les noms très courtsi, j,
k, ...). Lors de la relecture du programme, il est ainsi possible de se rappeler à quoi sert lavariable.
Pour définir le nom des variables, le WLangage accepte tous les caractères Unicode, y comprisles
accents. Autant en profiter pour plus de lisibilité ! Attention toutefois : certains caractèressont
interdits : espace, =, point, virgule, ...
Il est très important de donner le bon type à la variable en fonction de son utilisation. Parexemple,
pour stocker une suite de chiffres, il peut être nécessaire :
d’utiliser une variable de type numérique si cette variable doit être utilisée pour des calculs.
d’utiliser une variable de type chaîne si cette variable permet de stocker des chiffres sanseffectuer de
calculs (par exemple pour mémoriser le numéro de sécurité sociale).
Les variables de type Chaîne sont un des types de variables les plus utilisé[Link] allons détailler une
partie des fonctionnalités disponibles sur ce type de variable.
Le type Chaîne
Nous savons déjà que le type Chaîne permet de stocker et manipuler les caractères et les chaînesde
caractè[Link] avons déjà vu comment initialiser une variable de type chaîne :
Nom =“Dupont”
A s t u c e
Pour initialiser une variable de type chaîne avec un texte sur plusieurs lignes,utilisez la syntaxe
suivante :
Par exemple :
49
Il est également possible d’affecter une variable de type chaîne avec le contenu d’un champ ma-
nipulant des chaînes. Ainsi, le code permettant d’affecter une variable de type chaîne avec lecontenu
d’un champ de saisie est le suivant :
// Affectation d’une variable de type chaîne// avec le contenu du champ de saisie SAI_NOM
Nom =SAI_Nom
"~= " : Pour tester l’égalité soupleLe WLangage propose également des fonctions spécifiques
permettant de réaliser de nom-breuses opérations : recherche, extraction, taille, passage en
majuscules, ...Exemples :
ch est unechaînech =
“WINDEV est un outil formidable”
N o t e s
Le WLangage permet d’imbriquer les différentes fonctions WLangage. Une fonc-tion WLangage peut
être utilisée comme paramètre d’une autre fonction [Link] exemple :
Info(Milieu(Gauche(ch,13),8,3))
// Afche “est”
Pour plus de détails, consultez l’aide sur les chaînes de caractères et les fonctions de manipula-tion
des chaînes de caractères.
Exemple pratique
Pour manipuler les différents concepts de cette leçon, nous allons réaliser différentes fenê[Link]
fenêtres vont être créées dans le projet "WD Mes premières fenêtres".
Ouvrez si nécessaire le projet "WD Mes Premières Fenêtres".Pour cela, dans la fenêtre de bienvenue,
cliquez sur "Cours d’auto-formation" et sélectionnezle premier projet "Mes premières fenêtres
(Exercice)".Astuce : si la fenêtre de bienvenue n’est pas affichée, sous le volet "Accueil", dans le
groupe"Aide en ligne", déroulez "Guide d’Auto-formation" puis sélectionnez l’option "Mes
premièresfenêtres (Exercice)".
50
Pour manipuler les variables de type Chaîne de caractères que nous venons d’étudier, nous
allonsréaliser la fenêtre suivante :Cette fenêtre permet de :
1.
Cliquez surparmi les boutons d’accès rapide. La fenêtre de création d’un nouvel éléments’affiche :
cliquez sur "Fenêtre" puis sur "Fenêtre". L’assistant de création de fenêtres s’affiche.
2.
Sélectionnez "Vierge" et le gabarit "Elegant".
3.
Validez. La fenêtre est automatiquement créée sous l’éditeur. La fenêtre de sauvegarde del’élément
créé apparaît.
4.
5.
Validez les informations affichées dans la fenêtre de sauvegarde en cliquant sur le boutonvert.
1.
2.
3.
4.
5.
Sélectionnez l’onglet "Contenu". Cet onglet permet de définir la valeur par défaut du champde saisie.
Saisissez "WINDEV est un outil formidable".
6.
Le contenu du champ apparaît tronqué sous l’éditeur. Pour afficher correctement le champ :
1.
Sélectionnez le champ.
2.
Agrandissez le champ en largeur à l’aide des poignées de redimensionnement afin que lecontenu
apparaisse en entier.
51
1.
2.
3.
Cliquez sur le bouton que vous venez de créer. Le texte affiché dans le bouton passe enédition.
Saisissez le libellé "Rechercher une chaîne".
4.
5.
6.
7.
“WINDEV”
)SINON Info(sChaîneARechercher +
“ trouvé à la position ”
+nPos)FIN
Examinons ce code :
Deux variables sont déclarées : une variable de type Chaîne correspondant à la chaîne à re-chercher
et une variable de type Entier correspondant à la position de la chaîne recherchée.
La fonction WLangage
Position
permet de rechercher une chaîne dans une autre. Dansnotre exemple, nous recherchons le contenu
de la variable sChaîneARechercher dans lecontenu du champ SAI_Texte.
Si la fonction
Position
renvoie 0, cela signifie que la chaîne à rechercher n’a pas été trou-vée. Un message est affiché grâce
à la fonction
Info
1.
Cliquez sur parmi les boutons d’accès rapide (ou utilisez la touche [F9]).
2.
La fenêtre que vous avez créée s’enregistre puis se lance en exécution. Cliquez sur le bou-ton. Le mot
WINDEV est trouvé.
3.
Modifiez le contenu du champ de saisie (en remplaçant WINDEV par WD par exemple) etcliquez sur le
bouton. Le mot WINDEV n’est pas trouvé.
4.
Fermez la fenêtre.
52
Partie 2 : Les bases du WLangage
1.
2.
3.
Cliquez sur le bouton que vous venez de créer. Le texte affiché dans le bouton passe enédition.
Saisissez le libellé "Comparer deux chaînes".
4.
5.
6.
7.
“WINDEV”
+sChaîneAComparer)SINON Info(
+sChaîneAComparer)FIN
Examinons ce code :
Une variable de type Chaîne est déclarée. Cette variable contient la chaîne à comparer.
•
L’opérateur~= correspond à une égalité souple. Cet opérateur permet de faire une compa-raison sans
tenir compte de la casse, des espaces avant et après la chaîne et sans tenircompte des accents.
Si la comparaison est vraie, le champ de saisie correspond au mot contenu dans la chaîne àcomparer
quelle que soit la casse utilisée.
1.
Cliquez sur parmi les boutons d’accès rapide (ou utilisez la touche [F9]).
2.
Cliquez sur le bouton "Comparer deux chaînes". Le message indique que la comparaisonn’est pas
bonne.
3.
Validez le message.
4.
Dans le champ de saisie, saisissez "WINDEV" en majuscules, puis cliquez sur le bouton"Comparer
deux chaînes". Le mot WINDEV est trouvé. Validez le message.
5.
Modifiez le contenu du champ de saisie (en remplaçant WINDEV par WinDev par exemple)et cliquez
sur le bouton. Le mot WINDEV est également trouvé. Validez le message.
6.
Fermez la fenêtre.
53
Les tableaux sont également un type de variable très utilisé.Un tableau est un type structuré qui
permet de regrouper une série d’éléments de même [Link] élément du tableau est accessible
directement par son numéro d’ordre (indice).Des fonctions WLangage spécifiques permettent de
manipuler les tableaux et leurs éléments. Cesfonctions commencent par le préfixe "Tableau".
Déclaration
La déclaration d’une variable de type tableau se fait de la façon suivante :
Par exemple :
Entier
Lors de sa déclaration, le tableau est vide. L’ajout d’éléments est réalisé par la fonction
Ajoute
Pour accéder aux éléments d’un tableau, il suffit d’utiliser la syntaxe suivante :
I m p o r t a n t
“WINDEV”
)Ajoute(MonTableau,
“WEBDEV”
)Ajoute(MonTableau,
“WINDEV Mobile”
Trace(MonTableau[3])
54
A s t u c e
Initialisation rapide d’un tableau
// Déclare un tableautabJour est untableau de chaînes // Initialisation avec// les noms des jours de la
semainetabJour = [
“Lundi”
“Mardi”
“Mercredi”
“Jeudi”
“Vendredi”
“Samedi”
“Dimanche”
Le WLangage propose également des tableaux avancés : tableau à plusieurs dimensions, tableaude
tableaux, tableau associatif, tableau de structures, tableau d’objets, ... Pour plus de détails,consultez
l’aide en ligne (mot-clé : "Tableau").
55
EÇON
2.2. L
ES
INSTRUCTIONS
CONDITION
NELLES
L’instruction SI
L’instruction SELON
Exemple pratique
56
Présentation
Le WLangage est une suite d’instructions manipulant des donné[Link] instructions conditionnelles
permettent de comparer des variables et/ou des valeurs entreelles afin de faire des traitements
différents. Il existe plusieurs instructions conditionnelles :
SELON ...
L’instruction SI
Cette instruction permet d’exécuter une action ou une autre en fonction du résultat d’une expres-
sion. Si l’expression est vérifiée, un traitement est lancé ; si l’expression n’est pas vérifiée, unautre
traitement peut être lancé.L’instruction SI s’utilise comme ci-dessous :
SI <Expression à vérifier> ALORS Traitement à exécuter dans le cas où l’expression est vérifiéeSINON
Traitement à exécuter dans le cas contraireFIN
Exemple de code : Le code suivant sélectionne un nombre au hasard et selon la valeur affiche
unmessage.
)SINON Info(
)FIN
SI <Expression à vérifier> ALORS Ligne de code 1 Ligne de code NSINONLigne de code 1 Ligne de code
NFIN
57
L’instruction SELON
Cette instruction permet d’évaluer une expression et d’exécuter un traitement pour chaque
valeurpossible de l’expression.L’instruction SELON s’utilise comme ci-dessous :
Exemple : Le code suivant récupère la date du jour et selon sa valeur affiche un message diffé-rent.
Pour le 1er et le 15 du mois, un message spécifique est affiché. Dans les autres cas, la datedu jour est
affichée.
CAS1 :Info(
) CAS15 :Info(
+DateVersChaîne(D))FIN
Remarques
Si la ligne de code "CAS 1:..." est exécutée, les autres lignes de code correspondant aux
valeurspossibles ne sont pas exécutées.
Il est possible de regrouper dans le même cas plusieurs valeurs. Les différentes valeurs sontséparées
par une virgule. Par exemple :
Ind est un entier = 2SELON Ind CAS 1,2 : Info("Cas 1 ou 2") CAS 3 : Info("Cas 3")AUTRE CAS :
Info("Autre cas")FIN
58
Il est possible d’exécuter plusieurs lignes de code lors du traitement correspondant à une valeurde
l’expression. Dans ce cas, la syntaxe à utiliser est la suivante :
SELON <Expression>CAS Valeur 1 :Traitement 1 - Ligne de code 1... Traitement 1 - Ligne de code
2...CAS Valeur N :Traitement N - Ligne de code 1... Traitement N - Ligne de code 2...AUTRES CAS
Traitement ...FIN
Pour utiliser les instructions conditionnelles que nous venons d’étudier, nous allons réaliser lafenêtre
suivante :Deux manipulations sont disponibles :
Si l’utilisateur clique sur le bouton "Tester", la case cochée dans le sélecteur est affichée.
Projet manipulé
Pour manipuler les différents concepts de cette leçon, nous allons réaliser différentes fenê[Link]
fenêtres vont être créées dans le projet "WD Mes premières fenêtres".
Ouvrez si nécessaire le projet "WD Mes Premières Fenêtres".Pour cela, dans la fenêtre de bienvenue,
cliquez sur "Cours d’auto-formation" et sélectionnezle premier projet "Mes premières fenêtres
(Exercice)".Astuce : si la fenêtre de bienvenue n’est pas affichée, sous le volet "Accueil", dans le
groupe"Aide en ligne", déroulez "Guide d’Auto-formation" puis sélectionnez l’option "Mes
premièresfenêtres (Exercice)".
Partie 2 : Les bases du WLangage
59
Création de la fenêtre
1.
Cliquez sur parmi les boutons d’accès rapide. La fenêtre de création d’un nouvel éléments’affiche :
cliquez sur "Fenêtre" puis sur "Fenêtre". L’assistant de création de fenêtres s’affiche.
2.
3.
Validez. La fenêtre est automatiquement créée sous l’éditeur. La fenêtre de sauvegarde del’élément
créé apparaît.
4.
5.
Validez les informations affichées dans la fenêtre de sauvegarde en cliquant sur le boutonvert.
1.
Sous le volet "Création", dans le groupe "Champs usuels", cliquez sur "Interrupteur" puis cli-quez
dans la fenêtre à la position où le champ doit être créé (par exemple en haut de la fenêtre).
2.
Cliquez sur le champ que vous venez de créer : le libellé "Option 1" passe en édition.
3.
4.
Le libellé de l’option apparaît tronqué sous l’éditeur. Pour afficher correctement le champ :
1.
Sélectionnez le champ.
2.
3.
1.
2.
3.
Cliquez sur le bouton que vous venez de créer. Le texte affiché dans le bouton passe enédition.
Saisissez le libellé "Fermer".
4.
Ce bouton permet de fermer la fenêtre. Nous allons saisir le code WLangage correspondant :
1.
2.
Utilisez la touche [F2] : l’éditeur de code apparaît affichant les traitements associés au bou-ton.
3.
Dans le traitement "Clic sur BTN_Fermer", saisissez le code suivant :
Ferme()
La fonction
Ferme
60
Le bouton "Fermer" doit être invisible à l’ouverture de la fenêtre. Cette information corres-pond à son
"état initial". Nous allons modifier cet état dans la fenêtre de description duchamp :
1.
2.
3.
Dans l’onglet "IHM", modifiez l’état initial du champ en cliquant sur "Visible". Cette optionest
désormais décochée.
4.
5.
Le bouton "Fermer" est toujours visible sous l’éditeur. Nous avons changé son état unique-ment en
exécution.
6.
Enregistrez les modifications en cliquant sur parmi les boutons d’accès rapide (àgauche du ruban) ou
par la combinaison de touches [CTRL] + [S].
Instruction conditionnelle SI
Dans notre exemple, le clic sur l’interrupteur doit déclencher l’apparition du bouton [Link]
allons saisir le code WLangage associé à l’interrupteur.
1.
2.
Utilisez la touche [F2].
3.
SIINT_SansNom1=
Vrai
ALORS BTN_Fermer..Visible =
Vrai
SINON BTN_Fermer..Visible =
Faux
FIN
Examinons ce code :
A s t u c e
Pour manipuler le champ en cours dans un des traitements qui lui sontassociés, il est possible
d’utiliser le mot-clé MoiMê[Link] notre exemple, il est également possible d’écrire :
..Visible
N o t e s
Visible
est utilisée sur le champ BTN_Fermer.A tout moment, il est possible de consulter l’aide en ligne d’une
fonction oud’une propriété grâce à la touche [F1]. Pour plus de détails sur l’aide en ligne,consultez
"Comment accéder à l’aide en ligne ?", page 16.
1.
Cliquez sur parmi les boutons d’accès rapide (ou utilisez la touche [F9]).
2.
Dans la fenêtre en exécution, cliquez sur l’interrupteur. Le bouton "Fermer" devient visible.
3.
1.
Sous le volet "Création", dans le groupe "Champs usuels", déroulez "Sélecteur" (cliquez sur laflèche).
La liste des champs Sélecteurs proposés par défaut s’affiche.
2.
Dans la liste des champs, dans la catégorie "Pré-Rempli", cliquez sur le premier champ pro-posé (avec
"Monsieur").
3.
Cliquez dans la fenêtre pour créer le champ (par exemple sous le champ Interrupteur
crééprécédemment).
1.
2.
3.
Cliquez sur le bouton que vous venez de créer. Le texte affiché dans le bouton passe enédition.
Saisissez le libellé "Tester".
4.
62
Dans notre exemple, le bouton Tester permet de tester la valeur sélectionnée et d’afficher
unmessage.
1.
2.
3.
SELONSEL_
Civilités
4.
Lors de l’appui sur la touche [ENTREE] pour passer à la ligne suivante, l’éditeur de codeaffiche
automatiquement les différentes possibilités du SELON :
5.
SELONSEL_
Civilités // Monsieur CAS1 Info(
)FIN
Examinons ce code :
63
Le champ Sélecteur est un champ proposant plusieurs options (dans notre cas, 4). Seuleune option
peut être cochée à la fois. Le champ Sélecteur correspond en programmation àune variable de type
Entier. Chaque option est associée à une valeur. Si l’option est cochée,le champ Sélecteur a pour
valeur l’identifiant de l’option cochée.
Ce code teste la valeur du sélecteur. Selon la valeur du sélecteur, un message est affiché.
1.
Cliquez sur parmi les boutons d’accès rapide (ou utilisez la touche [F9]).
2.
Dans la fenêtre en cours de test, sélectionnez une option puis cliquez sur "Tester" : le mes-sage
correspondant à l’option sélectionnée s’affiche.
3.
Fermez la fenêtre.
64
Partie 2 : Les bases du WLangage
EÇON
2.3. L
ES
BOUCLES
L’instruction POUR
L’instruction BOUCLE
L’instruction TANTQUE
Exemple pratique
65
Présentation
POUR ...
BOUCLE ...
TANTQUE ...
L’instruction POUR
L’instruction POUR est utilisée lorsque l’on connaît le nombre d’occurrences à traiter. Cette ins-
truction permet de gérer le nombre d’occurrences à l’aide d’une variable dans laquelle on vacompter
les passages effectués dans la [Link] syntaxe de l’instruction POUR est la suivante :
Remarque : Il est possible de définir un pas d’incrémentation de l’indice grâce au mot-clé PAS.
Parexemple, le code suivant exécute 200 fois le traitement et la variable nCpt diminue de 10 en 10 :
L’instruction BOUCLE
L’instruction BOUCLE est utilisée pour faire des boucles lorsque le nombre d’occurrences à traitern’est
pas connu. Dans ce cas, il faut utiliser un test pour sortir de la [Link] syntaxe de l’instruction
BOUCLE est la suivante :
66
Par exemple :
A s t u c e
Exemple :
L’instruction TANTQUE
L’instruction TANTQUE fonctionne sur le même principe que l’instruction BOUCLE. La différenceréside
dans le fait que le test de la condition de sortie est effectué AVANT l’exécution du code dela boucle.
Ce test permet de comparer une variable. Cette variable commence à une valeur de dé-part et est
modifiée dans la boucle jusqu’à arriver à la valeur qui provoque la sortie de la [Link] syntaxe de
l’instruction TANTQUE est la suivante :
Par exemple :
67
Pour tester l’utilisation des boucles, nous allons créer une fenêtre dans laquelle nous allons dé-placer
un champ Image.
Projet manipulé
Pour manipuler les différents concepts de cette leçon, nous allons réaliser différentes fenê[Link]
fenêtres vont être créées dans le projet "WD Mes premières fenêtres".
Ouvrez si nécessaire le projet "WD Mes Premières Fenêtres".Pour cela, dans la fenêtre de bienvenue,
cliquez sur "Cours d’auto-formation" et sélectionnezle premier projet "Mes premières fenêtres
(Exercice)".Astuce : si la fenêtre de bienvenue n’est pas affichée, sous le volet "Accueil", dans le
groupe"Aide en ligne", déroulez "Guide d’Auto-formation" puis sélectionnez l’option "Mes
premièresfenêtres (Exercice)".
Création de la fenêtre
1.
Cliquez sur parmi les boutons d’accès rapide. La fenêtre de création d’un nouvel éléments’affiche :
cliquez sur "Fenêtre" puis sur "Fenêtre". L’assistant de création de fenêtres s’affiche.
2.
3.
Validez. La fenêtre est automatiquement créée sous l’éditeur. La fenêtre de sauvegarde del’élément
créé apparaît.
4.
5.
Validez les informations affichées dans la fenêtre de sauvegarde en cliquant sur le boutonvert.
Nous allons tout d’abord créer le champ Image puis nous créerons les boutons permettant
demanipuler cette image.
Pour créer un champ Image :
1.
Sous le volet "Création", dans le groupe "Champs usuels", cliquez sur "Image". Positionnez lechamp
dans la fenêtre.
2.
3.
Nous allons associer une image au champ Image grâce au catalogue d’images de WINDEV.
N o t e s
Dès qu’une image peut être affichée dans un champ ou une fenêtre, WINDEVpropose d’utiliser le
catalogue d’images. Ce catalogue d’images est lancé vial’option "Catalogue" (disponible en cliquant
sur le bouton ). Ce cataloguecontient plusieurs milliers d’images, de cliparts, ...
68
4.
Cliquez sur le bouton à droite du champ "Image". Dans le menu contextuel qui s’affiche,sélectionnez
l’option "Catalogue". La fenêtre du catalogue d’images apparaît.
5.
Saisissez "Animal" dans la zone de recherche. Lancez la recherche en cliquant sur la loupe.
6.
7.
Une fenêtre permettant de paramétrer l’image apparaît. Conservez les options par défautet validez.
8.
9.
Sauvez la fenêtre (CTRL S ou cliquez sur parmi les boutons d’accès rapide).
Nous allons maintenant créer un bouton permettant à l’image de se déplacer de 300 pixelsvers la
droite dans la fenêtre. Nous allons pour cela utiliser l’instruction POUR du WLangage.
1.
2.
Cliquez à l’emplacement de création du bouton (par exemple sous le champ Image).
3.
Cliquez sur le bouton que vous venez de créer. Le texte affiché dans le bouton passe enédition.
Saisissez le libellé "Instruction POUR".
4.
5.
6.
7.
..X
) dans une boucle de 1à 300. A chaque tour de boucle, l’abscisse augmente d’un pixel.
N o t e s
Lors de la saisie des instructions conditionnelles sous l’éditeur de code, l’éditeurde code propose dans
une liste les différentes syntaxes [Link] vous sélectionnez une de ces syntaxes, la structure de
l’instruction est auto-matiquement insérée dans l’éditeur de code. Il suffit de saisir le code correspon-
dant à chaque partie de l’instruction.
69
Créons maintenant un bouton permettant de déplacer l’image jusqu’au bord droit de lafenêtre. Nous
allons pour cela utiliser l’instruction TANTQUE du WLangage.
1.
2.
3.
Cliquez sur le bouton que vous venez de créer. Le texte affiché dans le bouton passe enédition.
Saisissez le libellé "Instruction TANTQUE".
4.
5.
6.
7.
TANTQUE
IMG_SansNom1..X <
FenIntLarg()
-IMG_SansNom1
..Largeur
IMG_SansNom1..X++FIN
..X
) jusqu’à ce qu’unecondition soit vraie. Dans notre cas, cette condition est la suivante : il faut que la
position del’image (sa propriété
..X
A s t u c e
Lorsqu’une ligne de code est trop longue pour rentrer dans la fenêtre de l’éditeurde code, il est
possible de la couper en 2 en utilisant le retour à la ligne.
Créons maintenant un dernier bouton permettant de déplacer l’image jusqu’au bord gauchede la
fenêtre. Nous allons pour cela utiliser l’instruction BOUCLE du WLangage.
1.
2.
Cliquez sur le bouton que vous venez de créer. Le texte affiché dans le bouton passe enédition.
Saisissez le libellé "Instruction BOUCLE".
4.
5.
6.
7.
BOUCLE
..X
70
Si cette condition est vraie, le programme sort de la boucle. Dans notre cas, la condition estla
suivante :
la position de l’image est inférieure à 0 (permet de gérer le cas où l’utilisateur appuie plu-sieurs fois
sur le bouton).
N o t e s
Lors de la saisie de ce code, l’instruction BOUCLE peut apparaître soulignée d’untrait vert et un
warning peut apparaître dans le volet des erreurs de [Link] warning rappelle qu’une
instruction de sortie doit être présente dans le codede la boucle pour éviter une boucle infinie.
Test de la fenêtre
Cliquez sur parmi les boutons d’accès rapide (ou utilisez la touche [F9]).
2.
3.
4.
71
EÇON
2.4. L
ES
PROCÉDURES
Types de procédures
Exemple pratique
72
Une procédure permet d’associer un identificateur à une portion de code afin de la ré[Link]
cette leçon, nous allons voir les différents types de procédures existant en WLangage, leurmode de
création, comment les appeler, leur passer des paramètres et récupérer un résultat.
Types de procédures
Procédure globale
: utilisable dans tous les traitements du projet (déclarée dans une collectionde procédures).
Procédure locale
à une Fenêtre, Page ou Fenêtre mobile : utilisable dans tous les traitementsdépendant de l’objet
dans lequel cette procédure a été déclarée.
Procédure interne
à un traitement : utilisable uniquement dans le traitement dans lequel elle aété déclarée.
N o t e s
Les procédures respectent les règles de portée que nous avons détaillées pourles variables (voir "La
portée des variables", page 46).
Procédure globale
, il faut :
1.
2.
Créer une procédure globale dans la collection de procédures (via le volet "Explorateur deprojet",
dossier "Procédures, Nom de la collection"). Donner un nom à la procédure.
3.
, il faut :
1.
2.
Créer une procédure locale (par exemple via le volet "Explorateur de projet", déroulez lenom de
l’élément, dossier "Procédures locales").
3.
4.
73
Procédure interne
, il suffit d’utiliser directement le nom de la procédure (avec éventuel-lement les paramètres à lui
passer).
Un paramètre est une valeur envoyée à une procédure lors de l’appel de la procédure.L’exemple
suivant permet d’appeler la procédure
Multiplie10
Il est possible de passer de 0 à plusieurs valeurs en paramètre à une procédure. Ces valeurspeuvent
être de tout type (comme pour les variables).Le paramètre est spécifié dans la déclaration de la
procédure sous forme de variable. Parexemple, pour la procédure
Multiplie10
PROCEDURE Multiplie10(P)P=P*10
N o t e s
Pour préciser la fonction du paramètre dans la procédure, il est possible de typerle paramètre dans la
déclaration de la procé[Link] exemple, pour n’utiliser que des numériques, il est possible de
déclarer :
Multiplication
(ou par adresse). Le para-mètre dans la procédure représente (référence) directement la variable
passée lors de l’[Link], lorsqu’une instruction de la procédure modifie la valeur du paramètre, la
valeur de la va-riable correspondant à ce paramètre est modifié[Link] :
PROCEDURETest_adresse(P1)P1 =P1 *2
PROCEDURETest_valeur(LOCALP1)// Local indique que le paramètre sera passé par valeurP1 =P1 *2
75
Multiplication
(ou par adresse). Le para-mètre dans la procédure représente (référence) directement la variable
passée lors de l’[Link], lorsqu’une instruction de la procédure modifie la valeur du paramètre, la
valeur de la va-riable correspondant à ce paramètre est modifié[Link] :
PROCEDURETest_adresse(P1)P1 =P1 *2
PROCEDURETest_valeur(LOCALP1)// Local indique que le paramètre sera passé par valeurP1 =P1 *2
75
N o t e s
Dans une même procédure, certains paramètres peuvent être passés paradresse et d’autres
paramètres peuvent être passés par valeur. Il suffit d’utiliserle mot-clé LOCAL devant chaque
paramètre passé par valeur.
N o t e s
Dans la déclaration d’une procédure, les paramètres optionnels sont toujoursles derniers paramètres
spécifiés (après tous les paramètres obligatoires).Dans l’exemple suivant, la procédure
Multiplication
utilise un paramètre optionnel, Nb2. Ce para-mètre optionnel est indiqué après les paramètres
obligatoires, en précisant sa valeur par dé[Link] cet exemple, le paramètre optionnel a pour
valeur par défaut 10.
Dans cet exemple, le second paramètre n’a pas été précisé. C’est donc sa valeur par défaut quiest
utilisée.
Les procédures peuvent retourner un ou plusieurs résultats. Le résultat peut être typé. Il faut utili-ser
le mot-clé RENVOYER pour retourner une [Link] plus de détails, consultez l’aide en ligne (mot-
clé : Renvoyer).
76
Créer un bouton permettant de calculer et afficher la valeur TTC du montant HT [Link] résultat du
calcul sera affiché dans le champ "Prix TTC".Cette fenêtre est la suivante :
Projet manipulé
Pour manipuler les différents concepts de cette leçon, nous allons réaliser différentes fenê[Link]
fenêtres vont être créées dans le projet "WD Mes premières fenêtres".
Ouvrez si nécessaire le projet "WD Mes Premières Fenêtres".Pour cela, dans la fenêtre de bienvenue,
cliquez sur "Cours d’auto-formation" et sélectionnezle premier projet "Mes premières fenêtres
(Exercice)".Astuce : si la fenêtre de bienvenue n’est pas affichée, sous le volet "Accueil", dans le
groupe"Aide en ligne", déroulez "Guide d’Auto-formation" puis sélectionnez l’option "Mes
premièresfenêtres (Exercice)".
Mise en place
1.
Cliquez sur parmi les boutons d’accès rapide. La fenêtre de création d’un nouvel éléments’affiche :
cliquez sur "Fenêtre" puis sur "Fenêtre". L’assistant de création de fenêtres s’affiche.
2.
Sélectionnez "Vierge" et le gabarit "Elegant".
3.
Validez. La fenêtre est automatiquement créée sous l’éditeur. La fenêtre de sauvegarde del’élément
créé apparaît.
4.
5.
Validez les informations affichées dans la fenêtre de sauvegarde en cliquant sur le boutonvert.
1.
Sous le volet "Création", dans le groupe "Champs usuels", déroulez "Saisie" (cliquez sur laflèche). La
liste des différents champs de saisie disponibles s’affiche. Sélectionnez le champ"Monétaire" et
positionnez le champ dans la fenêtre.
2.
3.
4.
Validez.
77
1.
Sous le volet "Création", dans le groupe "Champs usuels", déroulez "Saisie" (cliquez sur laflèche). La
liste des différents champs de saisie disponibles s’affiche. Sélectionnez le champ"Monétaire" et
positionnez le champ dans la fenêtre (par exemple sous le champ de saisie affi-chant le prix HT).
2.
Saisissez les informations du champ : faites un clic droit sur le champ et sélectionnez l’op-tion
"Description".
3.
Le résultat affiché dans ce champ ne doit pas être modifiable. Cliquez sur l’onglet "IHM" etchoisissez
l’état initial "Affichage seul".
4.
Validez.
5.
Sauvez la fenêtre.
1.
Sous le volet "Création", dans le groupe "Champs usuels", cliquez sur "Combo" puis cliquezdans la
fenêtre à la position où le champ doit être créé (à côté du champ "Prix HT").
2.
L’assistant de création d’un champ Combo s’affiche. Cet assistant permet de définir sim-plement les
principales caractéristiques du champ.
3.
Sélectionnez l’option "Remplir la combo par programmation ou saisir directement une listede
valeurs".
4.
5.
Conservez les options proposées par défaut. Affichez les étapes suivantes.
6.
Dans l’étape intitulée "Contenu initial", saisissez la liste des valeurs de TVA possibles :
•
5.5
10
20.
78
1.
Sous le volet "Création", dans le groupe "Champs usuels", déroulez "Saisie" (cliquez sur laflèche). La
liste des différents champs de saisie disponibles s’affiche. Sélectionnez le champ"Monétaire" et
positionnez le champ dans la fenêtre (par exemple sous le champ de saisie affi-chant le prix HT).
2.
Saisissez les informations du champ : faites un clic droit sur le champ et sélectionnez l’op-tion
"Description".
3.
Le résultat affiché dans ce champ ne doit pas être modifiable. Cliquez sur l’onglet "IHM" etchoisissez
l’état initial "Affichage seul".
4.
Validez.
5.
Sauvez la fenêtre.
1.
Sous le volet "Création", dans le groupe "Champs usuels", cliquez sur "Combo" puis cliquezdans la
fenêtre à la position où le champ doit être créé (à côté du champ "Prix HT").
2.
L’assistant de création d’un champ Combo s’affiche. Cet assistant permet de définir sim-plement les
principales caractéristiques du champ.
3.
Sélectionnez l’option "Remplir la combo par programmation ou saisir directement une listede
valeurs".
4.
5.
Conservez les options proposées par défaut. Affichez les étapes suivantes.
6.
Dans l’étape intitulée "Contenu initial", saisissez la liste des valeurs de TVA possibles :
5.5
10
20.
78
7.
8.
Validez.
1.
2.
3.
Cliquez sur le bouton que vous venez de créer. Le texte affiché dans le bouton passe enédition.
Saisissez le libellé "Calculer".
4.
1.
Affichez le code du champ "Calculer" (option "Code" du menu contextuel par exemple).
2.
SELONCOMBO_TVA
..ValeurAfchée
Ce code calcule le montant TTC en utilisant la valeur sélectionnée dans le champ Combo(donnée
obtenue avec la propriété
..ValeurAffichée
).
79
3.
Testez votre fenêtre ( parmi les boutons d’accès rapide). Donnez un prix HT. Sélection-nez les
différentes valeurs dans le champ Combo et cliquez sur le bouton "Calculer".Maintenant, notre
fenêtre fonctionne correctement.
Cependant, au lieu d’utiliser 3 fois une for-mule pour calculer le prix, il est possible d’utiliser une
procédure pour effectuer ce calcul.
1.
2.
3.
Sous l’éditeur de code, sous le volet "Code" présent dans le ruban, dans le groupe "Procé-dures",
déroulez "Nouveau" et sélectionnez "Nouvelle procédure locale".
4.
Dans la fenêtre qui s’affiche, saisissez le nom de la procédure locale "Calcul_TTC" et validez(bouton
"Ajouter").
5.
La nouvelle procédure locale à la fenêtre est automatiquement créée et son code est affi-ché sous
l’éditeur de code.
6.
Examinons ce code :
La procédure Calcul_TTC attend 2 paramètres : le prix hors taxe et le montant du taux deTVA.
Cette procédure déclare une variable de type monétaire. Cette variable permet de stocker lemontant
du prix TTC calculé.
7.
Fermez l’éditeur de code.
N o t e s
Lors de la création d’une procédure, des commentaires sont automatiquementgénérés AVANT le code
de la procédure. Ces commentaires permettent notam-ment de préciser le contenu des paramètres
et de la valeur de [Link] est important de remplir ces commentaires. En effet, ils seront
automatique-ment affichés dans une bulle d’aide lors de la saisie de l’appel de la procéduresous
l’éditeur de code.
80
1.
2.
3.
SELONCOMBO_TVA
..ValeurAfchée
Ce code appelle la procédure Calcul_TTC pour calculer le montant TTC. Deux paramètres sontpassés à
la procédure : le prix HT et le taux de la TVA. Le résultat renvoyé par la procédureest directement
affecté au champ SAI_PrixTTC.
1.
Testez votre fenêtre ( parmi les boutons d’accès rapide). Donnez un prix HT. Sélectionnezles
différentes valeurs dans le champ Combo et cliquez sur le bouton "Calculer".
2.
3.
Conclusion
Cette partie vous a permis d’aborder les principaux concepts de la programmation WLangage
deWINDEV. De nombreuses autres fonctionnalités sont disponibles. Vous en découvrirez certainesen
suivant ce guide d’[Link] WLangage est un langage très puissant permettant de
développer également des applicationsutilisant :
des types avancés (XML, Email, ...), ...Pour plus de détails, consultez l’aide en ligne concernant le sujet
voulu.
81
EÇON
2.5. Q
UESTIONS
/R
ÉPONSES
Questions / Réponses
Durée estimée : 10 mn
82
Questions / Réponses
Question
Pour visualiser l’élément correspondant au traitement en cours, sous le volet "Code", dans legroupe
"Navigation", cliquez sur "Aller à l’objet" (CTRL + ALT + F2). La fenêtre contenant l’élémentvoulu
s’affiche.
Question
Le code source en cours peut être imprimé directement en cliquant sur l’icône dans le volet"Accueil"
ou grâce à la combinaison de touches [CTRL] + [P].
Question
Les fonctions de recherche ou de remplacement (dans le code, l’interface, ...) sont accessiblesdepuis
le volet "Accueil", dans le groupe "Rechercher" ou dans le volet "Rechercher - Remplacer"(CTRL +
F) :Vous pouvez ensuite définir les différentes caractéristiques de la recherche à effectuer.
83
Question
L’éditeur de code permet d’enrouler ou de dérouler le code WLangage. Cette fonctionnalité esttrès
utile si vos traitements utilisent de nombreuses instructions structurées (boucles,
condition,parcours, ...).Pour replier un code, sous le volet "Affichage", déroulez "Replier" et
sélectionnez l’option de menu"Replier tout" (ou le raccourci [CTRL] + [SHIFT] + * (du clavier
numérique)).Seuls les commentaires restent visibles. Le survol de chaque ligne de commentaire
permet devisualiser le code associé dans une bulle :La combinaison de touches [CTRL] + * (du clavier
numérique) permet de déplier tout le code. Leclic sur les symboles "-" ou "+" permet d’enrouler ou
de dérouler uniquement la partie de codecorrespondante.
Question
L’appui de la touche [F6] permet d’afficher les informations (nom et date de la création/modifica-tion)
de chaque ligne de code.
Question
Dans l’éditeur de code, pour activer (ou non) la numérotation des lignes de code, sous le volet "Af-
fichage", dans le groupe "Aide à l’édition", cliquez sur "Afficher les numéros de ligne" (raccourci :
[CTRL]+[SHIFT]+[G]).
84
LitPremier
: l’option <Assistant> permet de lancerun assistant de code. Cet assistant vous pose différentes
questions sur l’utilisation de la fonctionet génère automatiquement le code [Link] les
fonctions et les propriétés du WLangage ont une aide associée. Cette aide est directe-ment accessible
depuis l’éditeur en appuyant sur la touche [F1] sur le nom de la fonction ou de lapropriété voulue.
Question
[F2] sur le nom d’un champ, d’une méthode, d’une classe, d’une procédure ou d’un bloc d’étataffiche
le traitement de cet objet.
[CTRL]+[F2] permet de revenir au traitement [Link] est possible par l’appui répété sur la touche [F2]
de se déplacer d’un traitement à unautre. Pour revenir sur le traitement initial, il suffit d’appuyer
autant de fois sur les touches[CTRL]+[F2].
[CTRL]+[D] duplique la ligne en cours (ou les lignes sélectionnées) sur la ligne du dessous.
[CTRL]+[/] met en commentaires les lignes sélectionnées, [CTRL]+[SHIFT]+[/] enlève les com-
mentaires (Attention touche [/] du pavé numérique).
85
Question
Il suffit d’utiliser une boîte de dialogue avancée. Ces boîtes de dialogue permettent de gérer :
Dialogue
) : l’utilisateur répond à une question grâce à desboutons contenant le texte de l’action à effectuer.
•
la saisie immédiate (fonction
Saisie
1.
Ouvrez si nécessaire le projet "WD Mes premières fenêtres" : sous le volet "Accueil", dans legroupe
"Aide en ligne", déroulez "Guide d’Auto-formation" puis sélectionnez "Mes premières fe-nêtres
(Corrigé)".
2.
Ouvrez la fenêtre "FEN_Dialogue". Cette fenêtre illustre les différents modes de dialoguepossibles.
3.
4.
Cliquez sur les différents boutons pour tester les différents modes de dialogue.
5.
Arrêtez le test de cette fenêtre et revenez sous l’éditeur de code pour étudier le code dechaque
bouton.
86
EÇON
3.1. P
RÉSENTATION
89
Présentation du projet réalisée dans cette partie
Dans cette partie, nous allons créer un projet associé à une base de données [Link] allez ainsi
découvrir des éléments clés de la conception d’une application :
Description des fichiers de données manipulés par l’[Link] une prochaine partie, nous nous
concentrerons sur le développement des éléments (fe-nêtres, états, ...) d’une application avec
données, que nous développerons de A à Z, de la créationde l’interface à la distribution finale. Vous
verrez ainsi tous les points importants du développe-ment d’une [Link] cette partie, la
base de données que nous allons créer ensemble est une gestion de [Link] même type de
base de données sera ensuite utilisé dans la partie 4 de ce cours pour déve-lopper une application
complète. La base de données utilisée est HFSQL Classic, la base de don-nées gratuite fournie avec
WINDEV. Plus loin dans ce cours, nous étudierons la base de donnéesHFSQL Client/Serveur.
90
EÇON
3.2. WINDEV
ET
LES
BASES
DE
DONNÉES
Vocabulaire utilisé.
91
Présentation
Lors de la conception d’une application, vous pouvez être amené à manipuler des données. Pourles
stocker, vous devez constituer ce que l’on nomme "une base de données".Dans WINDEV, lors de la
création d’un projet manipulant des données, vous devez tout d’abordcréer une "analyse".Une
"analyse" contient la description des fichiers de données (ou tables) contenant les donnéesde
l’application.C’est seulement lors de l’exécution de l’application, que ces descriptions sont utilisées
pour créerla base de données et/ou les fichiers de données. C’est dans cette base ou dans ces fichiers
dedonnées que seront stockées les informations.
N o t e s
Plusieurs outils de maintenance des bases de données HFSQL sont livrés enstandard avec WINDEV. Ils
sont accessibles depuis le Centre de Contrôle [Link] sait gérer différents formats de base de
données (pour ne pas dire tous). Les formats lesplus courants sont :
HFSQL, système de base de données intégrée à WINDEV et livrée en standard. La base dedonnées
HFSQL est disponible en mode Classic ou Client/Serveur.
HFSQL
HFSQL est une base de données à la fois très puissante, très rapide et très [Link] fonctionne
sous Windows et Linux, sur Mobiles (iOS, Android, Windows CE, Windows 10),sur les réseaux de
toute taille et de tout type, et gère automatiquement plusieurs centaines d’ac-cès simultané[Link]
diffusion de HFSQL est libre et gratuite avec vos applications [Link] propose toutes les
fonctionnalités d’une base de données, notamment :
la journalisation,
les transactions,
la réplication,
les [Link] plus de détails sur la mise en place de ces fonctionnalités, consultez l’aide en
[Link] les différentes parties de ce cours d’auto-formation, nous allons manipuler une base
dedonnées HFSQL Classic puis une base HFSQL Client/Serveur.
•
SQLite (en standard)
Oracle (optionnel)
AS/400 (optionnel)
Sybase (optionnel)
Informix (optionnel)
DB2 (optionnel)
Progress (optionnel)
SQL Azure (optionnel et gratuit)D’autres Connecteurs Natifs seront bientôt disponibles, contactez
notre service commercial !Les fonctions WLangage
SQL*
et
HLit*
sont utilisables avec ce type d’accès. Le code est ainsiportable et indépendant de la base de données.
93
Accès ODBC direct
Un accès via ODBC direct utilise un standard d’accès multibase. Vous devez installer la coucheODBC
sur votre machine. Cette couche est en général déjà installée sur les versions récentes deWindows.
Vous pouvez le vérifier dans le panneau de configuration de Windows en choisissantl’option "Source
de données ODBC" (ou "Administrateur ODBC" selon la version de Windows utili-sée).Attention :
toutes les bases de données ne sont pas obligatoirement accessibles via cette mé-thode. Si vous
souhaitez utiliser ce type d’accès, vérifiez qu’il existe un pilote ODBC et installez cepilote si
né[Link] les fonctions WLangage
SQL*
Accès OLE DB
Un accès via OLE DB est un accès qui utilise un standard d’accès multi-bases. Ce type d’accès estbasé
sur le MDAC (Microsoft Data Access Component) de Microsoft.
A t t e n t i o n !
Si vous utilisez un accès OLE DB, vous devez obligatoirement installer le MDACsur les postes
utilisateurs (version 2.6 minimum).Toutes les bases de données ne sont pas obligatoirement
accessibles via cette méthode. Si voussouhaitez utiliser ce type d’accès, vérifiez qu’il existe un pilote
OLE [Link] fonctions WLangage
SQL*
et
HLit*
En résumé, il s’agit d’un "mélange" de OLE DB et de ODBC. Cette technique est la plus "lourde" etla
moins efficace en terme de performances. Il est déconseillé de l’utiliser sur des bases de
[Link] fonctions WLangage
SQL*
et
HLit*
94
EÇON
3.3. P
ROJET
ET
ANALYSE
Durée estimée : 40 mn
95
Présentation
Créer le projet lié à l’application. Ce projet regroupera tous les éléments de l’application (fe-nêtres,
codes, requêtes, états, ...).
Créer l’analyse liée au projet. L’analyse permet de décrire tous les fichiers de données manipu-lés par
l’application.
N o t e s
Cette leçon permet de créer une application avec une base de données [Link] nous l’avons
vu dans la leçon précédente, WINDEV permet également decréer des applications manipulant
d’autres bases de donné[Link] leçon "Annexe 2.2. Utiliser des données SQL", page 450 présente les
mani-pulations nécessaires pour créer un projet et une analyse basés sur une base dedonnées SQL
(via OLE DB ou via un Connecteur Natif).
Création du projet
1.
Lancez WINDEV si ce n’est pas déjà fait. Si nécessaire fermez le projet en cours.
2.
Dans la fenêtre de bienvenue, cliquez sur le bouton "Créer un projet", puis sur l’option "Ap-plication
Windows ou Linux". L’assistant de création de projet se lance. Les différents écransde l’assistant vont
vous aider à créer votre projet. Tous les renseignements indiqués dans cetassistant pourront être
modifiés par la suite.
A s t u c e
1.
2.
3.
Le premier écran de l’assistant permet de saisir le nom du projet, son emplacement et sadescription.
Dans notre cas, ce projet va simplement s’appeler "WD Ma Première Base DeDonnées". Par défaut,
WINDEV propose de créer ce projet dans le répertoire "\Mes projets\ WD Ma Première Base De
Données". Vous pouvez conserver cet emplacement ou le modifiergrâce au bouton [...]. Pour le
résumé du projet, saisissez "Le projet a pour but de gérer desclients et leurs commandes".
96
4.
Les différentes étapes de l’assistant sont indiquées à gauche de l’assistant. Ces étapessont
directement clicables. Les autres écrans de l’étape "Description" n’étant pas fondamen-taux, cliquez
directement sur "Chartes".
5.
Cette étape permet de définir la charte de programmation utilisée. Ne modifiez pas lesoptions
proposées. Passez à l’étape suivante à l’aide des flèches situées en bas.
6.
Cette étape permet de définir la charte graphique. Sélectionnez "Gensteel". Passez àl’étape suivante à
l’aide des flèches situées en bas.
7.
Cliquez sur l’étape "Base de données". Nous allons maintenant donner les renseignementsconcernant
la base de données.
8.
Sélectionnez l’option "Oui, créer une nouvelle base de données" et validez. L’assistant decréation de
l’analyse se lance.
1.
Indiquez le nom et le répertoire de l’analyse. Par défaut, le nom de l’analyse correspond aunom du
projet et le répertoire de l’analyse est un répertoire ".ana" dans le répertoire du [Link] allons
conserver ces paramètres par défaut. Passez à l’étape suivante de l’assistant.
2.
Vous pouvez ensuite choisir le ou les types de bases de données manipulées par le
projet.Sélectionnez HFSQL Classic (la base de données proposée par défaut avec WINDEV).Passez à
l’étape suivante de l’assistant.
3.
98
N o t e s
Pour suivre les différentes leçons de cette partie et optimiser votre apprentis-sage de WINDEV, il est
conseillé de créer le projet "WD Ma Première Base DeDonnées".Un exemple corrigé est disponible à
tout moment pour vérifier la validité des opé-rations effectué[Link] ouvrir ce projet corrigé, sous le
volet "Accueil", dans le groupe "Aide enligne", déroulez "Guide d’Auto-formation" puis sélectionnez
"Ma première base dedonnées (Corrigé)".
Création de l’analyse
1.
Indiquez le nom et le répertoire de l’analyse. Par défaut, le nom de l’analyse correspond aunom du
projet et le répertoire de l’analyse est un répertoire ".ana" dans le répertoire du [Link] allons
conserver ces paramètres par défaut. Passez à l’étape suivante de l’assistant.
2.
Vous pouvez ensuite choisir le ou les types de bases de données manipulées par le
projet.Sélectionnez HFSQL Classic (la base de données proposée par défaut avec WINDEV).Passez à
l’étape suivante de l’assistant.
3.
98
Partie 3 : Ma première base de données
Client,
Commande,
ModeRèglement,
LigneCommande,
[Link] créer les différents fichiers de données de cette analyse, nous allons utiliser différentes
mé-thodes disponibles dans WINDEV.
99
Les étapes de l’assistant de création d’un fichier de données sont les suivantes :
1.
Sélectionnez dans l’assistant l’option "Sélectionner une description parmi des fichiers dedonnées
prédéfinis". Passez à l’étape suivante de l’assistant (flèche en bas de l’assistant).
2.
La liste des fichiers de données prédéfinis est affichée. Nous allons créer le fichier "Client".Dans la
liste des fichiers de données, sélectionnez "Client". Passez à l’étape suivante.
3.
L’assistant propose la liste des rubriques à intégrer dans le fichier Client. Cette liste
estimpressionnante car elle permet de gérer de nombreux types de fichiers Client.
4.
Cochez uniquement les rubriques suivantes : IDClient, Société, Nom, Prénom, Adresse, Co-dePostal,
Ville, EtatDep, Pays, Téléphone, Mobile, Email.
5.
Validez l’assistant.
100
Partager ce document
Options de partage
Partager sur Facebook, ouvre une nouvelle fenêtrePartager sur Twitter, ouvre une nouvelle
fenêtrePartager sur LinkedIn, ouvre une nouvelle fenêtrePartage par courriel, ouvre le client de
courrielCopier le lien
WEBDEV Programming
WEBDEV Programming
Document
441 pages
WEBDEV Programming
Selim [Link]
100% (1)
Document
453 pages
KONE
Pas encore d'évaluation
Autoformation_WinDev.pdf
Autoformation_WinDev.pdf
Document
453 pages
Autoformation_WinDev.pdf
Magazines
Podcasts
Partition
Document
514 pages
lukusa
Document
198 pages
api-3750267
100% (1)
PDF Solidworks
PDF Solidworks
Document
240 pages
PDF Solidworks
AzaphIvanov TAKOUDJOU
Pas encore d'évaluation
Rapport
Rapport
Document
8 pages
Rapport
Manuel-des-nouveautes-v24
Manuel-des-nouveautes-v24
Document
68 pages
Manuel-des-nouveautes-v24
Wafaa
virus-b-mode-d-emploi-francais-476429
virus-b-mode-d-emploi-francais-476429
Document
87 pages
virus-b-mode-d-emploi-francais-476429
malik hamana
Axiom 49
Axiom 49
Document
49 pages
Axiom 49
humanyze
Ethnos_7-5_FRA.pdf
Ethnos_7-5_FRA.pdf
Document
187 pages
Ethnos_7-5_FRA.pdf
samvip
pinnaclestudio (1)
pinnaclestudio (1)
Document
345 pages
pinnaclestudio (1)
Gilles VERRIERE
Voir plus