Désolé, votre navigateur ne supporte pas le javascript. Découvrez les 925 nouveautés de WINDEV 2025, WEBDEV 2025 et WINDEV Mobile 2025
Bandeau nouveautés

IA Générative de code WLangage

Nouveautés 001 à 006 WD WB WM

Une aide permanente à l'écriture de code

La génération de code WLangage à la volée par Intelligence Artificielle de la version 2025 propose des suggestions en temps réel pendant la saisie de code, réduisant ainsi le temps nécessaire pour les phases de codage.

IA conçue par PC SOFT, serveurs gérés par PC SOFT, en France.

IA : une aide permanente à l'écriture de code IA : une aide permanente à l'écriture de code
Icone WLangage

Génération de code pour connexion à des technos / API spécifiques

Un des avantages de la génération de code WLangage par IA se matérialise lorsqu'un développeur doit développer pour un domaine qu'il ne connaît pas ou peu.

La saisie d'un commentaire décrivant le traitement à réaliser génère le code source correspondant, adapté au contexte du code en cours et du projet.

Icone WLangage

Faciliter l'apprentissage du WLangage ou de domaines du WLangage

La génération de code WLangage par IA est également utile au développeur qui débute avec WINDEV, et lui permet de découvrir plus facilement les fabuleuses possibilités du L5G.

Ici aussi, la saisie d'un commentaire décrivant le traitement à réaliser génère le code source correspondant, adapté au contexte du code en cours et du projet.

Icone WLangage

Les suggestions s'améliorent au fil du temps

La fonctionnalité d'IA générative est livrée sous forme de preview.

De nouvelles fonctionnalités vont apparaître avec le temps et le moteur lui-même va se perfectionner par auto-apprentissage.

Nouveau champ bouton segmenté

Nouveautés 242 à 246 WD WM
Nouveau champ boutons segmentés

Nouveau champ Bouton Segmenté : présentation

Le nouveau champ Bouton Segmenté fonctionne comme un groupe de boutons ON/OFF regroupés en un seul champ.

Le rendu visuel est automatiquement plus soigné.

Le fonctionnement est standardisé : choix exclusif ou multiple possible.

Le contenu de chaque choix peut être un texte ou une image. La programmation est bien plus simple.

Les principaux paramètres

  • nombre d'options
  • contenu des options
  • choix exclusif ou multiple
  • choix de l'ancrage et de l'ajustement automatique de la largeur
  • présence ou pas de séparateur
  • style du séparateur
  • choix du cadre extérieur et du cadre des boutons
  • etc...

Il est possible de transformer (refactorer) un champ Interrupteur en Bouton Segmenté multiple ou un champ Sélecteur en Bouton Segmenté exclusif.

Une programmation simple

La programmation d'un Bouton Segmenté est bien plus simple que celle d'un ensemble de Sélecteurs, Interrupteurs ou Boutons On/Off.

La programmation d'un Bouton Segmenté permet :

  • la récupération de l'état d'un des boutons
  • la possibilité de griser ou masquer un bouton
  • la possibilité de changer son libellé ou sa bulle
  • d'ajouter des options dynamiquement
  • les libellés multilingues
  • la persistance
  • des images, du texte markdown
  • etc.

Procédure réactive Procédure réactive Une procédure réactive s'exécute automatiquement
à chaque modification d'un champ ou d'une variable

Nouveautés 247 à 254 WD

Un principe de programmation révolutionnaire

Le mot-clé Réactive permet d'indiquer que la procédure doit surveiller les variables et les champs utilisés dans son code, et bien sûr de s'exécuter automatiquement en cas de modification de ces variables ou de ces champs.

Une Procédure Réactive peut être une procédure globale au projet (et donc réactive en permanence), une procédure locale de fenêtre ou une procédure locale de champ.

Les options de la procédure réactive

Les Procédures Réactives proposent 2 options :

  • Délai : s'exécuter après un délai fourni. Par exemple, la procédure s'exécutera 100 millisecondes après un changement de valeur
  • Exécution : si nécessaire, il est possible de déclencher par programme l'exécution d'une Procédure Réactive.

Cascade

Une Procédure Réactive peut modifier une variable ou un champ, eux-mêmes utilisés par une autre Procédure Réactive. Dans ce cas, l'autre Procédure Réactive s'exécutera.

Le framework bénéficie de mécanismes de sécurité : en cas de cycle, le framework gère !

Un exemple explicatif

