L5G disponible en français et en anglais.
L5G puissant et riche : plus de 4500 fonctions.
Voila à quoi ressemble du code L5G !
N'oubliez pas : pour de nombreuses fonctions, il est inutile de coder, il suffit de cliquer sur les choix proposés par l'IDE; ces exemples illustrent juste le langage.
Exemple : Scan d'un document
// Enregistre le document présent dans le scanneur dans le fichier "MonDocument.PDF"
TwainVersPDF("C:\Temp\MonDocument.PDF")
Exemple : Exemple de code conditionnel
// Récupère le CA du mois en cours
TotalCA est un monétaire = CalculCAMoisEnCours()
// Si le CA dépasse l'objectif
SI TotalCA >= 1 250 000 ALORS
LIB_Objectif= "Objectif dépassé !"
LIB_Objectif.Couleur= VertFoncé
SINON
// Si le CA n'atteint pas l'objectif minimum attendu
SI TotalCA <= 200 000 ALORS
LIB_Objectif= "Objectif non atteint"
LIB_Objectif.Couleur= RougeClair
FIN
FIN
Exemple : Exemple de code conditionnel avec le langage en anglais (le WLangage est disponible en français et en anglais)
// Récupère le CA du mois en cours
TotalCA is currency = CalculCAMoisEnCours()
// Si le CA dépasse l'objectif
IF TotalCA >= 1 250 000 THEN
LIB_Objectif = "Objectif dépassé !"
LIB_Objectif.Color = DarkGreen
ELSE
// Si le CA n'atteint pas l'objectif minimum attendu
IF TotalCA <= 200 000 THEN
LIB_Objectif = "Objectif non atteint"
LIB_Objectif.Color = LightRed
END
END
Exemple : Transforme un nombre en une chaîne de caractères "écrite en toutes lettres"
LIBELLE_PRIX = NombreEnLettres(1.10, "euro(s)")
// Affiche "un euro dix"
Exemple : Modification de la luminosité d'une image
// Charge une image
MonImage est une Image
MonImage = "MonImage.jpg"
// Modifie sa luminosité, ici à 50%
MonImage.ModifieLuminosité(50)
// Sauve l'image modifié
MonImage.SauveJPEG("MonImageModifiée.jpg")
Exemple : Envoi d'un email
// Ouvre une session SMTP
MaSessionSMTP est un emailSessionSMTP
MaSessionSMTP.AdresseServeur = "monserveur.smtp.fr"
MaSessionSMTP.Nom = "Utilisateur"
EmailOuvreSession(MaSessionSMTP)
// Initialise les composantes du mail
MonEmail est un Email
MonEmail.Expéditeur= "<user@pcsoft.fr>"// L'expéditeur
MonEmail.Destinataire.Ajoute("destinataire@precilia.fr")// Le destinataire
MonEmail.Sujet= "Ouverture de compte"// Le sujet
MonEmail.Message= "[..]" // Le corps du message
// Envoie le mail
EmailEnvoieMessage(MaSessionSMTP, MonEmail)
Exemple : Exemple de déclaration de variables
// Déclaration de variables
Valeurest un entier = 3
RésultatSélectionest un booléen
Prixest un monétaire
i,j,ksont des entiers
MonTableau est un tableau de chaînes
MaPileest une Pile d'entiers
MonDocumentXML est un xmlDocument
MonDocumentPDF est un pdfDocument
MonCodeJSONest un JSON
MonCodeYAMLest un YAML
Exemple : Génération d'un fichier PDF à partir d'un état (report)
// Paramètre la destination de l'impression (ici en PDF)
iDestination(iPDF, "C:\Mes documents\Facture.pdf")
// Imprime l'état ETAT_FacturePDF
iImprimeEtat(ETAT_FacturePDF)
Exemple : Exemple de programmation orientée objet (POO)
// Allocation d'un objet Produit
UnProduit est un Produit dynamique
UnProduit = allouer un Produit
// Utilisation d'une propriété
UnProduit.Référence = "TS-4893"
// Utilisation d'une méthode
UnProduit.ModifieStock(42)
Dans le code ci-dessus, "Produit" est une classe dont le code de déclaration est le suivant :
// Déclaration de la classe Produit
Produit est une Classe
m_sRéférence est une chaîne
m_nStock est un entier
FIN
// Getter
PROCÉDURE PUBLIQUE Référence() : chaîne
RENVOYER m_sRéférence
// Setter
PROCÉDURE PUBLIQUE Référence(sValeur est une chaîne)
m_sRéférence=sValeur
// Méthode
PROCÉDURE ModifieStock(nStock est un entier)
m_nStock = nStock
Exemple : Envoi d'un SMS
// Initialisation de la structure SMS pour un numéro classique
SMS.Numéro= "0610203040"
SMS.Message= "J'envoie des SMS avec WINDEV Mobile !"
// Envoi du SMS
SMSEnvoie()
Exemple : Génération d'un fichier Excel
// Demande à l'utilisateur de sélectionner un fichier d'export
FichierXLS est une chaîne = "c:\Mes Documents\rapport_financier.xls"
// Exporte le contenu du champ Table dans le fichier XLS
TableVersExcel(TABLE_RAPPORT_FINANCIER, FichierXLS)
Exemple : Protection d'un fichier PDF
// Protège le fichier PDF
PDFMotDePasse("fichier_origine.pdf", "fichier_protege.pdf", iProtectionDéfaut, "motdepasse")
Exemple : Parcours d'une liste de contacts
// Liste les contacts du téléphone
tabContacts est un tableau de Contact = ContactListe()
// Parcourt les contacts
POUR TOUT ELEMENT UnContact DE tabContacts
// Formate le nom affiché du contact (<nom> <prénom>)
UnContact.NomAffiché = UnContact.Nom+[" "]+UnContact.Prénom
// Modifie le contact
ContactModifie(UnContact)
FIN
Exemple de code JSON couplé à un Webservice
// appel du Webservice de récupération des informations du client à partir de son identifiant
InformationClient est un JSON= ChercheInformationClient( IDClient )
// détermine si c'est un envoi à l'étranger
EnvoiEtranger = InformationClient.AdresseLivraison.Pays <> "FR"
Exemple : Application de masques de saisies espagnol
// Utilise le masque du code postal espagnol
SAI_CodePostal..MasqueSaisie= MasqueCodePostal("ES")
// Met le masque téléphonique espagnol
SAI_Telephone..MasqueSaisie= MasqueNuméroDeTéléphone("ES")
Exemple : Exécution en arrière plan par un thread
// Lance le calcul des statistiques dans un thread
MonThread est un Thread = ThreadExécute(CalculStatistiques)
PROCÉDURE INTERNE CalculStatistiques()
// Exécute la requête de calcul
REQ_CalculeStatistiques.ExécuteRequête()
FIN
Exemple : Parcours de fichiers par une lambda fonction
// Énumère les fichiers PDF du répertoire "Mes Documents"
fListeFichier("C:\Users\Anne\Documents\*.pdf", (sRépertoire, sFichier) => {
// Traitement sur le fichier
AnalyseFichier( sRépertoire + [ fSep ] + sFichier )
RENVOYER Vrai
})
Exemple : Ajout d'une icône dans le systray
// Ajout de l'icône "C:\Icones\Icone.ICO" dans la barre des tâches
SysIconeAjoute("C:\Icones\Icone.ICO", "", "Statistiques")
Exemple : Manipulation avancée de chaînes de caractères
sTemplateHTML est une chaîne
// Récupère le contenu entre les balises <body>...</body>
ExtraitChaîneEntre(sTemplateHTML, 1, "<body>", "</body>")
Exemple : Utilisation Filter/Map/Reduce
// Détermine si le client a au moins une facture non réglée cette année
soit FactureNonRéglée = TableauFactureClient.Filter( facture => facture.date.année=2020 ).UnVrai( facture=>facture.ResteAPayer>0 )
Exemple : Lecture d'une clé de registre
// Lit la valeur "Langage" dans la clé "HKEY_LOCAL_MACHINE\SOFTWARE\Appli"
sResLecture est une chaîne = RegistreLit("HKEY_LOCAL_MACHINE\SOFTWARE\Appli", "Langage")
Exemple : Scan d'un document
// Enregistre le document présent dans le scanneur dans le fichier "MonDocument.PDF"
TwainVersPDF("C:\Temp\MonDocument.PDF")
Exemple : Exemple de code conditionnel
// Récupère le CA du mois en cours
TotalCA est un monétaire = CalculCAMoisEnCours()
// Si le CA dépasse l'objectif
SI TotalCA >= 1 250 000 ALORS
LIB_Objectif= "Objectif dépassé !"
LIB_Objectif.Couleur= VertFoncé
SINON
// Si le CA n'atteint pas l'objectif minimum attendu
SI TotalCA <= 200 000 ALORS
LIB_Objectif= "Objectif non atteint"
LIB_Objectif.Couleur= RougeClair
FIN
FIN
Exemple : Exemple de code conditionnel avec le langage en anglais (le WLangage est disponible en français et en anglais)
// Récupère le CA du mois en cours
TotalCA is currency = CalculCAMoisEnCours()
// Si le CA dépasse l'objectif
IF TotalCA >= 1 250 000 THEN
LIB_Objectif = "Objectif dépassé !"
LIB_Objectif.Color = DarkGreen
ELSE
// Si le CA n'atteint pas l'objectif minimum attendu
IF TotalCA <= 200 000 THEN
LIB_Objectif = "Objectif non atteint"
LIB_Objectif.Color = LightRed
END
END
Exemple : Transforme un nombre en une chaîne de caractères "écrite en toutes lettres"
LIBELLE_PRIX = NombreEnLettres(1.10, "euro(s)")
// Affiche "un euro dix"
Exemple : Modification de la luminosité d'une image
// Charge une image
MonImage est une Image
MonImage = "MonImage.jpg"
// Modifie sa luminosité, ici à 50%
MonImage.ModifieLuminosité(50)
// Sauve l'image modifié
MonImage.SauveJPEG("MonImageModifiée.jpg")
Exemple : Envoi d'un email
// Ouvre une session SMTP
MaSessionSMTP est un emailSessionSMTP
MaSessionSMTP.AdresseServeur = "monserveur.smtp.fr"
MaSessionSMTP.Nom = "Utilisateur"
EmailOuvreSession(MaSessionSMTP)
// Initialise les composantes du mail
MonEmail est un Email
MonEmail.Expediteur= "<user@pcsoft.fr>"// L'expéditeur
MonEmail.Destinataire.Ajoute("destinataire@precilia.fr")// Le destinataire
MonEmail.Sujet= "Ouverture de compte"// Le sujet
MonEmail.Message= "[..]" // Le corps du message
// Envoie le mail
EmailEnvoieMessage(MaSessionSMTP, MonEmail)
Exemple : Exemple de déclaration de variables
// Déclaration de variables
Valeurest un entier = 3
RésultatSélectionest un booléen
Prixest un monétaire
i,j,ksont des entiers
MonTableau est un tableau de chaînes
MaPileest une Pile d'entiers
MonDocumentXML est un xmlDocument
MonDocumentPDF est un pdfDocument
MonCodeJSONest un JSON
MonCodeYAMLest un YAML
Exemple : Génération d'un fichier PDF à partir d'un état (report)
// Paramètre la destination de l'impression (ici en PDF)
iDestination(iPDF, "C:\Mes documents\Facture.pdf")
// Imprime l'état ETAT_FacturePDF
iImprimeEtat(ETAT_FacturePDF)
Exemple : Exemple de programmation orientée objet (POO)
// Allocation d'un objet Produit
UnProduit est un Produit dynamique
UnProduit = allouer un Produit
// Utilisation d'une propriété
UnProduit.Référence = "TS-4893"
// Utilisation d'une méthode
UnProduit.ModifieStock(42)
Dans le code ci-dessus, "Produit" est une classe dont le code de déclaration est le suivant :
// Déclaration de la classe Produit
Produit est une Classe
m_sRéférence est une chaîne
m_nStock est un entier
FIN
// Getter
PROCÉDURE PUBLIQUE Référence() : chaîne
RENVOYER m_sRéférence
// Setter
PROCÉDURE PUBLIQUE Référence(sValeur est une chaîne)
m_sRéférence=sValeur
// Méthode
PROCÉDURE ModifieStock(nStock est un entier)
m_nStock = nStock
Exemple : Envoi d'un SMS
// Initialisation de la structure SMS pour un numéro classique
SMS.Numéro= "0610203040"
SMS.Message= "J'envoie des SMS avec WINDEV Mobile !"
// Envoi du SMS
SMSEnvoie()
Exemple : Génération d'un fichier Excel
// Demande à l'utilisateur de sélectionner un fichier d'export
FichierXLS est une chaîne = "c:\Mes Documents\rapport_financier.xls"
// Exporte le contenu du champ Table dans le fichier XLS
TableVersExcel(TABLE_RAPPORT_FINANCIER, FichierXLS)
Exemple : Protection d'un fichier PDF
// Protège le fichier PDF
PDFMotDePasse("fichier_origine.pdf", "fichier_protege.pdf", iProtectionDéfaut, "motdepasse")
Exemple : Parcours d'une liste de contacts
// Liste les contacts du téléphone
tabContacts est un tableau de Contact = ContactListe()
// Parcourt les contacts
POUR TOUT ELEMENT UnContact DE tabContacts
// Formate le nom affiché du contact (<nom> <prénom>)
UnContact.NomAffiché = UnContact.Nom+[" "]+UnContact.Prénom
// Modifie le contact
ContactModifie(UnContact)
FIN
Exemple de code JSON couplé à un Webservice
// appel du Webservice de récupération des informations du client à partir de son identifiant
InformationClient est un JSON= ChercheInformationClient( IDClient )
// détermine si c'est un envoi à l'étranger
EnvoiEtranger = InformationClient.AdresseLivraison.Pays <> "FR"
Exemple : Application de masques de saisies espagnol
// Utilise le masque du code postal espagnol
SAI_CodePostal..MasqueSaisie= MasqueCodePostal("ES")
// Met le masque téléphonique espagnol
SAI_Telephone..MasqueSaisie= MasqueNuméroDeTéléphone("ES")
Exemple : Exécution en arrière plan par un thread
// Lance le calcul des statistiques dans un thread
MonThread est un Thread = ThreadExécute(CalculStatistiques)
PROCÉDURE INTERNE CalculStatistiques()
// Exécute la requête de calcul
REQ_CalculeStatistiques.ExécuteRequête()
FIN
Exemple : Parcours de fichiers par une lambda fonction
// Énumère les fichiers PDF du répertoire "Mes Documents"
fListeFichier("C:\Users\Anne\Documents\*.pdf", (sRépertoire, sFichier) => {
// Traitement sur le fichier
AnalyseFichier( sRépertoire + [ fSep ] + sFichier )
RENVOYER Vrai
})
Exemple : Ajout d'une icône dans le systray
// Ajout de l'icône "C:\Icones\Icone.ICO" dans la barre des tâches
SysIconeAjoute("C:\Icones\Icone.ICO", "", "Statistiques")
Exemple : Manipulation avancée de chaînes de caractères
sTemplateHTML est une chaîne
// Récupère le contenu entre les balises <body>...</body>
ExtraitChaîneEntre(sTemplateHTML, 1, "<body>", "</body>")
Exemple : Utilisation Filter/Map/Reduce
// Détermine si le client a au moins une facture non réglée cette année
soit FactureNonRéglée = TableauFactureClient.Filter( facture => facture.date.année=2020 ).UnVrai( facture=>facture.ResteAPayer>0 )
Exemple : Lecture d'une clé de registre
// Lit la valeur "Langage" dans la clé "HKEY_LOCAL_MACHINE\SOFTWARE\Appli"
sResLecture est une chaîne = RegistreLit("HKEY_LOCAL_MACHINE\SOFTWARE\Appli", "Langage")
|