1.3 · Les bases du WLangage (variables, conditions, boucles)

Niveau 1 · Débutant : première application

1.3Les bases du WLangage (variables, conditions, boucles)

Objectif : Maîtriser les briques de base du WLangage — variables typées, opérateurs, conditions, boucles — et les réflexes de lisibilité.
Temps estimé : 12 min · lecture autonome · Si vous n'avez que 5 min : lisez « L'essentiel en 30s » + le schéma.

L'essentiel en 30 secondes

  • Une variable a un type : entier, réel, monétaire, chaîne, booléen, date… Le bon type évite des calculs et comparaisons faux.
  • La condition SI…ALORS…SINON…FIN exécute un bloc selon un test : c'est la brique de toute logique métier.
  • Les boucles POUR et TANTQUE répètent un traitement (nombre connu ou non) ; nommer, indenter et commenter rendent le code maintenable.

Mini-cas filé — Yacine écrit sa première règle de remise

Yacine a maintenant une analyse (1.1) et une fenêtre (1.2). Il veut appliquer sa première règle métier : accorder 5 % de remise aux commandes de plus de dix articles, et bloquer la validation si le client a des impayés. Il déclare des variables typées : MontantHT en monétaire, Remise en réel, NbArticles en entier. Il écrit une CONDITION SI…ALORS…SINON : si le solde du client est positif (impayé), il bloque ; sinon il teste le nombre d'articles. Il ajoute une BOUCLE POUR pour cumuler le montant des lignes d'articles. Il nomme clairement ses variables (pas x ou tmp), indente ses blocs et commente le POURQUOI de la remise. Le code se lit comme une phrase. Yacine retient : variables typées, conditions et boucles sont les briques de toute logique — et la lisibilité fait la différence.

Cas autonome de cette section : il revient dans le cours, le schéma, le script et le défi 48h de la section 1.3.

1. Variables et types

Le WLANGAGE est le langage de WinDev. Ses fondamentaux sont ceux de tout langage, avec une syntaxe volontairement simple et en français. Les VARIABLES sont des emplacements nommés qui stockent une valeur ; on les déclare avec leur TYPE : entier, réel, monétaire, chaîne, booléen, date, heure, durée.

Exemple : MonTotal est un monétaire. Le choix du type reste important : un montant en monétaire, un compteur en entier, un texte en chaîne — jamais tout en chaîne, sous peine de calculs faux.

2. Opérateurs et conditions