Dans cette fenêtre, on souhaite réaliser les traitements suivants :

  • Tant que le premier interrupteur n'est pas coché, il faut griser le sélecteur de 3 choix + les 2 combos + le bouton valider
  • Lorsque le client a coché le premier interrupteur, il faut dégriser tous les choix
  • Lorsque l'utilisateur sélectionne la première option du sélecteur à 3 choix, il faut dégriser la première combo et griser la 2ème combo
  • Si l'utilisateur sélectionne la 2ème option, il faut griser la première combo et dégriser la 2ème combo
  • Si l'utilisateur sélectionne la 3ème option, etc...
Procédure réactive exemple complet
PROCÉDURE RÉACTIVE Gestion_Livraison()<délai=1s>

    GR_LIVRAISON..Grisé = Vrai // Par défaut
    SI INT_CGV[1] = Vrai ALORS
     SEL_MODE_LIVRAISON..Grisé = Faux
     SELON SEL_MODE_LIVRAISON
       CAS 1 // Livraison à une adresse
         COMBO_ADRESSE..Grisé = Faux
        CAS 2 // Livraison à un point relais
         COMBO_POINT_RELAIS..Grisé = Faux
        CAS 3 // Retrait en magasin
     FIN
    FIN

Avec une Procédure Réactive : 11 lignes de code simplissimes ! Dans cet exemple, il suffit de créer une Procédure Locale dans la fenêtre, et de déclarer cette procédure comme Réactive, et c'est tout !

Cette procédure sera exécutée automatiquement lorsque INT_CGV ou SEL_MODE_LIVRAISON change de valeur, par exemple lors d'un clic de l'utilisateur.

Un concept puissant

Les Procédures Réactives permettent de déclencher automatiquement l'exécution de traitements.

Une Procédure Réactive est exécutée automatiquement lorsqu'une variable ou lorsque la valeur ou le contenu d'un champ utilisé dans la procédure est modifié soit par l'utilisateur final, soit par programmation.

Une variable ou un champ change ? La Procédure est exécutée !

Un exemple simple

Une saisie de montant HT ou TTC.

Un exemple simple d'une procédure réactive

Le fonctionnement attendu est le suivant : lorsque l'on saisit un montant dans un champ, les autres champs se mettent à jour automatiquement.

Il est bien entendu possible de coder ce fonctionnement en WLangage, directement dans chaque champ concerné.

Dans ce cas, il faut créer une procédure qui effectue le calcul, et placer l'appel de cette procédure dans le Traitement de Modification de chacun des 3 champs.

Avantage : le code est unique et regroupé

En version 2025, il suffit d'indiquer que la procédure de calcul est une Procédure Réactive.

Le framework de WINDEV surveille le changement de valeur des champs et des variables et exécute automatiquement la procédure lorsqu'un changement est détecté.

Inutile de coder à chaque endroit ou à chaque champ où la modification peut intervenir.

Logo WLangage

Coffre-fort à mots de passe Fini les mots de passe en clair dans le code

Nouveautés 116 à 122 WD WB WM

Tout est automatique

Il n'y a aucune manipulation à effectuer, aucun fichier à embarquer, aucun paramètre à définir: lorsque vous utilisez un coffre-fort, ce coffre-fort est automatiquement embarqué avec votre exécutable. C'est un bénéfice de l'intégration totale de WINDEV.

Coffre fort à mot de passe

Plusieurs mots de passes d'accès au coffre-fort

L'accès au coffre-fort lui même est protégé par mot de passe. Il est possible de créer plusieurs mots de passe différents pour accéder à un même coffre-fort.

Il existe 2 niveaux de mots de passe.

  • mot de passe maître
  • mot de passe secondaire

Par exemple, le chef de projet peut détenir le mot de passe maître, créer un mot de passe secondaire par développeur qui est autorisé à créer ou modifier des mots de passe.

Mot de passe en clair détecté

En version 2025, les mots de passe indiqués en clair dans le code génèrent un warning à la compilation. Cette vérification s'active dans les options de compilation.

Nouveau Modifieur

Nouveautés 062 à 064 WD WB WM

L'UX du modifieur s'adapte au type de champ

Le nouveau modifieur est un outil dont vous ne pourrez plus vous passer !

Le nouveau modifieur présente de manière intelligente et agréable les propriétés du champ en cours, ou du groupe de champs en cours ou de la fenêtre ou de la page en cours.

Les propriétés sont classées par ordre d'intérêt, selon le champ. L'UI de l'édition de chaque propriété est visuelle.

Un modifieur universel

Le nouveau modifieur est proposé pour tous les éléments :

  • champ
  • fenêtre
  • page
  • état

La présentation est adaptée à chaque élément, tout en offrant une cohérence globale.

Les modifications effectuées dans le nouveau modifieur s'appliquent en temps réel sur l'élément en cours.

Nouveau Volet de création de champs

