Exemples en WLangage (issus du site de l'éditeur)

Emmanuel Lecoester

Ensemble d'exemples WinDev permettant de vérifier la coloration syntaxique.

- Titre : Exemples en WLangage (issus du site de l'éditeur)

- Auteur : Emmanuel Lecoester

- Parution : 27 novembre 2008

- Mise à jour : 6 mai 2009

- 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 Emmanuel Lecoester. 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

Exemple 1 : Scan d'un document

// Enregistre le document présent dans le scanneur
// dans le fichier "MaPhoto.JPEG"
// Le document sera enregistré en noir et blanc

// Le code lui-même

TwainVersJPEG ("C:\Temp\MaPhoto.JPEG", 0, Faux , TwainNoirBlanc )

// Le code en gérant les éventuelles erreurs par programmation

SI TwainVersJPEG ("C:\Temp\MaPhoto.JPEG", 0, Faux , TwainNoirBlanc ) ALORS
Info("Le document a été enregistré")
SINON
Erreur("Le document n'a pas été scanné")
FIN

Exemple 2 : Lecture d'une clé de registre

// Lit la valeur "Langage" dans la clé "HKEY_LOCAL_MACHINE\SOFTWARE\Appli"
// Le booléen ResExécute permet de savoir si la valeur a été lue
Lecture = RegistreLit ("HKEY_LOCAL_MACHINE\SOFTWARE\Appli", "Langage", Exécute)
SI Exécute = Vrai ALORS
Info("La valeur a été lue et vaut : "+Lecture)
FIN

Exemple 3 : Sélection d'une couleur

Valeur est un entier = RVB(10, 17, 69)
Résultat est un booléen
Info("Couleur de départ : " + Valeur)
Résultat = SelectCouleur (Valeur, scInit )
Info("Couleur d'arrivée : " + Valeur)

Exemple 4 : Calcul du nombre de jours entre 2 dates

// Affiche le nombre de jours écoulés depuis le 01/01/1998
X = NumériqueVersChaîne( DateDifférence ("19980101", DateSys())) + " jours écoulés"

Exemple 5 : Extraction d'une partie de chemin de fichier

// Récupération du nom du fichier
NomFichier = fExtraitChemin ("\MesRépertoires\Fichier.extension", fFichier )
// fExtraitChemin renvoie "Fichier"

Exemple 6 : Phonétique d'une chaîne

// Comparaison phonétique de deux chaînes de caractères
Phonétique ("TRAIT") = Phonétique ("très")

Exemple 7 : Envoi d'un email

// Initialisation de la structure e-mail
Email.Destinataire = "support@pcsoft.fr"
Email.Expéditeur = "Tartampion@boite.net.fr"
Email.Message = "Test Auto eMail"
Email.nbDestinataire = 1

// Envoie le mail et gère les éventuelles erreurs
SI EmailEnvoieMessage (NomUser) = Faux ALORS
Erreur("L'envoi de mail a échoué", ErreurInfo())
SINON
Info("L'envoi de mail a réussi ")
FIN

Exemple 8 : Ajout d'une icône dans le systray

// Ajout de l'icône "C:\icones\icone.ICO" dans la barre des tâches
ResAjoutIcone = SysIconeAjoute ("C:\icones\icone.ICO", "", "Ventes 2008")

Exemple 9 : Sauvegarde d'une hard copie

// Sauve en mémoire l'image présente dans "ImageDessin"
Toto = dSauveImageJPEG (ImageDessin, enMémoire )

Exemple 10 : Exemple de déclaration de variables

// Déclaration de variables
NomClient est une chaîne
Compteur est un entier
Prix est un réel
i,j,k sont des entiers

Exemple 11 : Interaction Code / Interface

// Exécute le traitement de l'option de menu FichierSauve
ExécuteTraitement (FichierSauve, trtOptionMenu )

Exemple 12 : Gestion des Thread par programme (il existe une méthode automatique)

// Exécution d'un thread avec passage de paramètres
sDate est une chaîne = DateSys()
// Exécution du thread
ThreadExécute ("THREADNAME", threadNormal ,"pExecReq",sDate)

Procédure locale pExecReq

// Détail de la procedure " pExecReq " qui
// attend une date en paramètre d'une requête
PROCEDURE pExecReq(sDate)
SI HExécuteRequête(Sup_Date, hRequêteDéfaut ,sDate) = Faux  ALORS
Erreur(HErreurInfo())
SINON
HLitPremier(Sup_Date)
FIN

Exemple 13 : Aperçu avant impression

// Et en prime , suppression des boutons d'envoi d'Email de l'aperçu avant impression

// Car par défaut dans un aperçu il y a envoi d'email, copie dans Word, Excel et plus !!!
iParamètreAperçu ( iBoutonTous  + iBoutonEmail - iBoutonEmailPdf )
iAperçu()
iImprimeEtat(MonEtat)

Exemple 14 : Impression en HTML

// Impression au format HTML
iDestination ( iHTML , "c:\Mes documents\MonEtat.HTM")
// "c:\Mes documents\MonEtat.HTM" correspond au nom et
// au chemin du fichier HTM qui sera créé avec l'état "MonEtatRécap"
iImprimeEtat(MonEtatRécap)

Exemple 15: Génération d'un fichier PDF

iDestination ( iPDF , NomFichier)
iImprimeEtat(Etat_Facture)

// Variante sophistiquée (tout est possible en WLangage !)
// Impression au format PDF
NomFichier est une chaîne = ComplèteRep(fRepEnCours()) + "f" + Facture + Client + ".PDF"
iDestination ( iPDF , NomFichier)
iImprimeEtat(Etat_Facture, Client, Facture)

Exemple 16 : Protection d'un fichier PDF

// Protection du PDF contre l'impression
// et contre la sélection et le copier/coller
iParamètrePDF ( iProtectionImpression + iProtectionSelection )
// création du PDF
iAperçu( iPDF , ":\Temp\MonPDF.PDF")

Exemple 17 : Sélection d'une imprimante PCL (mobile)

// Imprimante PCL à utiliser
iDestination ( iPCL , "\\MonRéseau\MonImprimante")

Exemple 18 : Impression au format PCL (mobile)

// Impression au format PCL
iDestination ( iPCL , "\Mes documents\MonFichier.PCL")

Exemple 19 : Composer un numéro de téléphone

SI telCompose ( ChampSaisieNuméroTéléphone , "EtatLigne" ) ALORS
Info ( "Cliquez sur OK pour raccrocher quand vous aurez terminé " )
telRaccroche ()
FIN
Procédure locale EtatLigne

PROCEDURE EtatLigne ( ValeurEtat )
SELON ValeurEtat
CAS telLigneOccupée : Message ( "La ligne est occupée" )
CAS telLigneDecrochée : Message ( "OK, connecté" )
CAS telLigneNumérote : Message ( "Numérotation en cours" )
CAS telLigneTonalité : Message ( "Tonalité" )
CAS telLigneRaccrochée : Message ( "Le correspondant a raccroché" )
CAS telLigneAttendRéponse : Message ( "Recherche du correspondant" )
CAS telLigneSonnerie : Message ( "Sonnerie chez le correspondant" )
FIN

Exemple 20 : Calculs financiers

// Taux d'intérêt pour un emprunt de 25 000 euros. Six versements
// de 5000 euros sont nécessaires au remboursement de l'emprunt.
ResTauxIntérêt = FinTauxIntérêt (6, -5000, 25000)

Exemple 21 : Lecture d'un fichier texte ligne par ligne

BOUCLE
// Lecture d'une ligne du fichier texte
UneLigne = fLitLigne ( NumFic )
SI UneLigne = EOT ALORS SORTIR
TraiteLigne ( UneLigne )
FIN

Exemple 22 : Sortie selon une condition TANTQUE

// Sortie selon une condition TANTQUE
BOUCLE
// Lecture d'une ligne du fichier texte
UneLigne = fLitLigne ( NumFic )
TraiteLigne ( UneLigne )
A FAIRE TANTQUE UneLigne <> EOT
FIN

Exemple 23 : Sortie selon une itération

// Sortie selon une itération
BOUCLE ( 10 )
// Lecture d'une ligne du fichier texte
UneLigne = fLitLigne ( NumFic )
TraiteLigne ( UneLigne )
FIN

Exemple 24 : Export vers Excel

sFic est une chaîne
// On demande le nom du fichier
sFic = fSélecteur("", "", "Choisissez le fichier d'exportation", "Fichiers Excel (*.xls) *.xls", ...
"xls", fselCrée + fselExiste )
// Si le nom n'a pas été fourni, on abandonne l'export
SI sFic = "" ALORS RETOUR
// Sinon, on exporte le contenu de la table TABLE1
TableVersExcel ("TABLE1", sFic, taSansTitre )

Exemple 25 : Export vers XML

sFic est une chaîne
// On demande le nom du fichier
sFic = fSélecteur("", "", "Choisissez le fichier d'exportation", "Fichiers XML (*.XML) *.xml", ...
"xml", fselCrée + fselExiste )
// Si le nom n'a pas été fourni, on abandonne l'export
SI sFic = "" ALORS RETOUR
// Sinon, on exporte le contenu de la table TABLE1
TableVersXML ("TABLE1", sFic, taSansTitre )

Exemple 26 : Extraction d'une partie de chemin de fichier

sFic est une chaîne
// On demande le nom du fichier
sFic = fSélecteur("", "", "Choisissez le fichier d'exportation", "Fichiers Word (*.rtf) *.rtf", ...
"rtf", fselCrée + fselExiste )
// Si le nom n'a pas été fourni, on abandonne l'export
SI sFic = "" ALORS RETOUR
// Sinon, on exporte le contenu de la table TABLE1
TableVersWord ("TABLE1", sFic, taSansTitre )

Exemple 27 : Envoi d'un SMS

// Initialisation de la structure SMS
SMS.Numéro = "0610203040"
SMS.Message = "J'envoie des SMS avec WinDev Mobile !"

SMSEnvoie()

Exemple 28 : Envoi d'un fax

// Envoi  d'un fax
IdConnect est un entier
IdConnect = FaxConnecte()
...
IdFax est un booléen
IdFax = FaxEnvoie (IdConnect,"MonFax","Message.txt","0102030405")
...
FaxDéconnecte(IdConnect)

Exemple 29 : Acquisition sur le port série (ce code est généré par un assistant, vous n'aurez même pas à le taper !)

Lignecorrecte = sOuvre ( 1 , 2000 , 2000 ) // Ouverture de COM1
SI Lignecorrecte = Vrai ALORS
// Paramétrage Com1 : Taux 9600, Parité paire,
// 8 bits de données, 1 bit de stop
sFixeParamètre ( 1 , 9600 , 1 , 8 , 0) // Paramétrage de COM1
// Suite traitement...
sFerme ( 1 ) // Fermeture de COM1
SINON
Erreur ( "Erreur d'ouverture de COM1" )
FIN

Exemple 30 : ouverture SMTP

PROCEDURE bConnexionSMTP()

sNomUser        est une chaîne=gsNomUserSMTP
sNomSMTP        est une chaîne=gsNomServeurSMTP
sPasswordSMTP     est une chaîne=gsPasswordSMTP

// Changement du timeout
EmailChangeTimeOut(3)

SI PAS sPasswordSMTP ~= "" ALORS
SI EmailOuvreSessionSMTP(sNomUser,sPasswordSMTP,sNomSMTP) = Faux ALORS
ErreurEmail="Impossible de se connecter au serveur SMTP."+RC+ErreurInfo()
RENVOYER Faux
FIN
SINON
SI EmailOuvreSessionSMTP(sNomUser,sNomSMTP) = Faux ALORS
ErreurEmail="Impossible de se connecter au serveur SMTP."+RC+ErreurInfo()
RENVOYER Faux
FIN
FIN

RENVOYER Vrai