Les OPÉRATEURS sont arithmétiques (+, -, *, /), de comparaison (=, <, >, <=, >=, <>) et logiques (ET, OU, PAS). Les commentaires (// en début de ligne) expliquent le POURQUOI d'un traitement.

La CONDITION SI … ALORS … SINON … FIN exécute un bloc ou un autre selon qu'un test est vrai ou faux. C'est la brique de toute logique métier : si le solde est négatif, appliquer une remise, etc. Le branchement multiple SELON gère plusieurs cas d'une même valeur.

3. Boucles et lisibilité

Les BOUCLES répètent un traitement : POUR (nombre connu de répétitions, avec compteur), TANTQUE (tant qu'une condition reste vraie) et BOUCLE (avec sortie explicite).

Deux principes de qualité dès le départ : nommer clairement ses variables (Total, NombreArticles — pas x, y, tmp) et indenter son code pour rendre la structure visible. Réflexe précieux : la touche F1, qui ouvre l'aide du WLangage avec des exemples, en français.

Erreur d'interprétation fréquente : « Le WLangage est en français, donc la rigueur est optionnelle ». Non. La syntaxe simple ne dispense pas de typer correctement (tout en chaîne rend les calculs faux), de nommer ses variables et d'indenter ses blocs. Autre erreur : empiler les SI dans des SI jusqu'à l'illisibilité. Yacine nomme explicitement, indente, commente le pourquoi, et choisit le bon type pour chaque variable.
L'exécution d'un traitement Des variables typées, une condition qui choisit, une boucle qui répète. Variables typées Monétaire,chaîne, booléen…Condition SI…ALORS…SINON Choisirun bloc selon un testBoucles POUR /TANTQUE Répéter un traitement
Des variables typées, une condition qui choisit, une boucle qui répète.
Version texte du schéma (SEO / lecteurs d'écran / traduction) : 1) Yacine, développeur WinDev dans une PME de négoce de matériel électrique à Oran, veut écrire sa première règle métier : 5 % de remise au-delà de dix articles, validation bloquée si le client a des impayés. 2) Il déclare des variables typées (MontantHT en monétaire, Remise en réel, NbArticles en entier), écrit une condition SI Client.Solde > 0 ALORS … SINON … FIN et une boucle POUR pour cumuler les lignes. 3) Il nomme clairement ses variables, indente ses blocs et commente le pourquoi de la remise. Leçon : variables typées, conditions et boucles sont les briques de toute logique — avec la lisibilité comme exigence.

🔎 Exemple concret — 🔎 Exemple concret — La remise de Yacine

La première règle métier de l'application, en WLangage :

// Remise fidélité — Yacine, négoce de matériel électrique
MontantHT est un monétaire = 0
Remise    est un réel      = 0

SI Client.Solde > 0 ALORS
	Info("Impayés : validation de la commande bloquée.")
SINON
	// 5 % de remise au-delà de 10 articles
	SI Commande.NbArticles > 10 ALORS
		Remise = 5
	FIN
FIN

POUR i = 1 À Commande.NbArticles
	MontantHT += LigneCommande[i].PrixHT * LigneCommande[i].Quantite
FIN

Lecture : des variables typées, une condition qui bloque sur impayé, une seconde qui décide la remise, une boucle qui cumule le montant.

Réflexe : noms explicites, indentation des blocs, commentaire du pourquoi — le code se lit comme une phrase.

Vocabulaire de la section

Variable et type
Emplacement nommé qui stocke une valeur, déclaré avec son type : entier, réel, monétaire, chaîne, booléen, date, heure, durée.

Exemple simple : Yacine déclare MontantHT est un monétaire et NbArticles est un entier.

Ce que ce n'est pas : stocker un montant en chaîne puis tenter de l'additionner.

Réflexe : une donnée → un type adapté.

Opérateurs
Arithmétiques (+, -, *, /), de comparaison (=, <, >, <=, >=, <>) et logiques (ET, OU, PAS), en français.

Exemple simple : Yacine teste Commande.NbArticles > 10 ET Client.Solde = 0.

Ce que ce n'est pas : comparer deux chaînes pour additionner des montants.

Réflexe : un test → le bon opérateur.

Condition SI…ALORS…SINON
Structure qui exécute un bloc ou un autre selon qu'un test est vrai ou faux ; brique de base de toute logique métier.

Exemple simple : Si le client a des impayés, Yacine bloque la validation.

Ce que ce n'est pas : enchaîner des SI imbriqués jusqu'à rendre le code illisible.

Réflexe : décider → une condition SI.

Boucles (POUR, TANTQUE)
POUR répète un nombre connu de fois (avec compteur) ; TANTQUE répète tant qu'une condition reste vraie ; SELON gère un branchement multiple.

Exemple simple : Yacine cumule les lignes de commande avec une boucle POUR.

Ce que ce n'est pas : recopier vingt fois la même ligne au lieu d'une boucle.

Réflexe : répéter → une boucle POUR ou TANTQUE.

Lisibilité (noms + indentation)
Nommer clairement ses variables, indenter les blocs, commenter le pourquoi : ce qui rend le code maintenable.

Exemple simple : Yacine écrit MontantTotalHT et non m, et indente chaque bloc.

Ce que ce n'est pas : des variables x, tmp1, tmp2 et aucun décalage des blocs.

Réflexe : code lisible → noms clairs + indentation.

En pratique — En pratique — Écrire ses premières lignes de WLangage

  1. Déclarez des variables avec le bon TYPE (un montant en monétaire, un compteur en entier, un texte en chaîne, un test en booléen).
  2. Écrivez une CONDITION SI…ALORS…SINON…FIN traduisant une règle métier simple (si le montant dépasse un seuil, appliquer une remise).
  3. Écrivez une BOUCLE POUR pour répéter un traitement un nombre connu de fois, et une boucle TANTQUE pour un nombre inconnu à l'avance.
  4. Nommez clairement vos variables, INDENTEZ les blocs, commentez le POURQUOI, et utilisez F1 sur toute fonction inconnue.
Vous maîtrisez les briques de base du WLangage (variables typées, opérateurs, conditions, boucles) et les réflexes de lisibilité qui rendent le code maintenable — ceux que Yacine applique dès sa première règle de remise.

Script pas-à-pas — écrire la règle de remise comme Yacine (5 min)

1) Déclarez les variables avec le bon type (MontantHT en monétaire, Remise en réel, NbArticles en entier). 2) Écrivez la condition SI Client.Solde > 0 ALORS bloquer SINON tester la remise FIN. 3) Ajoutez la condition imbriquée SI NbArticles > 10 ALORS Remise = 5 FIN. 4) Cumulez le montant avec une boucle POUR sur les lignes. 5) Nommez, indentez et commentez, puis testez avec F1 en appui.