Nouveautés 065 à 067 WD WB WM
Nouveau Volet de création de champ

Le ruban c'est bien, mais le volet c'est mieux

Le nombre de champs offerts est tellement important que le ruban est chargé.

En version 2025, une présentation supplémentaire par Volet de Création est proposée.

Le mode Ruban existe toujours.

Nouvelle présentation

La présentation des champs par volet est beaucoup plus claire. Les champs sont classés.

Chaque champ est présenté dans une vignette.

Le volet peut être positionné à droite ou à gauche de l'environnement ou être dédocké.

Fonctionnalités

Le volet de création des champs dispose de fonctionnalités qui deviennent vite indispensables :

  • Recherche intelligente sous forme d'un filtre combinable temps réel (Exemple: Date, combo date, saisie heure,...)
  • Champs prédéfinis
  • Champs favoris
  • Champs métier

Visu 3D des couches d'une UI

Nouveautés 917 à 919 WD WB WM

Nouveau mode d'édition des pages en 3D en éclaté

L'éditeur de pages de WEBDEV 2025 apporte une nouveauté très utile : la vision 3D sophistiquée des champs de la page.

Cette vision 3D devient vite indispensable pour la gestion des champs conteneurs: flexbox, cellules,...

Cette vue 3D est disponible au choix pour la page entière ou pour un conteneur donné.

La vue 3D permet de sélectionner un champ et d'ouvrir les «7 onglets» de ce champ.

Visu 3D des couches d'une UI

Manipulation de la vue 3D

La vue 3D peut être manipulée :

  • rotation
  • zoom
  • éloignement des champs

Cela permet de visualiser facilement les imbrications et les empilements des champs.

Édition simultanée 2D/3D

Fonctionnalité puissante, il est possible d'éditer en même temps la vue 2D et la vue 3D.

Lorsqu'un champ est sélectionné dans une vue, il est automatiquement sélectionné dans l'autre vue.

Il est donc possible de sélectionner un champ dans la vue 3D et de l'éditer immédiatement en 2D.

Lets Encrypt

Un certificat HTTPS pour votre site automatiquement

Nouveautés 920 à 924 WB

À quoi sert un certificat ?

La présence d'un certificat sur un serveur Internet HTTPS permet de garantir à l'internaute qu'il s'adresse au domaine dont il a saisi l'adresse.

Il n'est pas possible d'usurper le nom de domaine.

HTTPS : Un certificat est nécessaire

Un site Internet est accessible à travers le protocole HTTP.
HTTPS est la version sécurisée de HTTP.

Les navigateurs récents n'autorisent quasiment plus la navigation sur des sites qui n'utilisent pas HTTPS.

L'installation d'un site Internet nécessite donc la mise en oeuvre du protocole HTTPS et donc la présence d'un certificat sur le serveur.

Obtenir un certificat Let's Encrypt : Automatique avec WEBDEV 2025

Les certificats Let's Encrypt sont très utilisés. Il s'agit de certificats gratuits générés automatiquement par l'organisation ISRG, qui est principalement soutenue par Google.

La version 2025 du Serveur d'Application WEBDEV permet de gérer automatiquement :

  • la demande de certificat
  • l'installation du certificat
  • les renouvellements du certificat

Un mode opératoire simple

Pour utiliser un certificat Let's Encrypt sur un serveur WEBDEV, il suffit de cocher la case «Générer automatiquement un certificat Let's Encrypt» dans le compte pour lequel le certificat doit être activé.

Il est possible de spécifier son ou ses noms de domaines qui seront protégés par le certificat.

Le Serveur d'Application de WEBDEV 2025 s'occupe de tout !

Utilisation d'autres certificats

Il est bien entendu possible d'utiliser d'autres types de certificats que ceux de type Let's Encrypt.

Dans ce cas, il suffira d'installer et de gérer manuellement ces certificats.

OAuth

Serveur OAuth inclus dans le serveur d'application WEBDEV

Nouveautés 768 à 772 WD WB WM

Ça sert à quoi ?

Le protocole OAuth est un standard ouvert utilisé pour délivrer des autorisations sécurisées.

Un serveur d'authentification OAuth gère les points suivants :

  • Authentification sécurisée
  • Gestion des autorisations
  • Emission des jetons d'accès et de leur rafraîchissement
  • Gestion des droits associés au jeton («scope»).

Un serveur d'authentification OAuth peut être hébergé sur un serveur physique de tout type: réseau local («on premise»), hébergeur, cloud, ...

Livré en version 2025

Un serveur d'authentification OAuth est présent par défaut dans le Serveur d'Application WEBDEV 2025.

