## - **Basé sur Wlangage**
- Langage commun de WINDEV, WEBDEV, WINDEV mobile
- Variables, instructions conditionnelles, procédures, etc.
- Programmation évènementielle, la saisie du code s'effectue dans l'événement WLangage concerné (champ, page, état, etc). Possibilité d'ajouter des événements supplémentaires et gérer par programmation des cas particuliers.
- Possibilité de POO (membre, méthode, constructeur, destructeur, héritage multiple, méthode virtuelle, polymorphisme, etc)
- Programmation des champs et des objets simpliste (taper le nom dans l'éditeur de code pour voir apparaitre toutes les fonctions ou propriétés utilisables)
- Deux syntaxes:
 - [ ] classique les fonctions WLangage commencent par le nom de la famille correspondante. TableAjouteLigne(TABLE_TableProduit, "Dubois", "Pierre")
 - [ ] Une syntaxe préfixée, dans ce cas le nom de l"élément manipulé est indiqué en premier. TABLE_TableProduit.AjouteLigne("Dubois", "Pierre") 

##### Trace (fonction)
Affiche des informations demandées dans une fenêtre ouverte en parallèle de la fenêtre en cours.
- syntaxe:
`-Trace(<Informations> [, <Informations complémentaires 1> [... [, <Informations complémentaires N>]]])`
### Les variables
- Une variable est représentée par:
	- Un nom
	- un type: Nature de la donnée stockée dans la variable
	- une valeur
	- une portée: limite d'utilisation de la variable dans le programme. la portée est définie proncipalement par l'endroit où la variable est déclarée.
		- Possiblité de déclarer à n'importe quel endroit dans le code attention à son positionnement concernant sa visibilité pour effectuer des traitements ou des calculs. On parle alors de portée des variables:
			- **Globale** (visibilité étendue dans le code) plusieurs niveaux de globalité:
				- niveau Projet et Collection de procédures
				- niveau fenêtre, fenêtre mobile, page, Etat
				- niveau Champ
					- Une variable au niveau du projet a la visibilité la plus importante dans le programme. Dans ce cas est déclare dans l'événement "initialisation du projet", variable visible partout (mémoire réservée pour cette variable attention à ne pas trop l'utiliser)
					- au niveau collection de procédures même visibilité qu'une variable dclarée au niveau du prjet. Avantage est de regrouper (ou classer) les variables par thème(collection) afin de rendre plus visible l'événement "Initialisation" du projet
					- Une variable déclarée **au niveau d'une Fenêtre, Fenêtre Mobile, Page ou Etat** limite la portée de la variable aux événements ou traitements de l'élément (Fenêtre, Fenêtre Mobile, Page ou Etat) et de ses champs. Cela permet d'encapsuler et de limiter les utilisations.
					- Une variable globale déclarée au niveau d'un champ limite la portée de la variable aux événements du champ. Cela permet de regrouper les variables par champ et ainsi de rendre plus lisible l'événement "Initialisation" de la fenêtre.
			- **Portée locale** siginifie que la variable a une visibilité très limitée dans le code. La variable est visible uniquemenr où elle a étét déclarée. Cela permet ainsi de restreindre l'utilisation de la variable au traitment ou à l'évènement.
	
**Exemple de déclaration de variables:**

Prix est un monétaire
Nom, Prénom sont des chaînes
// Affectation d'une variable de type monétaire
Prix = 1256.67
// Affichage du contenu de la variable
Trace(Prix)
// Affectation d'une variable de type chaîne
Nom = "Dupont"
// Affichage du contenu de la variable
Trace(Nom)
###### Les types de variables
- bolléen
- chaîne
- entier
- monétaire
- réel
- Le WLangage propose égalment des variables de type "avancé" regroupant toutes les caractéristiques de l'élément manipulé en une seule variable. Ces types avancés permettent par exmple de manipuler les documents XML, les emails, les fichiers XLS, etc. (voir [Les différents types de variables](https://doc.pcsoft.fr/?1514013&name=les_types_wlangage "Les types du WLangage")).

###### Opérations simples sur les variables

Pour effectuer des calculs sur des variables, le WLangage met à disposition les opérateurs mathématiques classiques :

- + pour faire une addition.
- - pour faire une soustraction.
- * pour faire une multiplication.
- / pour faire une division.

**D'autres opérateurs peuvent être utilisés pour réaliser des calculs :**

- ++ pour incrémenter de 1 (additionner 1 à la variable).
- - - pour décrémenter de 1 (soustraire 1 à la variable).
- += pour affecter en additionnant une valeur.
- - = pour affecter en soustrayant une valeur.

**Des opérateurs de comparaison sont également disponibles :**

- < inférieur strict
- > supérieur strict
- <= inférieur ou égal
- >= supérieur ou égal
- <> différent de
- = égal à

D'autres opérateurs sont disponibles. Pour plus de détails sur les opérateurs, consultez [Liste des opérateurs](https://doc.pcsoft.fr/?1512010&name=liste_des_operateurs "Liste des opérateurs").

[[01_WLangage_Récupération_Projet_WebDev]]