Les concepts (variables, conditions, boucles) sont universels : ce qui change d'un langage à l'autre, c'est la syntaxe.

Modèle copier-coller — la structure de traitement de Yacine

// 1. Variables typées
Total est un monétaire = 0
Compteur est un entier = 0

// 2. Condition
SI  ALORS
	// action si vrai
SINON
	// action si faux
FIN

// 3. Boucle
POUR i = 1 À 
	// traitement répété
FIN

// Réflexes : noms clairs, blocs indentés, commentaire du POURQUOI

Remise par palier

Yacine remplace le SI simple par un SELON : 3 % au-delà de 5 articles, 5 % au-delà de 10, 8 % au-delà de 20.

Nombre inconnu

Pour parcourir les commandes d'un client, Yacine utilise une boucle TANTQUE plutôt qu'un POUR.

Contrôle de stock

Avant de valider une ligne, Yacine écrit une condition qui refuse une quantité supérieure au stock disponible.

Cumul

Pour calculer le montant total d'une commande, Yacine cumule les lignes avec une boucle POUR et une variable monétaire.

✓ Bonnes pratiques

  • Déclarer chaque variable avec le type adapté.
  • Nommer clairement et indenter les blocs pour la lisibilité.
  • Utiliser F1 sur toute fonction inconnue : l'aide est riche et en français.

✗ Pièges fréquents

  • Tout stocker en chaîne : calculs et comparaisons faux.
  • Des variables x, tmp1, tmp2 incompréhensibles.
  • Empiler les SI imbriqués jusqu'à l'illisibilité.

Points clés à retenir

  • Le WLangage repose sur les fondamentaux universels, avec une syntaxe simple en français.
  • Les variables se déclarent avec un TYPE : un montant en monétaire, un compteur en entier, une date en date.
  • La condition SI…ALORS…SINON…FIN et les boucles POUR / TANTQUE / SELON dirigent l'exécution.
  • Réflexes de qualité : NOMMER, INDENTER, COMMENTER le pourquoi, et s'appuyer sur F1.

Défi 48h — appliquez demain

Écrivez en WLangage, comme Yacine, une petite règle métier : des variables typées, une condition SI…ALORS…SINON et une boucle POUR. Par exemple : appliquer une remise au-delà d'un seuil et cumuler un montant. Écrivez en une phrase pourquoi le choix du type d'une variable est important.

Checklist sortie de section
  • Je déclare des variables avec le bon type en WLangage.
  • Je sais écrire une condition SI…ALORS…SINON…FIN.
  • Je sais répéter un traitement avec une boucle POUR ou TANTQUE.
Auto-évaluation 1-5 : est-ce que je choisis le bon type pour mes variables ?Auto-évaluation 1-5 : est-ce que mon code est nommé, indenté et commenté ?

Questions fréquentes

Faut-il connaître un autre langage avant d'apprendre le WLangage ?

Non : le WLangage est conçu pour être accessible aux débutants, avec des mots-clés en français (SI, ALORS, POUR, TANTQUE), une syntaxe lisible et une aide contextuelle riche. Si vous connaissez déjà un langage, vous progresserez plus vite car les concepts sont universels — mais ce qu'il faut surtout apprendre, c'est la philosophie WinDev : l'analyse au centre, les champs liés aux rubriques, les fonctions HFSQL et le fonctionnement par événements.

Comment écrire du code WLangage lisible et maintenable ?

En appliquant des règles simples mais constantes : nommer explicitement (MontantTotalHT, pas m), indenter les blocs, commenter le POURQUOI (pas le QUOI), découper les traitements longs en procédures et éviter la duplication. Un code est lu bien plus souvent qu'il n'est écrit : des noms clairs, une structure visible et des commentaires utiles font gagner un temps considérable lors des corrections futures.

Vérifiez votre compréhension

Quelles structures de base utilise-t-on en WLangage pour répéter un traitement ?

Ressources supplémentaires (optionnel, pour aller plus loin)

Examen du niveau 1Questions inédites et durcies pour valider vos acquis