Pour utiliser ce serveur d'authentification, il suffit d'activer la fonctionnalité de Serveur d'Authentification OAuth lors de l'installation du Serveur d'Application WEBDEV 2025.

L'utilisation de ce serveur d'authentification rend l'installation, l'administration et la programmation simplissime, et tout cela sans aucun coût supplémentaire au Serveur d'Application.

Ce serveur d'authentification peut être également utilisé pour l'authentification SSO.

Il gère tout !

Le serveur d'authentification OAuth livré avec WEBDEV 2025 propose toutes les fonctionnalités attendues.

En particulier, le serveur gère une base de données des comptes. Le serveur propose un site d'administration de la base des comptes: création et édition de comptes, importation de LDAP, ...

Gestion automatique du login sécurisé à votre site

La mise en oeuvre d'une authentification OAuth pour l'accès à un site ou une application demande la saisie d'un Login.

La gestion de cette saisie est prise en charge par le serveur d'authentification.

La page de saisie est paramétrable.
Cette page gère l'oubli de mot de passe.

La création d'un nouveau compte est possible depuis la page de login.

La double authentification (par email et par Authenticator) est gérée.

La fonction WLangage AuthIdentifie permet de gérer l'authentification, en affichant la page de Login.

Un langage tiers peut utiliser le serveur d'authentification WEBDEV par l'intermédiaire de requêtes HTTP.

OAuth

TOKEN, SCOPE & CONSENTEMENT

Un token est un jeton temporaire généré par le serveur, qui identifie l'utilisateur.

Lors de la création d'identifiants OAuth (couple IDClient, IDSecret), il est possible de définir facilement des permissions (des «scopes»), qui gèrent les autorisations du token généré.

Le serveur OAuth gère automatiquement la demande de consentement de l'utilisateur pour utiliser une ou des permissions (scopes) proposées.

Le renouvellement de Token est géré automatiquement.

Création de webservices sécurisés

Nouveautés 763 à 767 WD WB WM

Webservice à accès sécurisé

WEBDEV permet bien entendu de créer facilement des webservices REST.

En version 2025, WEBDEV permet également de créer tout aussi facilement des Webservices REST à accès sécurisé par token OAuth.

WEBDEV 2025 s'occupe de tout !

Le principe

L'accès au webservice nécessite la fourniture d'un token.

L'appelant du webservice doit donc obtenir ce token.

Un protocole standard pour obtenir ce token est OAuth.

Rappel : OAuth permet de gérer des autorisations d'accès.

Ce token est fourni par un serveur d'authentification, basé sur un protocole OAuth.

Schéma webservice sécurisées

Comment créer un webservice sécurisé : le détail

Il suffit de créer un webservice de la manière habituelle. Dans la description du webservice, il faut indiquer l'adresse du serveur d'authentification qui sera utilisé.

Il n'y a rien d'autre à programmer grâce à WEBDEV 2025.

Authentification initiale
oauth_parametres est un OAuth2Paramètres
...
// Demande d'authentification
MonToken est un AuthToken = AuthIdentifie(oauth_parametres)
Appel du webservice sécurisé
// Récupération du nombre de factures de l'utilisateur connecté
req est un httpRequête
req.AuthToken = MonToken
req.URL = "http://serv.monentreprise.com/V1/Facturation/Facture?num_facture=" + num
req.Envoie()

Comment créer un webservice sécurisé avec différents niveaux d'autorisations

Pour des autorisations plus fines, par exemple accordées à des utilisateurs particuliers, il est possible d'utiliser le concept de permission (scope).

Il s'agit d'une autorisation définie dans le serveur d'authentification, à l'aide d'une UI.

Exemple de permission: accès en écriture, accès à une ressource spécifique,..

Pour chaque point d'entrée du webservice il est possible d'indiquer le ou les scopes nécessaires.

Un serveur OAuth est nécessaire : le vôtre ou celui livré

Un webservice sécurisé nécessite l'utilisation d'un serveur OAuth. WEBDEV 2025 laisse le choix de ce serveur :

  • un serveur tiers
  • le serveur OAuth livré en standard avec le Serveur d'Application WEBDEV.

En cas d'utilisation d'un serveur d'authentification tiers il suffit de vérifier que ce serveur d'authentification possède les services nécessaires.

SSO Logo

SSO : Single sign on Authentification unifiée

Nouveautés 773 à 780 WB

Le principe général interopérabilité

SSO est l'acronyme de Single Sign On, que l'on pourrait traduire par «S'authentifier une seule fois pour toutes».

Le SSO permet à l'utilisateur de s'authentifier une seule fois, ses identifiants étant reconnus automatiquement sur tous les sites compatibles, sans besoin de les ressaisir.

Le login et mot de passe sont stockés uniquement sur le serveur d'authentification, garantissant la sécurité et simplifiant l'accès aux sites

Tout est géré automatiquement pour les sites développés avec WEBDEV 2025.

SSO : un serveur d'authentification livré

Pour que chacun des sites puisse fonctionner en mode SSO, ce site doit appeler un serveur d'authentification.
Le serveur d'authentification :

  • gère la base de données de comptes et leurs mots de passe
  • affiche la fenêtre de login pour la première connexion
  • renvoie les informations demandées par le site: nom, prénom, email... (Mais en aucun cas le mot de passe)
  • gère la déconnexion
  • permet de paramétrer la durée de vie du jeton stocké en local (en heures, en jours,...)

Ce serveur d'authentification est livré en standard avec le Serveur d'Application WEBDEV 2025.

Le protocole utilisé par WEBDEV 2025 est le protocole standard OpenID Connect, ce qui permet à des sites non développés avec WEBDEV d'utiliser ce serveur d'authentification.

Jeton (Token)

Tout site qui veut bénéficier d'un SSO donné doit connaître une clé secrète délivrée par le serveur d'authentification.
Pour authentifier un utilisateur, le site doit appeler la fonction WLangage AuthIdentifie, dont un paramètre est cette clé secrète.

La première authentification d'un utilisateur affiche la page de login du serveur d'authentification. Une fois connecté, le serveur délivre un Token (stocké dans un cookie).

Les authentifications suivantes détecteront automatiquement ce cookie, et valideront l'accès au site de manière silencieuse.
Il n'y a rien à programmer: tout est réalisé automatiquement par la fonction WLangage AuthIdentifie !

Intégration du SSO dans les sites

Pour qu'un site WEBDEV utilise une authentification SSO, 2 méthodes sont proposées :

Utilisation du Groupware Utilisateur (GPU)

La méthode la plus simple pour utiliser SSO dans un site WEBDEV est d'utiliser le GPU intégré. Avec cette méthode, il suffit d'indiquer les paramètres d'accès au serveur d'authentification dans la fenêtre de paramétrage du GPU. Impossible de faire plus simple.

Par programmation

La méthode par programmation est destinée aux sites qui n'utilisent pas le GPU.

La programmation reste simple grâce aux fonctions WLangage AuthIdentifie et OpenIDIdentifie.

WB SSO (Single Sign On)

État recto verso en 2 états différents

Nouveautés 230 à 233 WD WB WM
Exemple d'aperçu d'un état recto verso

Exemple : conditions générales de vente au verso d'une facture

Un état imprimé peut proposer un contenu de nature différente au recto et au verso.

L'exemple typique est une facture, imprimée au recto sur une feuille, et dont des conditions générales de vente sont imprimées au verso.

En version 2025, il devient possible d'utiliser 2 états différents pour imprimer des documents recto/verso.

L'aperçu d'un état contenant un recto et un verso différent visualise les pages côte à côte.

Le fonctionnement

La nouvelle fonction WLangage iInitEtatVerso permet de spécifier le nom de l'état à imprimer au verso.

Cet état peut tenir sur une seule page, ou sur plusieurs pages.

Lorsque l'état présent au verso comporte plus de pages que l'état présent au recto, il est possible d'indiquer d'utiliser le recto des pages «blanches».

L'état imprimé au verso peut être un document PDF rappelé sur chaque page.

// Imprime les CGV au dos de la facture
iInitEtatVerso(ETAT_CGV)
iImprimeEtat(ETAT_Facture, numero_facture)

Scan "Propre" avec téléphone Une série de photos devient un scan PDF exploitable

Nouveautés 454 à 457 WM

Créer un document PDF en prenant des photos avec un téléphone

Les nouvelles fonctions WLangage ScanDepuisCaméraVersImage et ScanDepuisCaméraVersPDF permettent de prendre des photos avec un téléphone, et de transformer la photo en document exploitable.

Les éléments parasites sont supprimés, et le document est corrigé de l'éventuelle parallaxe de prise de vue.

Un usage utile de la fonctionnalité est le scan d'un document signé de façon manuscrite.

Scan propre avec le téléphone

Tout est automatique

La fonction WLangage lance la prise de vue sur le téléphone, et matérialise le document détecté sous forme de parallélogramme. L'utilisateur peut modifier la zone.

Une fois la zone validée, l'éventuelle parallaxe est corrigé.

L'utilisateur peut scanner plusieurs pages à la suite.

Un document PDF contenant toutes les pages est généré.

Options avancées

Le scan propose un comportement avancé. Dans ce mode, le résultat renvoyé est un tableau de variables de type Image.

Cela permet d'effectuer tous les traitements spécifiques désirés.

Il est par exemple possible d'appliquer un OCR sur les images scannées en appelant les fonctions WLangage OCRDétecteZoneTexte et OCRExtraitBlocTexte.

Double authentification par SMS Votre appli récupère le SMS et traite le code reçu automatiquement

Nouveautés 444 à 446 WM
Champ métier : Double authentification par SMS

Validation d'action par réception d'un code par SMS à saisir

Un mode opératoire courant de validation dans une appli est de demander la saisie d'un code reçu par SMS.

La saisie de code dans le processus de paiement ou d'identification est souvent fastidieuse pour l'utilisateur du téléphone qui doit naviguer entre plusieurs applis.

Le Champ Métier «Récupération de code SMS» permet à votre appli d'automatiser la récupération et la saisie du code.

Ce Champ Métier utilise entre autres la nouvelle fonction WLangage SMSDétecteCodeUsageUnique.

Une UX qui dépend de l'OS du téléphone

L'UX du Champ Métier dépendra du téléphone de l'utilisateur.

Sous Android, l'opération est totalement transparente, tandis qu'iOS rajoute une sécurité en demandant un clic à l'utilisateur final.

Tous ces aspects sont gérés automatiquement par ce nouveau Champ Métier de la version 2025 : vous avez juste à copier ce Champ Métier dans votre appli !

Personnalisation totale

Et bien entendu, ce Champ Métier est totalement paramétrable, tout peut être modifié et personnalisé: champ, code,...

PDF ou Scan : Signez directement sur le téléphone

Nouveauté 458 WM

Signez (manuscrit) directement un PDF sur un téléphone

Apposez votre signature manuscrite sur un document PDF directement depuis votre téléphone.

Ce document PDF peut être un scan réalisé avec le téléphone.

Il suffit de prendre en photo, une fois pour toutes, votre signature et votre paraphe (la fonctionnalité est incluse dans le Champ Métier) et de les positionner à l'emplacement souhaité.

Le nouveau Champ Métier «Signature manuscrite dans un PDF» est livré en version 2025.

Rappel : la signature électronique est également disponible sur mobile, avec DocuSign ou YouSign.

Signature manuscrite mobile

Palettes de couleurs

Nouveautés 007 à 023 WD WM
Palettes de couleurs

Une ligne de code

Avec le concept de palette, l'utilisateur final peut changer de look de votre application en 1 clic.

Dans le code source de l'application, il suffit d'utiliser la fonction WLangage ChangePalette en indiquant la palette à appliquer.

Le changement est appliqué dynamiquement, par le moteur graphique de WINDEV 2025.

Une palette de couleurs, c'est quoi ?

Une palette est un ensemble de couleurs (une centaine).
Chaque couleur est destinée à un usage précis dans le gabarit : fond, texte, filet...

Chaque couleur est nommée en fonction de son usage : couleur_fond_principal, couleur_texte_principal, couleur_bandeau, couleur_fond_bouton...

Une palette définie attribue une couleur à chaque «nom de couleurs». Par exemple couleur_fond_bouton = jaune ou couleur_fond_bouton = RVB(125,200,36)

Lorsqu'une couleur nommée est modifiée, tous les champs qui utilisent cette couleur changent de couleur dynamiquement.

Lorsque la palette en cours est changée, tous les champs passent automatiquement en nouvelles couleurs.

Changer la palette de couleurs

La nouvelle fonction WLangage ChangePalette permet de changer la palette de couleurs utilisée par un gabarit et donc de modifier le look de l'application en une seule ligne de code.

Palettes de couleurs fournies : thème sombre

De nombreuses palettes de couleurs sont livrées en version 2025. Parmi les palettes fournies, la palette «Thème sombre» permet de passer une application en thème sombre !

Utilisez les couleurs du Windows en cours

La nouvelle fonction WLangage PaletteGénère permet de générer une palette de couleurs basée sur la couleur d'accentuation du Windows en cours d'utilisation sur la machine de l'utilisateur final. Cela permet donc de proposer facilement une UI qui s'accorde avec la couleur dominante du PC en cours d'utilisation.

Créez vos propres palettes de couleurs

La fonction PaletteGénère permet aussi de créer une palette de couleurs spécifique. Cette fonctionnalité est très utile lorsqu'un projet doit se conformer à une charte graphique définie. Il est également possible de créer des couleurs nommées supplémentaires et de les inclure dans une palette.

Un gabarit, des palettes

Le gabarit définit le style des champs: cadre des champs, arrondi, effet, police et taille de police, taille des champs... Et bien entendu un gabarit utilise des couleurs pour tous ces éléments. En version 2025, le format interne des gabarits évolue pour utiliser une palette et non plus des couleurs fixes.

Les icones et les boutons

Au changement de palette, les icones doivent s'adapter, en particulier pour un passage en thème sombre. Au changement de palettes, les couleurs des icônes changent automatiquement pour rester lisibles. En thème sombre par exemple, les couleurs passent en blanc.

Partage facile des palettes entre projets

Une palette est un fichier JSON présent sur le disque. Il est donc très facile de la partager entre différents projets.

Couleurs utilisables en WLangage

Partout où une couleur est utilisée dans le code WLangage (fonction, propriété,...) il devient possible de spéficier une «couleur nommée» à la place de la couleur en «dur». Il en est de même dans les «7 onglets».

Facture électronique

Nouveautés 148 à 149 WD WB WM

Le principe de la facturation électronique

Une facture électronique se présente sous la forme d'un document PDF A/3 (lisible par l'humain) et d'un document XML (pour les applications) qui contient les données de la facture. WINDEV permet de :

  • générer les factures en PDF A/3
  • générer le fichier XML correspondant
  • intégrer le XML dans le PDF
  • signer le PDF final (avec gestion des certificats électroniques de niveau RGS et eIDAS)

Envoyer, récupérer

WINDEV dispose de toutes les fonctionnalités pour envoyer les factures (vendeur) sur le portail public et récupérer les factures (fournisseur) sur le portail :

  • appel de webservices REST
  • support de OpenAPI
  • récupération et analyse du XML joint
  • vérification de la signature du PDF (en réception de facture)
  • service Windows d'interrogation du Portail Public

Il était déjà possible d'automatiser les liens avec le portail français Chorus Pro (mis en place pour les marchés publics). La création de factures électroniques au format Factur-X est également possible.

Graphe pourcentage imagé

Nouveautés 037 à 038 WD WB WM

Nouveau champ graphe

Un nouveau type de graphe fait son apparition en version 2025: le graphe Pourcentage Imagé («Pictural percentage graph» en anglais).

Ce nouveau graphe représente un graphique qui illustre visuellement des données sous forme de pourcentages, à l'aide d'une forme illustrative: bouteille, personne, thermomètre,...

Cela rend l'information plus facile à comprendre au premier coup d'oeil.

Graphe pourcentage imagé

La programmation

La programmation du champ Pourcentage Imagé est la programmation habituelle de remplissage des graphes.

L'image peut être fournie soit via les «7 onglets», soit par programmation.
Les formats supportés sont : vectoriel (SVG) ou bitmap (JPEG, PNG,...).

Le format vectoriel est conseillé pour favoriser les redimensionnements harmonieux.

La famille de fonctions WLangage gr habituelle permet de manipuler ce type de graphe.

Gabarit Apollo

Nouveauté 222 WD

Nouveau gabarit pour WINDEV

Le gabarit Apollo fait son apparition en version 2025.
Cela vous offre de nouvelles possibilités de personnalisation.

Utilisez librement ces gabarits pour vos applications et vos progiciels, ainsi que tous les gabarits livrés avec WINDEV.

Et n'oubliez pas : vous pouvez appliquer une palette pour changer les couleurs, et également créer vos propres gabarits.

Nouveau gabarit pour WINDEV

Gabarit Emeraude

Nouveauté 450 WM
Nouveau gabarit pour WINDEV Mobile

Nouveau gabarit pour Mobile

Le gabarit «Emeraude» pour mobiles est livré avec la version 2025 : utilisez-le librement pour personnaliser vos applis !

Utilisez librement ces gabarits pour vos applications et vos progiciels, ainsi que tous les gabarits livrés avec WINDEV Mobile.

Et n'oubliez pas : vous pouvez appliquer une palette pour changer les couleurs, et également créer vos propres gabarits.

Yousign yousign

Nouveautés 156 à 162 WD WB WM

Proposez la signature électronique yousign

La version 2025 de WINDEV propose la solution YouSign, en plus de la solution DocuSign. Ces fonctionnalités de signature électronique respectent la réglementation européenne (eIDAS).

Les 3 types de signatures électroniques

Les 3 types de signatures électroniques sont supportés :

  • La signature électronique simple, de base (SES)
  • La signature électronique avancée (AES)
  • La signature électronique avancée qualifiée (QES)

Le mode approbation

Yousign propose une fonctionnalité intéressante nommée «Approbation».

Cette fonctionnalité permet à un ou des destinataires (pas forcément signataires) d'approuver un document avant signature : par exemple approbation juridique, technique...

Cette fonctionnalité est supportée nativement par la version 2025.

Yousign signature électronique

Des fonctions faciles à utiliser

Les fonctions WLangage sont livrées sous la forme d'un Composant Interne, avec leur code source.

Les fonctions permettent de :

  • Fixer le niveau de signature
  • Transmettre un ou des documents à Yousign, à n destinataires (nom, email, numéro de téléphone...), pour signature, pour information ou pour approbation
  • Définir l'emplacement de la signature dans le document
  • Savoir si un document est signé, et qui ne l'a pas signé
  • Obtenir les dates/heures de signature
  • Récupérer les documents signés
  • Annuler les opérations

Tous les aspects de vérification, d'envoi d'email, de vérification de pièce d'identité, de stockage des documents sont totalement pris en charge par le prestataire (ici YouSign).

Facile

Un assistance génère le code

Pour simplifier le développement, un assistant intuitif permet de générer le code nécessaire.

Puissant

Accès à toutes les API

Pour traiter les cas particuliers, l'ensemble des API fournies par YouSign est accessible par un appel WLangage.

L'ensemble des points d'entrée est disponible directement dans l'éditeur de code.

Adapté

Le principe de facturation

Yousign propose plusieurs types d'abonnements, qui donnent accès aux différents types de signatures.

Le type d'abonnement à choisir est un «abonnement API».

Nouveautés du WLangage

Nouveautés 123 à 143 et 316 à 426 WD WB WM
Logo WLangage

TLS : Thread local storage, pour stocker des informations locales à un thread

La technique TLS permet à une variable globale de posséder une valeur pour chaque thread.

Cela permet d'utiliser un code existant manipulant des variables globales par plusieurs threads, sans écrasement de ces variables globales.

Appel de procédure dans des threads : plus rapide

En version 2025, l'exécution des threads utilisant des procédures est jusqu'à 8 fois plus rapide.

L'appel des procédures dans les threads a été fortement optimisé.

Conversion explicite de types simples (CAST)

En version 2025, il devient possible de forcer la conversion d'un type simple vers un autre (par exemple Entier vers Chaîne) sans utiliser de variable locale.

ref_produit est une chaîne = (chaîne) 378 + (chaîne) 578 
    // donne 378578 et non 956

Manipulation par programmation de JSON de plusieurs gigaoctets

De nos jours, de plus en plus de fichiers Json ont une taille importante, jusqu’à plusieurs Go.

Par exemple les fichiers du cadastre fournis par le gouvernement français à travers le portail OpenData sont au format JSON et de taille importante.

En version 2025, un nouveau mode d’accès aux contenus JSON fait son apparition.

Ce mode permet de gérer les contenus de taille illimitée. Le mode habituel charge le contenu JSON entièrement en mémoire, ce qui pouvait poser des problèmes de performances ou d’occupation mémoire selon la taille du JSON.

Le nouveau type JsonLecteur et la nouvelle fonction JSONOuvreLecteur permettent de lire le contenu JSON sans avoir à le charger intégralement en mémoire.

Regrouper un certificat et une clé privée dans un certificat (PFX)

En version 2025, il devient possible de fusionner un fichier de certificat sans clé privée et une clé privée dans un nouveau fichier de certificat au format pfx.

Cela est par exemple bien utile pour les utilisateurs de OpenSSL (mais pas que!).

Protocole IMAP : Recherche avec filtre

Lors du parcours sur les emails dans une session IMAP, la fonction WLangage EmailCherchePremier permet maintenant d'indiquer un critère de recherche : nom de l'expéditeur, nom du destinataire, objet, corps du message,...

Requête SQL par programmation : Possibilité d'utiliser une source de données dans une fonction SELECT

Il est possible de saisir une requête SQL directement dans le code. En version 2025, la source d'une telle requête peut elle-même être une requête provenant directement du code.

Lancement de process : Lecture et écriture sur l'entrée et la sortie standard du process

Une application WINDEV peut lancer une autre application (un autre process) écrite en WINDEV ou avec un autre langage. Cela concerne principalement les applications Console (lancées en ligne de commande).

En version 2025 il devient possible de lire sa sortie Standard (stdout) et sa sortie Erreur (stderr).

Il est également possible d'écrire sur son entrée standard (stdin). Cela permet de piloter le process lancé, et de récupérer le compte rendu du process.

Compression : jusqu'à 4 fois plus rapide

En version 2025, la fonction ZipAjouteFichier est jusqu'à 4 fois plus rapide.

Et beaucoup plus...

La version 2025 est une version vraiment impressionnante.

Parmi les 925 nouveautés, découvrez vite celles qui vous seront indispensables et celles qui rentabiliseront immédiatement votre version.

'.$wt[3].'
Etre rappelé