PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Nouveauté WINDEV, WEBDEV, WINDEV Mobile 24 !
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Nouveau champ #1 : Nouveau champ Panneau dockable
Le nouveau champ Panneau Dockable de WINDEV 24 vous fera gagner immédiatement un temps fou.
Vous organisez facilement l'interface de vos logiciels en zones librement déplaçables par l'utilisateur final.
Les Panneaux Dockables permettent la création d'interfaces sophistiquées en toute facilité.
Les utilisateurs finaux seront comblés par les possibilités de personnalisation qui leur sont offertes.
Et pour vos équipes : zéro ligne de code !
Pour plus de détails, consultez Le champ Panneau dockable.
Champ Panneau dockable : comment ça marche ?
Les champs Panneau Dockable (PaDo) peuvent être déplacés par l'utilisateur final de votre application.
Un PaDo peut être docké à gauche, à droite, en haut ou en bas. Le magnétisme entre panneaux est géré.
Un PaDo peut être sorti de la fenêtre, par exemple pour être affiché sur un 2ème écran.
Plusieurs PaDo peuvent être regroupés verticalement.
Plusieurs PaDo peuvent être regroupés dans une même zone et apparaître comme des onglets.
Un menu contextuel permet (entre autres) de faire réapparaître les PaDo supprimés.
Si nécessaire, des agencements peuvent être définis dans un PaDo, ce qui permet de l'utiliser à la fois en vertical et en horizontal.
Pour plus de détails, consultez Le champ Panneau dockable.
Champ Panneau dockable : la création
Les Panneaux Dockables (PaDo) se définissent facilement sous l'éditeur.
Il peut s'agir d'un ensemble de champs ou d'une fenêtre interne.
Pour la création d'un Panneau Dockable vous avez le choix :
  • vous pouvez créer un PaDo et le remplir avec des champs,
  • ou vous pouvez sélectionner un ensemble de champs, et d'un clic droit, déclarer qu'il s'agit d'un PaDo (refactoring).
Une fenêtre WINDEV peut contenir autant de PaDo que désirés.
Pour plus de détails, consultez Le champ Panneau dockable.
Champ Panneau dockable : la programmation
Par défaut, il n'y a rien à programmer pour bénéficier des puissantes fonctionnalités des PaDo.
Mais si vous le désirez, toutes les fonctionnalités offertes à l'utilisateur final sont disponibles en programmation.
Ce que l'utilisateur final peut faire, vous pouvez le programmer !
Par exemple docker et dédocker par programmation (fonctions WLangage de la famille Panneau), rendre visible ou invisible (propriété ..Visible), changer le titre ou l'icône (propriété ..Titre ou ..Icone ), ...
Il est même possible de créer dynamiquement un PaDo entier (fonction WLangage PanneauCrée).
Pour plus de détails, consultez :
Champ Panneau dockable : exemples d'utilisation
Les exemples d'utilisation des PaDo se comptent par centaines !
Imaginez : une zone de message, une zone d'alerte, une liste à conserver visible en permanence, un historique de commandes, le graphique temps réel des ventes, des cours de bourse, ...
Votre fenêtre principale d'une application ou d'un traitement peut être organisée librement par l'utilisateur final.
Agréable et efficace.
Pour plus de détails, consultez Le champ Panneau dockable.
Champ Panneau dockable : informations techniques résumées
  • Les Panneaux Dockables (PaDo) fonctionnent en MDI et en non MDI.
  • Les Panneaux Dockables peuvent être détachés, sur le même écran ou sur le 2ème écran.
  • On peut les docker à gauche, à droite, en haut, en bas.
  • On peut redimensionner les Panneaux Dockables comme un splitter (en MDI et non MDI; les ancrages sont utilisés).
  • Le magnétisme est géré.
  • On peut mettre tous les types de champs dans un Panneau Dockable. Le positionnement des champs est libre.
  • Il est possible d'utiliser une Fenêtre Interne dans un Panneau Dockable. Dans ce cas, les agencements de la Fenêtre Interne sont utilisés lors du redimensionnement du Panneau Dockable.
  • On peut docker 2 ou plusieurs Panneaux Dockables sur un même côté.
  • Les Panneaux Dockables verticaux peuvent être disposés côte à côte, les horizontaux peuvent être l'un au-dessus de l'autre.
  • Les Panneaux Dockables peuvent se superposer : des onglets apparaissent alors.
  • Même quand les Panneaux Dockables sont flottants, on peut les docker ensemble : cela crée une fenêtre à onglets.
  • La configuration des Panneaux est sauvée, restaurée.
Pour plus de détails, consultez Le champ Panneau dockable.
Nouveau champ #2 : Champ "à jetons"
Les interfaces utilisant des champs à jetons sont de plus en plus utilisées.
Un champ à jetons contient des informations en nombre variable dans une zone limitée.
Lorsqu'un grand nombre de possibilités de choix multiples (par exemple sélectionner plusieurs couleurs parmi des dizaines) est offert à l'utilisateur final, le champ à jetons est un moyen aisé de présenter ces choix de manière synthétique.
Quand l'utilisateur choisit un nouveau critère, ce critère s'ajoute dans le champ.
Si l'utilisateur décide de supprimer un critère de choix, il lui suffit de cliquer sur la croix à côté du critère.
En version 24, la gestion des jetons est automatique, la programmation est simplissime.
Ici les jetons sont des critères de sélection d'un bien immobilier
Ici les jetons sont des critères de sélection d'un bien immobilier
Le champ à jetons est rempli :
  • soit par saisie directe par l'utilisateur final,
  • soit par programmation, par exemple suite au clic par l'utilisateur final dans une liste de choix.
Ici les jetons sont des villes
Ici les jetons sont des villes
Des jetons divers
Des jetons divers
Pour plus de détails, consultez Manipuler un champ de saisie de type Jetons de texte.
Champ "à jetons" : saisie
Le champ à jetons est basé sur le champ de saisie.
Le champ à jetons peut être en saisie, ou uniquement en affichage.
Lorsque le champ à jetons est en saisie, il est possible de définir la touche (caractère) qui déclenche la création du jeton : RC, espace, ",", ";", touche TAB, ...
Il est possible de définir un masque de saisie : email, numérique, ...
La saisie assistée est disponible.
Le champ peut être monoligne ou multilignes (cas le plus courant).
Exemple de saisie directe dans un champ à jetons
Exemple de saisie directe dans un champ à jetons
Champ "à jetons" : Masque de saisie
Lorsque la saisie directe des jetons est autorisée, il est possible de choisir un masque de saisie, comme pour tout champ de saisie.
L'utilisateur final est ainsi guidé : email, majuscules, valeurs numériques, code postal, ...
Champ "à jetons" : exemples de styles
Les styles de jetons se définissent dans le style via les 7 onglets.
La couleur est modifiable par programmation.
Ici les jetons ont des couleurs choisies
Ici les jetons ont des couleurs choisies
Jetons rouges à bords arrondis (en saisie directe)
Jetons rouges à bords arrondis (en saisie directe)
Jetons gris rectangulaires
Jetons gris rectangulaires
Autre style de jeton
Autre style de jetons
Champ "à jetons" : la programmation
La gestion des jetons est automatique, la programmation est simplissime.
La nouvelle famille de fonctions WLangage SaisieJeton permet de programmer facilement tous les fonctionnements :
  • lister les jetons.
  • ajouter des jetons.
  • supprimer des jetons.
3 nouveaux traitements font également leur apparition dans l'éditeur de code :
  • clic sur jeton.
  • ajout d'un jeton.
  • suppression d'un jeton.
Le WLangage s'enrichit d'un nouveau type : le type Jeton.
Le type Jeton bénéficie de propriétés :
  • ..Couleur, pour changer la couleur du texte d'un jeton donné.
  • ..Couleurfond, pour changer la couleur de fond d'un jeton donné.
  • ..Libellé pour récupérer et/ou modifier le texte affiché dans un jeton.
  • ..Bulle pour indiquer une bulle différente par jeton.
La propriété ..Jeton sur le champ de saisie permet un accès indicé aux jetons affichés dans le champ.
Nouveau champ #3 : Champ Interrupteur à curseur
Les champs interrupteur "à curseur" sont de plus en plus utilisés dans les interfaces.
Le clic sur le champ déplace visuellement un curseur.
Il est également possible pour l'utilisateur final de faire glisser le curseur à l'aide de la souris.
Sur les écrans tactiles (téléphone, ...), le champ réagit de manière naturelle (glissement de doigt).
En version 24, ce type de champ est disponible pour WINDEV, WEBDEV et WINDEV Mobile.
Exemples de champs interrupteur à curseur dans les 2 positions possibles
Exemples de champs interrupteur à curseur dans les 2 positions possibles
Nouveau champ #4 : Le champ Galerie est maintenant disponible sous ­WINDEV et WINDEV Mobile
Le champ Galerie d'Images apparu en version précédente dans WEBDEV est également disponible en WINDEV 24 et WINDEV Mobile 24.
Le fonctionnement du champ et ses nombreux automatismes sont identiques dans les 3 produits, ce qui facilite la portabilité.
La gestion de l'affichage et de la navigation dans une galerie d'images est totalement et automatiquement gérée, y compris l'affichage détaillé d'une image cliquée.
Il est possible d'enrichir les traitements automatiques par programmation : affichage d'informations supplémentaires, ...
Utilisation d'un champ Galerie
Utilisation d'un champ Galerie
Masque UUID pour champ de saisie
En version 24, de nouveaux masques de saisie UUID (identifiant unique) font leur apparition : UUID 128, UUID 256, ...
Nouveaux masques de saisie UUID
Nouveaux masques de saisie UUID
Champ Traitement de texte (TT) : gestion des colonnes
Les colonnes sont maintenant supportées dans le champ Traitement de Texte de WINDEV.
Ici 2 colonnes dans une partie du document
Ici 2 colonnes dans une partie du document
Champ TT : affichage des signets
En version 24, les signets sont affichés : c'est quand même plus pratique !
Les signets sont listés dans la fenêtre
Les signets sont listés dans la fenêtre
Champ TT : édition des images avec l'éditeur d'images intégré
Les images insérées dans un document peuvent être éditées directement dans le champ, grâce à l'éditeur d'images intégré.
Edition d'une image directement dans le document
Edition d'une image directement dans le document
Document TT : gestion des mots de passe
En version 24, il devient possible d'ouvrir et de sauvegarder les fichiers DOCX avec mot de passe, et de rajouter (ou supprimer) un mot de passe sur un fichier existant.
En programmation, les fonctions WLangage de la famille DOC permettent de manipuler des documents protégés par mot de passe, et également de rajouter des mots de passe sur les documents existants.
Saisie de mot de passe
Saisie de mot de passe
Champ TT : menu contextuel disponible sur tous les éléments
En version 24, le menu contextuel devient disponible sur tous les éléments : image, ligne de tableau, pied de page, ...
Champ TT : gestion de l'altitude des blocs
En version 24, il devient possible de gérer l'altitude (z-order) des textes et des images.
Il est ainsi par exemple facile de superposer les images, quel que soit l'ordre des manipulations effectuées !
Champ  TT : sélection d'une ligne de tableau
En version 24, de nouvelles manipulations intuitives sont proposées pour sélectionner les zones de tableau : clic sur une ligne, une colonne, ...
Champ TT : vitesse des affichages
En version 24, l'affichage général des zones d'un document est bien plus rapide, ce qui est agréable lorsque l'on manipule des documents de taille importante ou contenant beaucoup d'objets.
Sont également augmentés la vitesse de sélection de texte, la saisie, les glisser/déplacer.
L'édition sur les écrans de résolution 4K est optimisée.
Champ TT : insertion de saut de section
En version 24, il devient possible d'insérer facilement des sauts de section.
Champ TT, programmation : DocInsère & DocAjoute
Les fonctions WLangage DocInsère et DocAjoute renvoient maintenant le contenu du fragment inséré.
Cela évite d'avoir à reparcourir le document.
Champ TT : divers
  • La fonction WLangage DocRemplace fonctionne dans un fragment.
  • La couleur de fond de page peut être indiquée : facilite le choix des couleurs de texte, images, ...
  • L'option "coller sans mise en forme" est proposée (CTRL Maj V).
Un traitement de texte en 1 ligne de code : Fonction OuvreDocument  
Vous connaissez les puissants champs Traitement de texte, Tableur, Editeur d'images et Lecteur PDF (documents de formats docx, xlsx, pdf, image).
Dans vos applications, lorsque vous désirez proposer l'édition d'un document dans un de ces champs, cela passait souvent par la création d'une fenêtre vierge dédiée, contenant uniquement ce champ.
En version 24, tout devient plus simple : il suffit d'une simple ligne de code telle que OuvreDocument("facture.docx") pour ouvrir une fenêtre contenant le champ traitement de texte contenant lui-même le document.
Champ Tableur : édition des images avec l'éditeur d'images intégré
Les images insérées dans une feuille de calcul (logo, ...) peuvent être éditées directement dans votre application, grâce à l'éditeur d'images intégré.
Document XLSX : protection par mot de passe
En version 24, il devient possible d'ouvrir et de sauvegarder les fichiers XLSX avec mot de passe et de rajouter un mot de passe sur un fichier existant.
Les fonctions WLangage de la famille XLS permettent de manipuler des documents protégés par mot de passe, et également de rajouter des mots de passe sur les documents existants.
Un tableur en 1 ligne de code : Fonction OuvreDocument
Dans vos applications, lorsque vous désirez proposer dans une fenêtre dédiée l'édition d'une feuille dans un champ tableur, il suffit d'une simple ligne de code :
OuvreDocument(facture.xlsx)
Champ Editeur d'images
Le champ Editeur d'Images bénéficie des nouveautés de l'Editeur d'images lui-même : ellipses, flèches, rectangles, Edit-in-place, ...
Voir nouveautés 086 à 092.
Un éditeur d'images en 1 ligne de code : Fonction OuvreDocument
Dans vos applications, lorsque vous désiriez proposer l'édition d'une image, cela passait souvent par la création d'une fenêtre vierge dédiée, contenant uniquement ce champ.
En version 24, tout devient plus simple : il suffit d'une simple ligne de code : OuvreDocument(logo.jpg).
Nouveau Champ Graphe Pyramide 3D
Un nouveau type de graphe vient enrichir la famille en version 24 : le graphe pyramide 3D.
Ce graphe 3D interactif (il tourne à la souris) permet de visualiser des données décroissantes.
Chaque étage représente un pourcentage de l'étage inférieur.
Par exemple le premier étage représente le pourcentage d'internautes qui remplissent leur panier, le 2ème étage représente le pourcentage de ces internautes qui ont validé leur panier et qui saisissent leurs coordonnées, etc.
Comme son nom l'indique, il est représenté sous la forme d'une pyramide.
Le nouveau graphe pyramide
Le nouveau graphe pyramide
Pour plus de détails, consultez Les graphes de type Pyramide.
Nouveau Champ Graphe Pyramide : fonctionnalités
Les couleurs des étages sont générées par défaut ou paramétrables par programmation.
Il est également possible de choisir la caractéristique de la tranche de pyramide qui est proportionnelle aux données : volume ou hauteur.
Pour plus de détails, consultez Les graphes de type Pyramide.
Nouveau Champ Graphe Pyramide : programmation
Le graphe Pyramide se remplit comme les autres graphes soit par programmation, soit par binding automatique.
Il est possible de définir l'orientation de la pyramide par programmation.
Pour plus de détails, consultez Les graphes de type Pyramide.
Nouveau type de graphe : affichage glissant temps réel
Ce nouveau type de graphe permet de représenter en temps réel des flux de données permanents.
Le graphe se déplace seul en fonction des données reçues en temps réel.
Le graphe se met à jour en continu
Le graphe se met à jour en continu
Pour pus de détails, consultez Graphe avec affichage en temps réel.
WINDEV, WEBDEV et WINDEV Mobile dans le même environnement : le cross plateforme puissance 24
En version 24, il est possible d'utiliser WINDEV, WEBDEV et WINDEV Mobile dans le même environnement.
Les éléments des projets sont immédiatement communs aux 3 plateformes : analyses, requêtes, états, procédures, classes, code, ...
Ces éléments s'ouvrent directement dans l'environnement de WINDEV.
Cela permet le portage et la maintenance facile d'une application WINDEV vers le mobile et vers le Web, sans avoir besoin d'importer ou de dupliquer l'existant, ni de changer d'environnement.
Directement depuis l’environnement WINDEV, dans le menu de création de projet ou de configuration: choisissez Windows, Site, Android, iOS, ...
Directement depuis l’environnement WINDEV, dans le menu de création de projet ou de configuration: choisissez Windows, Site, Android, iOS, ...
Un copier/coller de champ (ici un bouton) depuis une fenêtre WINDEV vers une page WEBDEV. Notez que l’aspect du bouton est conservé, ce qui fait encore gagner du temps !
Un copier/coller de champ (ici un bouton) depuis une fenêtre WINDEV vers une page WEBDEV. Notez que l’aspect du bouton est conservé, ce qui fait encore gagner du temps !
Il est inutile d'avoir plusieurs projets, 1 seul projet suffit
En version 24, il devient donc possible de créer dans un seul projet et sous le seul environnement de WINDEV des configurations de tous les types :
  • application WINDEV.
  • site WEBDEV.
  • appli iOS.
  • appli Android.
  • ...
Il est possible de basculer immédiatement d'une configuration à l'autre.
Toutes les configurations continuent d'évoluer pour les 3 plateformes au sein du même projet.
Modifiez un code, faites un GO de l'application et un GO du site et un GO de l'appli mobile
Un avantage de cette nouveauté de la version 24 est de permettre le test immédiat d'une modification que l'on vient d'effectuer : code métier, requête, procédure, classe, état, ...
Il suffit d'un double-clic pour sélectionner la configuration à tester puis de cliquer sur GO !
Vous testez ainsi immédiatement la plateforme désirée.
Vous imaginez facilement le nombre de manipulations évitées !
Et n'oubliez pas : inutile de dupliquer le code dans chaque projet !
Copiez directement un champ WINDEV dans une page WEBDEV
En version 24, il devient donc possible d'ouvrir simultanément des fenêtres ­WINDEV, des pages WEBDEV et des fenêtres WINDEV Mobile au sein du même environnement.
Il est possible bien entendu de transformer automatiquement une fenêtre entière en une page Web (ou en fenêtre mobile) en une seule manipulation.
Il devient également possible de ne transformer qu'un seul élément d'une fenêtre vers une page.
Le copier/coller de champ est disponible entre pages et fenêtres différentes.
Le champ copié dans WEBDEV conserve ses caractéristiques originales et son look.
Rappel : il est nécessaire de posséder une licence pour chaque produit.
Présentation
Un besoin répandu aujourd'hui est de transformer des applications Windows (ou des parties d'applications) en sites Web dynamiques.
Vous le savez, WEBDEV permet de récupérer le code, les requêtes, les états, les classes, les fenêtres, ... existants d'une application WINDEV.
La version 24 va beaucoup plus loin.
Pour plus de détails, consultez Webiser un projet WINDEV.
Une nouvelle manière de développer
L'ancienne méthode de conversion de projet consistait à dupliquer le projet WINDEV dans WEBDEV. Ça fonctionnait, mais on avait tout en double.
Ensuite était apparu la possibilité d'ouvrir un même projet avec WINDEV et WEBDEV. Mais cela demandait de passer en permanence de WINDEV à WEBDEV pour les manipulations, et cela prenait beaucoup de temps.
En version 24, c'est la révolution !
Toutes les manipulations peuvent s'effectuer depuis l'environnement de WINDEV.
C'est déjà énorme, mais ce n'est pas tout : vous bénéficiez en plus de :
  • un assistant de migration.
  • la transformation de fenêtre en page conserve le look initial.
  • l'augmentation du nombre de fonctions WLangage communes accroît la compatibilité; en particulier la fonction Ouvre est disponible sous WEBDEV.
  • ...
Pour plus de détails, consultez Webiser un projet WINDEV.
Lancement de WEBDEV directement dans l'éditeur de WINDEV
Avoir la possibilité en version 24 d'ouvrir WEBDEV dans WINDEV est un confort sans équivalent pour wébiser vos applications, et également pour maintenir application Windows et application Web en parallèle. Avoir les éléments communs dans le même projet génère un gain de temps phénoménal.
Il est bien entendu nécessaire de posséder une licence de WEBDEV pour lancer WEBDEV depuis WINDEV.
Voir nouveautés 036 à 039.
Assistant de passage de WINDEV à WEBDEV
Pour aider à passer des applications WINDEV existantes en sites WEBDEV, un assistant analyse l'application WINDEV et génère un rapport précis contenant les modifications éventuelles à apporter au code.
Ce rapport permet de gagner beaucoup de temps.
Extrait de la fenêtre d'aide à la webisation : cliquez sur une ligne pour vous rendre sur l'élément correspondant
Extrait de la fenêtre d'aide à la webisation : cliquez sur une ligne pour vous rendre sur l'élément correspondant
Par exemple :
  • si la fonction WLangage fSélecteur (qui ouvre un sélecteur de fichier et renvoie le chemin complet du fichier sélectionné par l'utilisateur final) est utilisée dans l'application WINDEV, l'assistant signale immédiatement que ce concept n'existe pas en Web et qu'il faut modifier cette partie. En effet, un navigateur Internet n'a pas le droit d'explorer le disque de la machine de l'utilisateur. Ici l'assistant conseillera d'utiliser un champ "Upload", qui lui permet de sélectionner un fichier et lire son contenu depuis un navigateur.
  • si une lecture de la Registry est effectuée, le rapport indique que cela n'est pas autorisé depuis un navigateur : il faut donc la supprimer ou remplacer ce code.
  • si l'application lançait Word, le rapport indique qu'un navigateur n'a pas le droit de lancer une autre application.
  • si l'application écrit directement sur le disque du PC, le rapport indique qu'un navigateur n'a pas le droit d'écrire sur le disque du matériel de l'internaute.
  • ...
Il suffit de cliquer sur chaque ligne pour corriger le problème.
Pour plus de détails, consultez Webiser un projet WINDEV.
Transformation Fenêtre en Page en 1 clic
Dans certains cas, ce n'est pas une application entière que l'on passe en Web, mais certaines fenêtres uniquement.
La version 24 vous aide également dans ce mode opératoire.
Les manipulations pour transformer une fenêtre WINDEV en une page WEBDEV sont simplifiées : il suffit maintenant d'effectuer un clic droit sur une fenêtre WINDEV, de sélectionner "convertir en page WEBDEV", et hop, le tour est joué !
Pour plus de détails, consultez Webiser un projet WINDEV.
Transformation Fenêtre en Page : 180 améliorations de conversion de l'IHM
La version 24 améliore la transformation automatique des champs de WINDEV à WEBDEV :
  • le nombre de propriétés des champs prises en compte augmente sensiblement; par exemple, en version 24, un bouton est migré avec son look.
  • si un champ à migrer n'existe pas en Web, il est converti dans un type de champ au fonctionnement équivalent. Par exemple un champ WINDEV de type Ruban sera converti en champ WEBDEV de type Onglet, avec un look et une taille équivalents.
Transformation Fenêtre en Page : Nombre de fonctions WLangage partagées entre WINDEV et WEBDEV augmenté
Le nombre de fonctions WLangage compatibles entre WINDEV et WEBDEV augmente en version 24.
Près de 100 nouvelles fonctions sont ajoutées.
En particulier, la fonction WLangage Ouvre est maintenant supportée en WEBDEV.
"OUVRE" et "FERME" dans WEBDEV : le code WINDEV existant fonctionne directement
Pour faciliter le passage des applications WINDEV en sites WEBDEV et pour conserver les habitudes de programmation, les fonctions WLangage OUVRE et FERME sont maintenant reconnues en WEBDEV (en code serveur, Ajax ou pas).
En version 24, il n'est donc plus nécessaire de modifier le code d'ouverture des pages.
Il est important de noter que la fonction Ouvre conserve les mêmes propriétés en WEBDEV qu'en WINDEV : elle est bloquante : tant que la page ouverte n'a pas été fermée, le code après le Ouvre n'est pas exécuté.
Un clic suffit à transformer une fenêtre WINDEV en page WEBDEV, directement dans l’éditeur de WINDEV. Il suffit ensuite de lancer l’assistant de conversion pour adapter le code. Il est également possible de convertir l’application entière d’un clic.
Un clic suffit à transformer une fenêtre WINDEV en page WEBDEV, directement dans l’éditeur de WINDEV.
Il suffit ensuite de lancer l’assistant de conversion pour adapter le code.
Il est également possible de convertir l’application entière d’un clic.
Import de modèle "champ/fenêtre", avec conservation de l'héritage
Si une fenêtre WINDEV est basée sur un Modèle, lors de la transformation de la fenêtre en page WEBDEV, le Modèle de fenêtres est transformé en Modèle de pages.
L'héritage est conservé entre la page convertie et le modèle lui-même converti.
Si une autre fenêtre basée sur un modèle déjà converti est convertie à son tour, la page sera automatiquement basée sur le modèle déjà converti.
La conversion des IHM s'effectue à un haut niveau.
Présentation
Une nouveauté puissante de la version 24 concernant l’architecture de vos applications est la présence d’une aide au découpage du code métier et du code de l’IHM.
Cette nouvelle fonctionnalité, décrite dans le détail ci-après permet de "sortir" le Code Métier d’une fenêtre pour le rendre indépendant de l’interface, et donc de pouvoir le partager ou le porter vers d’autres cibles, et de le maintenir plus facilement.
Pour plus de détails, consultez Découpage code Métier / IHM.
Découpage Code/IHM ?
Au niveau méthodologie, certaines équipes de développement décident de séparer le code métier du code IHM.
Cela permet un meilleur portage des grosses applications en cross plateforme.
La version 24 apporte des solutions innovantes à la fois pour les nouveaux projets et pour les projets existants que l'on souhaite découper.
  • Une option permet de différencier le code métier et le code IHM. Sous l'éditeur de code, une couleur de fond différente identifie chaque type de code.
  • Des attributs à positionner dans le code permettent d'affiner la coloration.
  • Un choix de l'éditeur de code permet d'extraire le code métier dans une classe (POO) ou dans une collection de procédures (programmation procédurale).
Vous disposez des outils nécessaires pour mettre en place l'architecture de votre choix, sans contraintes ni obligations.
Un même projet peut comporter des architectures différentes : par exemple dans un projet déjà existant, on peut décider de séparer le code métier et IHM uniquement pour les évolutions à venir ou pour certaines fenêtres.
Pour plus de détails, consultez Découpage code Métier / IHM.
La couleur vous guide
Dans tout projet existant, avec les années d'évolution et de maintenance, le plat de sushis peut se transformer petit à petit en plat de spaghettis bolognaise, ...
Extrait de la fenêtre d'aide au découpage de code
Extrait de la fenêtre d'aide au découpage de code
En version 24, l'option "activer la coloration Métier/IHM" permet d'avoir une vision synthétique et immédiate des imbrications de code.
Le code métier apparaît en fond bleu, et le code IHM est lui en fond vert.
Ces couleurs sont paramétrables.
Certaines lignes peuvent inclure à la fois du code métier et du code d'IHM. Ces lignes sont en fond orange.
Les appels de procédure sont même colorés en fonction du contenu de la procédure !
Lorsque le code présente une alternance de couleurs, cela signifie certainement que tout est mélangé ! Ce n'est pas forcément un code mal écrit, c'est juste un code qui ne respecte pas cette architecture.
Pour respecter l'architecture de découpage, il faut simplement regrouper les codes identiques, c'est-à-dire de même couleur.
Pour plus de détails, consultez Découpage code Métier / IHM.
Découpage : Aide à la structuration du code existant
Si vous désirez extraire un bloc de code de même couleur pour en faire une nouvelle procédure, il suffit de :
  • sélectionner le bloc de lignes de code.
  • clic droit et cliquer sur le choix Refactoring puis soit "Créer une procédure locale", soit "Créer une procédure globale".
Une nouvelle procédure sera automatiquement créée et contiendra ces lignes de code; il suffit d'indiquer le nom de la procédure à créer automatiquement.
Si un passage de paramètres est nécessaire, les paramètres que la procédure attend sont automatiquement détectés et générés.
A l'emplacement d'origine des lignes, un appel à cette procédure (avec les paramètres adéquats) est généré.
Vraiment puissant !
Pour plus de détails, consultez Découpage code Métier / IHM.
Attribut de procédure : Métier ou IHM ?
En version 24, il devient possible d'indiquer par un attribut si une procédure ne doit contenir que du code métier ou que du code IHM.
Définition de l'attribut
Cet attribut est également utilisable avec les variables, en particulier les variables globales de la fenêtre. Cela permet de catégoriser les variables d'une fenêtre pour aider à découper le code.
Lorsque ces attributs sont utilisés, la compilation détecte les violations d'attribut.
Lorsque du code IHM est saisi dans une procédure Métier, une erreur de compilation est générée.
L'appel d'une procédure qui exécute du code Métier dans une procédure qui a un attribut IHM génère une erreur de compilation.
Cela permet de vérifier la structuration du code d'un élément.
La détection des erreurs d'attribut peut être demandée soit par fenêtre, soit pour le projet complet.
Il est ainsi facile d'appliquer l'architecture sur une partie de projet uniquement.
Découpage automatique
Choisissez simplement comment extraire le code
Choisissez simplement comment extraire le code
Une fois que les attributs sont positionnés (et qu'il n'y a plus d'erreurs détectées!), il suffit de demander à WINDEV d'extraire le code Métier.
Pour les adeptes de la programmation procédurale, WINDEV génère une collection de procédures contenant le code Métier.Pour les adeptes de la POO, WINDEV génère une classe et ses membres contenant le code Métier.
Dans les 2 cas, le code IHM reste dans la fenêtre.
Pour plus de détails, consultez Découpage code Métier / IHM.
Rappel 
WINDEV permet de saisir des "Règles Métier" (parfois appelées "Règles de Gestion").
Il s’agit d’explications sur la règle de traitement à apporter à une rubrique, un code, une fenêtre.
Par exemple: "Attention, le prix TTC inclut la taxe additionnelle en plus de la TVA".
En version 24, ces Règles Métier peuvent servir automatiquement d’aide aux utilisateurs finaux.
Saisie des règles métier facilitée 
En version 24, la saisie des Règles Métier s'effectue en mode Traitement de Texte et non plus en mode RTF : c'est plus facile et plus riche en présentation.
Il est facile d'insérer des images, des tableaux, des infographies, des workflows, ...
Une nouvelle option permet d'indiquer pour chaque Règle Métier si celle-ci peut être visible ou pas par l'utilisateur final (Règle Métier diffusable).
Une Règle Métier peut être associée à un ou plusieurs champs.
Ici une Règle Métier sur la gestion des livraisons
Ici une Règle Métier sur la gestion des livraisons
Un PDF est généré et peut être inclus dans votre application
L'ensemble des Règles Métier diffusables d'un projet peut également être automatiquement regroupé dans un document PDF. Ce document est installé avec l'application.
L'utilisateur final peut le consulter à travers le menu "?".
Règles métier : affichable automatiquement à côté du champ comme "aide" pour l'utilisateur
Lorsqu'une règle Métier est diffusable et qu'elle est associée à un champ, par défaut, un picto "?" (personnalisable) apparaît automatiquement à côté du champ.
Un clic sur ce picto affiche la règle Métier.
Il est possible de supprimer ce picto et de personnaliser l'affichage (voir nouveauté 218 ).
Le picto et l'aide sont automatiquement générés
Le picto et l'aide sont automatiquement générés
Galerie d'images du projet : pour une vue d'ensemble des images utilisées
En version 24, il devient possible de visualiser d'un clic l'ensemble des images d'un projet.
Cette galerie est visualisée depuis les "7 onglets".
Vous avez une vue d'ensemble de toutes les images utilisées dans le projet
Vous avez une vue d'ensemble de toutes les images utilisées dans le projet
Galerie d'images du projet : allégez vos projets : images inutilisées, doublons, ...
Lorsqu'une image est présente dans le répertoire (et sous-répertoires) du projet et que cette image n'est pas utilisée, elle est signalée.
Si nécessaire, vous pouvez la supprimer.
Les images en doublon sont signalées : images strictement identiques bien sûr, mais également les images binairement identiques mais avec un nom différent, ou stockées dans des sous-répertoires différents.
Supprimer des images permet d'alléger la taille des projets.
Les images qui ne sont pas historisées (versionnées) dans le GDS sont également signalées.
Tableau de bord du projet : Nouveau widget "Modèles"
Dans le Tableau de Bord du projet, un nouveau Widget fait son apparition.
Ce Widget affiche une vue d’ensemble des modèles utilisés dans le projet : nombre total de modèles, et surtout nombre de fenêtres (pages, champs, états, ...) pas à jour de leur modèle.
Le widget permet de déclencher la mise à jour des modèles (bouton rouge).
Affichage des actualités et des nouveautés
L'éditeur affiche maintenant des informations et des actualités sur vos produits : nouvelle version disponible, nouveaux téléchargements mis en ligne, date des formations, WINDEV Tour, etc.
Cet affichage est paramétrable.
Accès rapide à "Mes projets"
Dans les éditeurs, lors de l'ouverture du sélecteur de fichiers, le répertoire "Mes Projets" (ou "Mes sites") apparaît dans la liste des répertoires présélectionnés.
Une petite nouveauté bien pratique.
Menu contextuel de l'explorateur de projets : option "Dupliquer"
Le menu contextuel de l'explorateur de projets s'enrichit d'une nouvelle commande pratique : la duplication.
Cette fonctionnalité permet de dupliquer rapidement une fenêtre, une classe, une requête, une page, ...
XML modèle : déclencher la mise à jour
Dans un projet, vous pouvez utiliser des documents XML "Modèles".
Ces modèles permettent au compilateur de connaître la structure du XML qui va être manipulé par programmation.
La présence de ces modèles permet la complétion automatique, la détection des erreurs de compilation, ...
En version 24, lorsque le fichier XML "modèle" est mis à jour sur le disque, une option de menu permet de mettre à jour le "XML Modèle" dans l'environnement.
Multi-écrans et dpi différents
Vous le savez, l'environnement supporte le mode multi-écrans.
Ce mode de travail est d'ailleurs très confortable, si vous pouvez en bénéficier notre conseil est : foncez ! (vous êtes déjà près de 70% à travailler dans ce mode).
La version 24 gère maintenant les écrans de DPI différents sur un même PC.
Tous les mélanges d'écrans sont supportés !
Tous les mélanges d'écrans sont supportés !
Mise à jour des environnements
La mise à jour en dernière version de vos éditeurs s'effectue automatiquement par " automatic update " (sauf si vous avez désélectionné l'option).
En version 24, il devient également possible de se mettre à jour de la dernière version d'un clic.
Il n'y a plus une série de mises à jour successives à effectuer comme cela a pu exister dans le passé.
Exemples toujours à jour : dans le cloud, téléchargés à la demande
WINDEV est livré avec 294 exemples : 37 projets complets, 101 projets didactiques, 156 exemples unitaires.
Les exemples évoluent en permanence : nouvelles fonctionnalités, nouvelles contraintes législatives, correction de dysfonctionnement, ajout de nouvelles langues, ...
Afin que vous disposiez en permanence de la dernière version des exemples, l'éditeur va chercher automatiquement dans le cloud la dernière version de l'exemple que vous chargez.
Le projet est alors copié en local sur votre poste.
Affichage de picto de plateforme de l'exemple
Petite nouveauté pratique, pour chaque exemple, l'éditeur affiche un picto qui indique sur quelle(s) plateforme(s) porte l'exemple.
Aide en ligne de l'environnement
En version 24, l'aide en ligne que vos équipes utilisent quotidiennement évolue vers encore plus de fonctionnalités et de confort.
  • Le Guide d'Autoformation (GAF), livré sous forme de manuel papier est également disponible en ligne.
  • Petit détail très pratique : un clic sur une image de l'Aide en Ligne affiche l'image en haute définition. Utile pour voir les détails !
Editeur d'analyses : crème anti-rides
En version 24, l'éditeur d'Analyses prend un coup de jeune !
L'édition des rubriques est bien plus simple et bien plus fluide qu'avec les anciennes versions.
Composant d'accès aux données du centre de suivi
Les informations du Centre de Suivi de Projets (exigences, tâches, bogues, intervenants, ...) sont accessibles en programmation par l'intermédiaire d'un composant fourni.
Ce composant permet de retraiter ces données, par exemple pour éditer des statistiques particulières, partager les données avec un autre outil.
Responsable d'une exigence
Une exigence est découpée en tâches.
Les tâches sont affectées à des membres de l'équipe. Il est maintenant possible d'indiquer quel est le membre de l'équipe responsable de l'exigence.
Le responsable ne peut pas mettre sa tâche en "terminée" tant que les tâches des autres membres ne sont pas terminées.
Le responsable sera notifié à chaque fois qu'un membre de l'équipe termine sa tâche.
Time tracking : Listage des temps passés
Le listage des temps passés peut maintenant être effectué sur une exigence ou sur toutes les exigences d'un dossier.
Audit statique : analyse sans liaison
En version 24, l'Audit statique signale les analyses sans liaisons définies entre les fichiers de données (tables).
L'absence de définition des liaisons ne permet pas la gestion automatique de l'intégrité référentielle, ce qui est un risque pour la qualité de l'application.
En version 24, lorsque vous reprenez une application, vous serez alerté sur cette absence.
Dossier de programmation : nouveau look
Le dossier de programmation fait peau neuve en version 24 ! (version PDF et version papier).
Le look des pages est plus moderne, l'information est plus lisible et l'interface de sélection des éléments à éditer est plus conviviale.
Dossier de programmation : informations supplémentaires
Le dossier s'enrichit de nouvelles informations :
  • Tableau de bord du projet.
  • Informations statistiques sur l'utilisation du GDS.
  • ...
Dossier de programmation : mode synthétique
Le dossier de programmation peut être édité dans un nouveau mode synthétique (par rapport au mode exhaustif, qui édite tous les détails sur tous les éléments du projet).
Ce mode synthétique bénéficie d'une interface de saisie conviviale des éléments à afficher.
Plusieurs modes d'édition du dossier sont proposés
Plusieurs modes d'édition du dossier sont proposés
Dossier de programmation : optimisations sur gros volumes
Dans les anciennes versions, la génération d'un dossier d'un très gros projet pouvait dans certains cas demander un temps d'attente.
En version 24, quelle que soit la taille du projet, l'édition du dossier est fluide et continue.
Nouvelle action pour mettre à jour des Webservices
L'intégration continue est basée sur l'exécution de plans d'actions. Une nouvelle action permet de demander la mise à jour du fichier de description WSDL des Webservices utilisés dans le projet.
Spécifier un automate pour exécuter un plan d'action
En version 24, il devient possible d'affecter un automate à l'exécution de certains plans d'actions.
Cela peut être utile pour utiliser une machine puissante, ou une machine dotée de périphériques attendus : imprimante, ...
Install compacte : ligne de commande
L'install compacte accepte maintenant les lignes de commande et leurs paramètres.
Install réseau : mise à jour en fermeture de l'application (en option)
Lorsqu'un utilisateur final lance son application, un message automatique peut lui demander de cliquer pour effectuer une mise à jour. Mais souvent l'utilisateur final est pressé et voudrait utiliser son application immédiatement.
En version 24, une nouvelle option est proposée à l'utilisateur final : mettre à jour son application à la fermeture de l'application.
Historique des saisies : supprimer une ou des entrées
Parmi les FAA proposées sur le champ de saisie, la conservation de l'historique des saisies est très appréciée et très utilisée par les utilisateurs finaux.
Cette FAA permet à l'utilisateur final de sélectionner directement les valeurs précédemment saisies.
En version 24, il devient possible de supprimer une ou des valeurs précédemment saisies.
Les valeurs confidentielles, parasites ou sans intérêt peuvent être supprimées par l'utilisateur pour raccourcir la liste !
Lien des FAA avec le Groupware Utilisateur pour le RGPD
L'utilisation des FAA d'export peut être restreinte par un mot de passe programmé.
En version 24, il devient possible de protéger les exports directement à partir du paramétrage du Groupware Utilisateur, donc par groupe et utilisateur.
(voir nouveauté 083 et 178).
Lien avec RGPD
Le Groupware Utilisateur intègre des fonctionnalités dédiées au RGPD.
Les fenêtres manipulant des données personnelles sont mises en évidence dans l'interface de définition des droits du Groupware Utilisateur.
Ainsi le Superviseur peut affiner les droits des utilisateurs et des groupes en fonction des contraintes RGPD liées à ces données.
Authentification OAuth + OpenID
L'authentification OAuth + OpenID est surtout utile pour les sites à destination du public, mais pas que.
Ce mécanisme permet à l'utilisateur final d'éviter de créer un énième mot de passe en utilisant ses identifiants d'accès à un réseau social.
La norme OAuth permet d'authentifier un utilisateur.
La norme OpenID permet de connaître cet utilisateur.
Une fois l'utilisateur identifié par OAuth, le profil de cet utilisateur est transmis par OpenID à votre application ou à votre site.
Par défaut les boutons suivants sont proposés :
  • Facebook
  • Google
  • LinkedIn
  • Microsoft
Il est également possible de créer ses propres boutons pour d'autres OpenID Identity provider : Instagram, ...
Voir également nouveauté 124.
Groupware Utilisateur multilingue
Avant la version 24, les fichiers utilisés par le Groupware Utilisateur (GPU) pour l'identification et les autorisations de connexion étaient spécifiques à la langue de l'éditeur.
En version 24, les fichiers sont portables entre les différentes langues de l'éditeur.
Il est de même maintenant possible d'utiliser le GPU dans WEBDEV en mixant les langues du Framework et du Serveur d'Application.
Nouveaux outils
L'éditeur d'images intégré à l'environnement propose de nouveaux outils en version 24.
Notez que ces nouveaux outils sont également disponibles dans le champ Editeur d'images que vous pouvez inclure dans vos applications.
Ellipse, rond, Ovale
Une ellipse est une forme ovale.
En version 24, l'éditeur d'images permet de créer des ellipses.
Il est possible de spécifier l'épaisseur du trait, sa couleur, la couleur de fond, ...
Des ronds, des ellipses et des ovales
Flèche
L'outil "flèche" propose les fonctionnalités attendues : épaisseur de trait, couleur, type de trait, position de la ou des flèches, types de flèche, taille de la flèche, ...
Rectangle
Il est possible de créer directement des rectangles avec l'éditeur d'images.
De nombreux paramètres sont disponibles : l'épaisseur du trait, sa couleur, la couleur de fond, l'arrondi des angles, ...
Edit in place "new look" (menu d'édition rapide plus convivial)
La modification des images sous l'éditeur d'images peut s'effectuer de différentes manières.
Parmi ces manières il est possible d'effectuer un clic droit sur un élément, pour afficher un menu "contextuel" sur cet élément à modifier.
En version 24, ce menu contextuel a été rendu plus convivial.
Le nouveau menu Edit In Place
Sélection du calque approprié par défaut
Une image peut comporter plusieurs calques superposés.
La combinaison de touches CTRL + CLIC permet de sélectionner directement le calque le plus approprié, c'est-à-dire celui qui contient de la matière sous la pointe du curseur de souris !
Champ Editeur d'images
Vous le savez, vous pouvez inclure un champ "Editeur d'images" dans vos fenêtres.
Vous pouvez décider que l'utilisateur final ne pourra pas charger d'autre image que celle que vous affichez, ou ne pas pouvoir en créer de nouvelle : il pourra juste modifier l'image que vous affichez.
En version 24, la suppression des boutons "NOUVEAU" et "OUVRIR" du ruban du champ Editeur d'images s'effectue directement par un clic dans les 7 onglets.
GDS
GDS : Mode "extraction silencieuse"
En version 24, la fenêtre de confirmation d'extraction peut ne plus apparaître.
L'option "Extraction Silencieuse" permet de spécifier que cette fenêtre ne doit plus s'afficher.
Cela permet aux utilisateurs habitués au mode opératoire du GDS d'éliminer une étape informative nécessitant une validation, et donc de travailler plus rapidement.
Partage de répertoire (et de contenu) entre plusieurs GDS différents
En version 24, il devient possible de partager un répertoire et son contenu entre plusieurs GDS différents : une classe de gestion de logs, un composant interne d'envoi d'email, ...
Cela permet de structurer le partage d'éléments dans des grandes organisations.
GDS : Affichage des commentaires lors de la récupération
Lors de la réintégration, un commentaire peut être saisi par le développeur (c'est d'ailleurs recommandé !).
C'est une "bonne pratique".
En version 24, les commentaires de tous les éléments récupérés (éléments dont on se met à jour), sont automatiquement affichés lors de la récupération.
Cela permet de lire les commentaires des autres développeurs sans avoir de manipulations à effectuer.
GDS : commentaire pré-rempli
Les commentaires de réintégration peuvent se baser sur un modèle (un template) personnalisable.
Par exemple :
  • Version,
  • Date,
  • Nom du Développeur,
  • ...
La zone de commentaires contiendra ces informations déjà renseignées lors des phases de réintégration : pas de risque d'oubli, et normalisation appréciable.
Le contenu du template se précise dans l'option "Modèle de commentaires".
Historique de mes commentaires
Un développeur peut visualiser d'un clic l'ensemble des commentaires qu'il a saisi.
Lien HTML dans les commentaires et dans les chaînes
Lorsqu'un commentaire de code contient une adresse http ou https (par exemple un lien vers une aide sur un sujet), cette adresse est directement clicable.
Il suffit d'utiliser la combinaison de touches CTRL + Clic (pour éviter de lancer des sites alors qu'on veut juste éditer le texte, ...). Cela permet de consulter une page ou de tester facilement.
Des liens https dans le code, directement clicables
Des liens https dans le code, directement clicables
Cette fonctionnalité est également disponible dans les chaînes texte utilisées en programmation.
Traitements : vous avez le pouvoir de les rendre invisibles
Vous le savez, la saisie de code s'effectue dans l'éditeur qui propose les traitements (événements) possibles sur le champ : Entrée, Modification, Sortie, Clic, ...
Une série d'événements standard est systématiquement proposée pour chaque champ.
En version 24, il devient possible de masquer des éléments de cette liste.
Selon vos habitudes de programmation, cela permet un éditeur de code épuré.
L'éditeur de code en mode
L'éditeur de code en mode "par défaut"
L'éditeur de code personnalisé : des traitements non utilisés ont été masqués. La présentation est plus claire
L'éditeur de code personnalisé : des traitements non utilisés ont été masqués. La présentation est plus claire
(Il existe bien sûr également toujours les traitements optionnels qu'il est possible d'activer).
A l'aide ! Les syntaxes multiples
De nombreuses fonctions WLangage proposent plusieurs syntaxes possibles.
Ces syntaxes peuvent prendre des paramètres différents.
Dans les anciennes versions (23 et avant) la bulle d'aide proposait uniquement les paramètres de la première syntaxe.
En version 24, l'ensemble des syntaxes est proposé dans une mini bulle, au-dessus de la ligne.
Double effet : d'une part vous pouvez sélectionner la syntaxe que vous désirez, et d'autre part cela vous permet de découvrir des syntaxes dont vous n'aviez pas connaissance et qui peuvent être très utiles pour vous !
Merci version 24 !
L'aide pour chacune des 4 syntaxes est affichée
L'aide pour chacune des 4 syntaxes est affichée
Inversion d'affectation
En version 24, il devient possible d'inverser une ou plusieurs affectations en 1 seule manipulation.
Par exemple en POO, une procédure de chargement depuis un fichier HFSQL :
NOM = Client.nom
PRENOM = Client.prénom
Lorsque la méthode de sauvegarde doit être écrite, il faut tout inverser.
En version 24, il suffit de copier les affectations de la procédure de chargement, de les coller et d'inverser l'ensemble des affectations en 1 clic.
Attributs (directive de compilation) : les connaître et les sélectionner
Un attribut est une directive passée au compilateur.
Le compilateur produit du byte-code différent selon les attributs passés.
Le WLangage propose de plus en plus d'attributs.
Ces attributs sont puissants et pratiques : mapping, sérialise, ...
De nouveaux attributs arrivent à chaque nouvelle version.
En version 24, pour connaître ces attributs, il suffit de taper le caractère " < " pour voir apparaître la liste des attributs disponibles pour la ligne en cours.
Renommage intelligent de membres
Lorsqu'un membre d'une classe est renommé, une erreur de compilation d'IHM apparaît.
Une icône Ampoule présente à gauche du message d'erreur indique que l'éditeur peut vous aider.
Cliquez sur l'ampoule et un renommage intelligent est effectué dans tout votre projet.
Cliquez sur l'ampoule pour renommer !
Cliquez sur l'ampoule pour renommer !
LDAP : assistant de génération de code
Les fonctions WLangage de la famille LDAP proposent de très nombreux paramètres.
En version 24, un assistant offre ses services pour le choix des paramètres de fonctions WLangage de la famille LDAP.
Répondez simplement aux questions pour générer le code
Répondez simplement aux questions pour générer le code
Editeur d'états : couleur de fond
L'éditeur d'états permet d'indiquer la couleur de fond du papier.
Cette couleur sera visualisée sous l'éditeur, afin de pouvoir choisir des couleurs adaptées pour les champs, les textes, les cadres, les décors, ...
Editeur d'états : ..Note
Vous connaissez certainement la propriété ..Note qui permet d'associer une note à un champ d'une fenêtre.
En version 24, il devient également possible d'associer des notes à un état.
Rappel : le contenu de cette note est accessible par programmation; certains développeurs s'en servent même pour y stocker du code conditionnel qui sera exécuté en compilation dynamique dans des cas particuliers !
Editeur d'états : tableur
L'éditeur d'états propose un assistant pour imprimer les champs Tableur utilisés dans l'application.
La création d'un état contenant une feuille de tableur est très facile en version 24.
Editeur d'états : liste des champs (F12)
La fenêtre de listage des champs d'un état a été revue en version 24.
Son interface est maintenant normalisée.
La recherche de champs est facilitée, et de nombreuses fonctionnalités sont proposées : verrouillage, sélection, recherche.
Nouvelle syntaxe préfixée sur toutes les fonctions ! [Tout].fonction
Vous avez découvert la saisie préfixée sur les champs en version 23, et vous avez adoré !
L'intérêt de cette syntaxe est que lorsque vous tapez un nom de variable, après la saisie de "." une combo apparaît et propose la liste des fonctions qui s'appliquent à cette variable.
En version 24, ce type de saisie devient disponible pour les autres éléments : Chaîne, Tableau, File, Pile, Liste, Types avancés, ...
Par exemple :
MaChaîne est une chaîne = "Ceci est un test"
MaChaîne.Gauche(4)
MonTableau.Ajoute(client)
Exemple de syntaxe sur un élément Tableau
Exemple de syntaxe sur un élément Tableau
Voir liste complète en nouveauté 303.
Nouveau type JSON natif
Le format JSON est de plus en plus utilisé.
En version 24, un type natif JSON fait son apparition en WLangage.
Ce type permet de manipuler nativement les données au format JSON (sans avoir à faire de construction ou d'analyse de chaines).
Un "modèle JSON" peut être fourni à l'éditeur de code. L'éditeur de code apporte alors une assistance à la saisie sur toute la structure du JSON.
Voir également la nouveauté 155 "Rubrique JSON".
Nouveau type UUID
Un UUID est un identifiant unique, tiré aléatoirement, pour lequel un doublon est statistiquement impossible.
Utilisez un UUID à chaque fois que vous voulez vous assurer de l'unicité d'un élément.
En version 24, le WLangage propose le nouveau type UUID, sur 128 bits et sur 256 bits.
Le type UUID permet par exemple de manipuler des résultats de hash (SHA256), des identifiants, des clés de blockchain, le contenu des rubriques UUID de HFSQL (voir nouveauté 156), ...
Le type UUID est également utile à la pseudonymisation RGPD.
Nouveau type Chrono
En version 24, le nouveau type WLangage Chrono fait son apparition.
La manipulation des chronomètres est bien plus simple !
MonChrono.Début est plus clair que manipuler des indices, surtout s'il y a plusieurs chronomètres.
Pour plus de détails, consultez Type Chrono.
Nouveau type SectionCritique (synchronisation de threads)
En version 24, le nouveau type WLangage SectionCritique fait son apparition.
La manipulation des sections critiques est bien plus simple.
Nouvelle syntaxe AVEC ... FAIRE ...
Cette nouvelle syntaxe permet de simplifier la programmation d'utilisation de types qui ont un début et une fin.
L'utilisation des nouveaux types Chrono et SectionCritique est facilitée.
Evolution des fonctions Min & Max
Passer directement un tableau à la fonction Min (et Max) permet de réduire à une seule ligne le code à taper : inutile de programmer le parcours du tableau.
Une petite nouveauté bien utile.
Réception de données : Evolution type httpRequête
Le type httpRequête propose une propriété supplémentaire ..Destination.
Cette propriété permet de sauver le résultat de la requête directement dans un fichier sur disque, sans passer en mémoire.
Cela est intéressant lors de la réception de données de volume important.
Envoi HttpRequête : visualisez les flux pour savoir ce qui part au serveur
La fonctionnalité HttpRequête propose des dizaines de paramètres.
Pour analyser la trame qui est envoyée au serveur de destination, la nouvelle propriété ..ProcédureTrace permet de visualiser le flux d'octets envoyé au serveur.
La vérification (et le débogage) sont bien plus faciles.
Type HttpRequête : certificat client
La fonction HttpRequête accepte depuis longtemps les certificats client.
Le type HttpRequête, en général bien plus pratique, accepte lui aussi les certificats en version 24.
Certificat client : sur disque, ou dans la WDL
En version 24, le certificat peut être stocké au choix :
  • sur disque.
  • dans la bibliothèque WDL de votre application.
Cela permet entre autres les automatisations dans l'utilisation du système de facturation des administrations françaises nommé Chorus.
Inclusion d'un fichier quelconque dans la bibliothèque (dans la WDL ou dans l'EXE), et extraction
Il peut être intéressant d'inclure un fichier texte (par exemple) dans la bibliothèque WDL ou dans l'EXE de l'application.
Cela permet de rendre ce fichier invisible et de ne pas avoir à gérer le déploiement de ce fichier.
L'inclusion de ce fichier est facile : il suffit de l'inclure dans la configuration.
Il est possible d'inclure plusieurs fichiers.
Il est ensuite facile soit d'extraire le fichier, soit de lire son contenu.
Un fichier est extrait par la fonction fExtraitRessource.
Le contenu d'un fichier peut être lu directement dans la WDL grâce à la fonction : fChargeRessource.
Attributs sur procédure et procédure interne
Un attribut est une directive pour le compilateur.
Un attribut se saisit dans l'éditeur de code, entre chevrons (par exemple <sérialise=faux>).
En version 24, il devient possible de définir les automatismes des procédures et des procédures internes grâce à des attributs : timer, thread, exécution automatique ou différée, ...
Hashage de type Murmur : un algorithme supplémentaire
Le WLangage propose de nombreux types de hashage.
En version 24, l'algorithme de type Murmur (MurmurHash) est également supporté.
Murmur est en particulier utilisé dans le "bloom filter" des portefeuilles ("wallet") bitcoin.
Fonctions TAPI
Aujourd'hui de nombreux matériels supportent uniquement la version 3 de TAPI.
Le WLangage supporte TAPI 3.
Gestion OpenID : récupérez des informations de la personne connectée via OAuth
Lorsque vous proposez une connexion via OAuth à votre application, l'utilisateur se connecte à votre application à l'aide de ses identifiants d'un réseau social, par exemple Instagram ou Google.
Le protocole OpenID vous permet de récupérer des informations qui peuvent être nécessaires à votre application, sur la personne qui s'est connectée à votre application : email, nom, prénom, ...
2 types avancés font leur apparition en WLangage en version 24 pour récupérer les informations proposées par ce protocole : OpenIDParamètres et OpenIDIdentité.
Voir également nouveauté 084 avant pour l'utilisation automatique dans le cadre du Groupware Utilisateur.
Un traitement de texte (ou un tableur) en 1 ligne de code : Fonction OuvreDocument
Vous connaissez les puissants champs Traitement de texte, Tableur, Editeur d'images et Lecteur PDF (documents de formats docx, xlsx, pdf, image).
Dans vos applications, lorsque vous désirez proposer l'édition d'un document dans un de ces champs, cela passait souvent par la création d'une fenêtre vierge dédiée, contenant uniquement ce champ.
En version 24, tout devient plus simple : il suffit d'utiliser la nouvelle fonction WLangage OuvreDocument.
Une simple ligne de code suffit :
OuvreDocument(facture.docx)
Fonctions XLS
De nouvelles fonctions WLangage de gestion des feuilles XLS sont disponibles en version 24 :
  • iImprimeXLS permet d'imprimer une feuille XLS,
  • iEnchainementAjouteXLS permet d'imprimer plusieurs documents XLS à la suite et même de mixer des impressions de feuilles XLS avec des états.
Mots de passe sur fichiers DOCX et XLSX
En version 24, les fonctions WLangage des familles XLS et DOC permettent de manipuler des documents protégés par mot de passe, et également de rajouter des mots de passe sur les documents existants.
Cela est utile pour la sécurité des données.
Cela permet également de respecter certaines contraintes du RGPD.
PDFMotDePasse
La nouvelle fonction WLangage PDFMotDePasse permet d'appliquer un mot de passe à un document PDF existant.
Rappel : la lecture de PDF avec mot de passe est déjà disponible.
PDF/A-3 : archivage et pièces jointes
Le format d'archivage des PDF /A-3 (attention, A-3 n'a rien à voir avec la taille du papier; A est pour Archivage et 3 est un numéro de version) est supporté en version 24.
Ce format permet d'inclure des pièces jointes à l'archive PDF : XML, XLSX, DOCX, ...
Ce format est entre autre nécessaire à Factur-X et à Chorus (voir nouveauté 187).
Tableau POO
Plutôt que de copier une instance d'un objet dans un tableau, il devient possible d'ajouter la référence de cet objet dans le tableau.
Les fonctions TableauInsèreRéférence et TableauAjouteRéférence font leur apparition en version 24.
Transformer un code-barres en image
En version 24, la nouvelle fonction WLangage CBVersImage permet de transformer une variable de type CodeBarres en variable de type Image.
L'image peut ensuite être sauvée au format de son choix.
L'image peut également être manipulée par toutes les fonctions WLangage habituelles de manipulation d'images.
Insérer une image dans un QR Code (par exemple pour les factures en Suisse)
Les factures émises en Suisse doivent comporter un QR Code.
Ce QR Code doit contenir une image de drapeau suisse en son centre.
Les deux nouvelles propriétés ..Image et ..ProportionImage du type CodeBarres permettent de spécifier l'image à insérer au centre du code-barres et sa taille.
Exemple de QR Code pour facture suisse (le drapeau peut être généré en noir & blanc)
Pour plus de détails, consultez l'aide sur le type CodeBarres.
Récupérer le contenu d'un scan en mémoire
En version 24, il devient possible de récupérer le contenu d'un scan directement en mémoire (dans un buffer), sans passer par une sauvegarde sur disque.
Les fonctions de la famille TwainVersxxx supportent maintenant la constante EnMémoire.
Pour plus de détails, consultez l'aide des fonctions :
Fonctions "Les pays"
De nouvelles fonctions WLangage permettent de récupérer le nom ou le code ISO des pays.
Il s'agit des fonctions DonneNomPays (CodeISO) et DonneISOPays (LibelléPays).
Pour plus de détails, consultez l'aide de ces fonctions.
Impression : mini aperçu
Lors de l'impression d'un état ou de l'utilisation de la fonction iImprime il est maintenant possible de demander l'utilisation d'un mini aperçu en lieu et place de l'aperçu traditionnel.
A droite, le nouveau mini aperçu
A droite, le nouveau mini aperçu
Pour plus de détails, consultez Mini fenêtre d'aperçu.
Présentation
La gestion des "clés publiques/clés privées" permet de mettre en oeuvre les échanges sécurisés et les communications authentifiées.
Cryptage asymétrique : clé privée, clé publique, 2 usages
En version 24, le cryptage par couple "clé publique/clé privée" devient possible pour les 2 usages :
  • communiquer de manière authentifiée (déjà disponible),
  • communiquer de manière sécurisée (c'est la nouveauté en version 24 !),
L'utilisation d'un certificat est nécessaire : c'est lui qui contient la clé privée.
La clé privée incluse dans le certificat doit rester privée : si elle est diffusée ou volée, votre identité est fortement compromise.
Communication authentifiée
La communication authentifiée permet d'envoyer un message en assurant l'identité de l'auteur.
La fonction WLangage CertificatSigne permet de signer un message (avec le certificat), la fonction WLangage CertificatVérifie permet de s'assurer que la signature et la clé publique correspondent (ici, nul besoin du certificat).
Bob veut émettre un message et signer ce message de manière infalsifiable.
Bob signe le message avec sa clé privée.
Tout le monde peut voir ce message.
Pour être certain de l'auteur, le destinataire doit s'assurer que le message a été signé avec la clé privée qui correspond à la clé publique.
Communication sécurisée
La communication sécurisée consiste à envoyer un message en s'assurant que personne d'autre que le (ou les) destinataire(s) ne pourra le déchiffrer, et donc le lire.
Quand on envoie un message sécurisé, c'est le destinataire qui doit posséder une clé privée (et donc un certificat).
L'émetteur doit juste crypter son message avec la clé publique.
Seul le destinataire qui possède la clé privée correspondante peut décrypter le message.
(Donc en gros c'est "à l'envers" de ce que l'on pourrait penser au premier abord, mais c'est logique !).
Alice veut envoyer à Bob un message que personne d'autre ne peut lire.
Bob possède une clé privée et la clé publique correspondante.
La clé publique n'est pas confidentielle.
Il donne donc cette clé publique à Alice.
Alice crypte le message qu'elle veut envoyer à Bob avec la clé publique de Bob.
Seul Bob pourra décrypter ce message, car le seul moyen de décrypter le message est d'utiliser la clé privée associée.
Bien entendu seul Bob possède cette clé privée.
POO
What is "This" ?
"This" est un mot-clé répandu dans de nombreux langages. En WLangage, le mot-clé correspondant est "Objet" (il y a certainement une bonne raison historique, ...).
En version 24, il devient possible d'utiliser également le mot-clé This.
Héritage d'interface
En POO une interface est un ensemble de méthodes accessibles depuis l'extérieur d'une classe, par lesquelles on peut modifier un objet (en gros c'est une classe abstraite qui n'a aucun code).
En version 24, il devient possible de faire hériter une interface d'une autre interface.
Cette fonctionnalité avancée est utile pour les concepteurs d'architectures qui structurent avec beaucoup de niveaux d'abstractions.
SOAPVersHTTP : modifier le contenu XML envoyé à un Webservice SOAP
Les Webservices ont un spectre très large et tous ne respectent pas la norme.
La facilité d'utilisation d'un Webservice tiers dans une application ou un site dépend de son concepteur.
La version 24 offre une fonction très utile pour adapter le XML envoyé au Webservice (un Webservice SOAP reçoit toujours du XML).
La fonction SOAPVersHTTP permet de récupérer le contenu de la requête Http qui part au serveur tiers de Webservice.
Il devient donc possible de modifier le contenu XML pour l'adapter aux attentes du Webservice.
Consommation de Webservices soap avec identification
En version 24, l'identification par le protocole "ws security" de type "user / mot de passe" est directement supportée.
Appel de Webservices Sharepoint
Certains Webservices de Sharepoint attendent du contenu XML dans des paramètres de type "Chaîne".
Ce mode particulier est maintenant géré en version 24 (pour celles et ceux qui utilisent déjà, c'est l'équivalent de la propriété InnerXML).
Nouvel assistant pour générer des "insert"
L'interface de l'éditeur qui permet de saisir des "Insert" gagne en ergonomie.
La sélection des fichiers de données, des rubriques et des paramètres est maintenant fluide et rapide.
Indentation automatique
Pour indenter facilement le code SQL d'une requête, l'éditeur de requêtes propose maintenant le raccourci CTRL+R qui indente automatiquement la structure de la requête : sélections, conditions, agrégats, ...
Nouveau type de rubrique JSON
En version 24, HFSQL propose un nouveau type de rubrique très utile : les rubriques JSON.
Ce type de rubrique permet d'exécuter des requêtes qui comportent des opérations sur le JSON.
Lors de l'écriture ou de la modification d'une rubrique JSON, HFSQL vérifie la syntaxe du contenu de la rubrique JSON.
Si la syntaxe est fausse une erreur est générée, de nouveaux ordres SQL permettent d'interroger la base de données sur le contenu des rubriques JSON.
4 nouveaux ordres permettent de tester si une valeur est JSON et son type : IS JSON, IS JSON ARRAY, IS JSON object, IS JSON Scalar
JSON_ARRAY, JSON_Object permettent de construire un objet JSON.
JSON_ARRAYAGG, JSON_ObjectAGG permettent de construire un objet JSON pour un ensemble d'enregistrements.
Et pour interroger le contenu de la rubrique, 3 nouveaux ordres : JSON_exists, JSON_Value, JSON_Query.
Nouveau type de rubrique UUID
Un UUID (Universal Unique IDentifier) est un nombre aléatoire réputé unique : il est tellement grand que la probabilité que le même identifiant soit généré 2 fois est inférieur à la probabilité de recevoir 2 fois dans sa vie un piano sur la tête, ...
Un UUID est utile pour identifier facilement et de manière certaine un élément quelconque.
En version 24, HFSQL propose le nouveau type de rubrique UUID.
Ce type de rubrique UUID respecte la norme RFC 4122 en 128 bits. Seul le 128 bits est normé.
La rubrique de type UUID va encore plus loin que la norme en proposant un mode plus puissant en 256 bits.
L'intérêt majeur de l'UUID est de permettre l'anonymisation et la pseudonymisation, utile au respect de la norme RGPD.
L'UUID permet également de gérer des identifiants de crypto-monnaie, ...
UUID automatique
HFSQL peut gérer pour vous les UUID.
Il est possible d'initialiser automatiquement une rubrique UUID à l'écriture d'un enregistrement; l'UUID correspond ainsi à un identifiant unique non séquentiel.
Si nécessaire, pour faciliter une migration d'existant, un enregistrement peut comporter un UUID automatique et un Identifiant automatique.
Un même enregistrement peut comporter plusieurs UUID.
Cryptage aes : un cryptage plus puissant
Le cryptage de type AES est disponible pour les fichiers de données (.fic), pour les index (.ndx; .ftx), pour les mémos (.mmo).
Les données sont plus sécurisées.
La vitesse de cryptage et décryptage des données est optimisée : les performances sont meilleures qu'avec les autres méthodes de cryptage !
Ce cryptage permet entre autres des mots de passe sensibles à la casse.
Pilote ODBC de HFSQL
En version 24, le pilote ODBC fourni pour l'accès à HFSQL depuis des logiciels tiers permet l'accès aux rubriques de type "tableau".
Mot de passe de l'administrateur lors de l'install
Lors de l'installation d'un serveur HFSQL, par sécurité il est nécessaire de saisir un mot de passe personnalisé pour le compte administrateur.
Centre de contrôle HFSQL : requêtes illimitées
Le Centre de Contrôle HFSQL permet de saisir et d'exécuter des requêtes.
En version 24, l'exécution des requêtes s'effectue dans un thread, en tâche de fond. Vous n'êtes donc pas bloqué pendant l'exécution de la requête et vous pouvez lancer plusieurs requêtes différentes en parallèle.
Vitesse de parcours de la famille HLit améliorée en client/serveur
En version 24, HFSQL Client/Serveur offre une vitesse de parcours des fichiers de données améliorée lors de l'utilisation des fonctions historiques de la famille HLitxxx.
Le gain de vitesse est de l'ordre de 10%.
Divers
  • Les nouvelles fonctions hExporteXLS et hExporteCSV permettent d'exporter en une seule ligne de code un fichier de données HFSQL (ou le résultat d'une requête HFSQL) vers un format Excel ou au format CSV.
  • La fonction HSurveille permet à une application d'être notifiée automatiquement lors d'une modification sur un fichier de données HFSQL; cette fonction HSurveille est maintenant disponible dans les services Windows.
  • La fonction HSurErreur fonctionne maintenant sur les procédures stockées.
NULLIF
La fonction SQL NULLIF prend 2 paramètres.
NULLIF renvoie Null si les 2 paramètres sont égaux et renvoie le premier paramètre si les paramètres sont différents.
DROP INDEX
La fonction SQL DROP INDEX permet de supprimer des index.
Meilleure sélection des clés composées avec l'opérateur SQL "or"
Dans certains cas (utilisation de Ou/Or), en présence de clés composées dans un fichier de données, les performances des requêtes sont améliorées.
Syntaxe pour écrire des valeurs binaires dans les requêtes SQL
HFSQL supporte une norme supplémentaire pour l'écriture des valeurs (littéraux) binaires dans les requêtes SQL : X'valeur binaire en Hexa'.
Exemple :
INSERT INTO PEINTRE (Rubbin) Values (X'0254B8615A')
Ordres SQL pour rubriques de type JSON
De nouveaux ordres SQL sont disponibles pour la nouveauté "Rubrique JSON native dans HFSQL" : voir nouveauté 155.
Présentation
Vous le savez, de nombreux connecteurs natifs sont disponibles : HFSQL, Oracle, SQL Server, AS/400, DB2, MySQL, PostgreSQL, SQLite, xBase, MariaDB, Informix, Progress, Sybase, ...
Gestion des erreurs dans les threads
Lorsqu'un appel à un connecteur natif (Accès Natif) est effectué depuis un thread, il devient possible de gérer les erreurs de manière habituelle.
Gestion des UUID
En version 24, les connecteurs natifs (Accès Natifs) gèrent les identifiants uniques de type UUID.
Connecteur natif SQL Server : msoledbsql
Le pilote Msoledbsql pour SQL Server est supporté par le connecteur natif en version 24.
HFSQLDrive : Simplifiez l'exploitation et le partage des données
L'offre HFSQLDrive permet d'héberger des fichiers de données HFSQL dans le cloud en quelques clics.
Toutes les fonctionnalités d'exploitation de HFSQL sont disponibles.
HFSQLDrive est destiné à WINDEV Mobile mais également à WINDEV et WEBDEV.
(Voir nouveauté 670 ).
WDTRAD : Deepl
Deepl est un service basé sur un algorithme d'intelligence artificielle qui propose de la traduction de textes.
Ce service peut être utile lors de la première traduction d'un texte.
WDTRAD peut faire un appel à Deepl directement lorsque le dictionnaire de WDTRAD n'est pas encore assez riche pour trouver une traduction.
Rappelons que les textes une fois traduits sont insérés automatiquement dans le dictionnaire de WDTRAD de WDMSG,et seront ensuite automatiquement ré-utilisés.
Deepl est un service facturé par son éditeur.
Fenêtres de message standard : traduction avec héritage de gabarit
Lorsque l'on traduit un logiciel, il faut également penser à traduire les fenêtres de messages standard d'exécution, comme par exemple les fenêtres affichées par le Groupware Utilisateur, l'assistance automatique de HFSQL, les fenêtres des FAA (export vers Word ou Excel, ...).
Avant la version 24, cette traduction passait forcément par la personnalisation de ces fenêtres standard.
En version 24, il devient possible de traduire ce type de fenêtre sans avoir besoin de les personnaliser.
Ces fenêtres bénéficient donc des évolutions du framework lors des mises à jour de framework.
Traduction du menu d'export des FAA
WDTRAD : le dictionnaire intelligent qui s'enrichit seul
Vous le savez certainement, WDTRAD permet la gestion du dictionnaire dynamique auto-enrichi utilisé pour la traduction de votre logiciel.
Le dictionnaire s'enrichit en fonction des traductions que vous effectuez.
En version 24, WDTRAD évolue pour un usage plus facile, plus puissant et plus rapide.
De nouvelles manipulations sont disponibles :
  • La sélection des fichiers de travail s'effectue par saisie directe, copier/coller ou drag & drop.
  • La liste des ressources est triable et regroupable sur de nombreux critères.
  • La recherche peut s'effectuer sur les noms de rupture.
  • WDTRAD signale les traductions qui lui semblent bizarres, comme par exemple un texte de plusieurs lignes dans une langue, traduit en juste quelques mots dans une autre langue.
WDTRAD : "you", c'est "tu" ou "vous"? affichage d'une langue supplémentaire
WDTRAD permet maintenant l'affichage d'une deuxième langue de référence.
Cela est utile pour s'assurer des tournures de certaines phrases : choisir "tu" ou "vous" depuis un texte de référence en anglais ("you") n'est pas évident !
En affichant le texte de référence dans une 2ème langue comme l'espagnol, il n'y a plus d'ambiguïté.
Cela règle également la problématique du genre de certains mots.
UUID 256
Une rubrique UUID 256 bits peut stocker des identifiants, des transactions, ... de blockchain (Bitcoin, Ethereum, ...).
Si vous gérez vous-même une blockchain, la rubrique UUID et le nouveau type UUID du WLangage permettent de générer et gérer des identifiants uniques.
(voir nouveauté 156).
RGPD : Mot de passe dans les FAA d'export géré automatiquement par le Groupware Utilisateur
Vous le savez, les FAA (Fonctionnalités Automatiques de vos Applications) permettent d'exporter le contenu des champs table de vos applications vers Excel, Word, PDF, XML, ...
Ces tables peuvent contenir des données à protéger.
En version 24, ces fonctionnalités d'export peuvent automatiquement être sécurisées par la nécessité de saisir un mot de passe automatiquement géré par le Groupware Utilisateur.
Vous n'avez ainsi rien à programmer pour restreindre l'accès à ces fonctionnalités aux seuls utilisateurs autorisés.
RGPD : une fenêtre avec données RGPD est signalée dans le Groupware
Lors de l'édition des droits dans le Groupware Utilisateur, les fenêtres contenant des données personnelles sont signalées.
Cela permet à l'administrateur de vérifier qu'il a bien limité l'accès aux données personnelles aux seuls utilisateurs concernés.
RGPD et HFSQL : nouveaux modes de cryptage
Afin d'assurer une encore meilleure sécurité des données, la version 24 de HFSQL ajoute le cryptage AES à la liste des cryptages déjà supportés.
RGPD et HFSQL : rubrique UUID pour pseudonymisation
La base de données HFSQL propose maintenant les rubriques de type UUID, sur 128 ou 256 bits.
Ce type de rubrique permet en particulier de mettre en place une pseudonymisation des données : la fin des identifiants automatiques qui permettent d'identifier une personne. La pseudonymisation est nécessaire dans certains domaines d'activité.
Voir nouveauté 156.
RGPD et WLangage : type UUID pour pseudonymisation
Pour permettre une utilisation facile et rigoureuse des rubriques UUID, le WLangage propose le nouveau type UUID, sur 128 ou sur 256 bits.
RGPD : Divers
Les feuilles de tableur et les documents de traitement de texte manipulés par les champs natifs de WINDEV peuvent maintenant être cryptés (chiffrés).
Le cryptage est géré en lecture et en écriture.
(Voir nouveauté 018).
Envoi périodique de rapport
La télémétrie permet d'éditer des rapports qui contiennent les statistiques d'utilisation de vos applications.
Il est possible de demander l'envoi par email d'un (ou plusieurs) rapport à intervalles réguliers, par exemple chaque semaine, chaque mois, chaque année, ...
Il est possible de spécifier des versions de l'application à prendre en compte dans le rapport : toutes les versions, dernière version uniquement, ...
Télémétrie personnalisée : nouveau widget
La télémétrie personnalisée consiste à définir des capteurs. L'application envoie des valeurs à ce capteur.
Un nouveau Widget permet de visualiser les informations de l'ensemble des capteurs personnalisés.
Les Widgets des capteurs personnalisés sont également imprimés dans les rapports.
Présentation
La version 24 facilite l’établissement et la transmission automatiques des factures électroniques. L’union européenne a choisi de généraliser la facturation électronique.
Chorus pro : pour facturer l'état Français
La France rend obligatoire la facturation électronique pour facturer les services de l'état.
Pour le dépôt et le suivi des factures, la France a mis en place le système Chorus Pro. C'est l'outil de gestion des dépenses et des recettes non fiscales des services de l'État français.
A partir du 01/01/2019, toutes les sociétés de plus de 10 personnes doivent facturer les services de l'état via un dépôt des factures (au format PDF) sur Chorus Pro.
Et en 2020, toutes les sociétés devront utiliser Chorus Pro.
La version 24 facilite l'automatisation du dépôt des factures sur Chorus Pro (voir ci-après nouveautés 187 à 189 ).
Factur-X (facture hybride) : archives PDF/A-3 avec pièces jointes
Factur-X, est une norme de facture hybride : une facture à la fois lisible par l'humain (PDF) et lisible par les EDI (XML).
Une facture à la norme Factur-X contient une archive PDF (norme A-3) de la facture, et le fichier XML normé (5 normes sont définies en Europe, selon le niveau de détail) contenant le détail de la facture. La version 24 dispose de toutes les fonctions XML nécessaires pour générer et signer les fichiers XML.
La version 24 permet la création de PDF à la norme archive A-3. Voir nouveauté 132.
Certificat en bibliothèque WDL : installation inutile
Dans une facture électronique un certificat est utilisé pour certifier l'authenticité de la facture.
De manière traditionnelle, un certificat s'installe sur la machine hôte. Cela demande des manipulations et il faut disposer des droits "Administrateur" de Windows.
Cela peut être compliqué, voire même impossible (serveurs, ...).
En version 24, un certificat peut être directement embarqué dans la bibliothèque WDL de votre application.
Aucune installation supplémentaire n'est ainsi nécessaire sur les postes des utilisateurs finaux.
Aucun droit système particulier n'est nécessaire sur la machine d'exécution.
Variable WLangage de type httpRequête et restRequête : propriété "certificat"
En version 24, les types WLangage httpRequête et restRequête (pour l'utilisation des Webservices REST) disposent d'une propriété Certificat pour utiliser un certificat lors des requêtes.
Il devient inutile d'utiliser la fonction HttpCertificat !
Gestion des fenêtres ouvertes depuis le traitement d'initialisation
Il est possible de créer des tests automatiques lorsque des fenêtres sont ouvertes dans les traitements d'initialisation de fenêtre.
Base de données en client/serveur
La base de données de stockage de tous les tests définis et des tests effectués par le robot peut maintenant être utilisée en mode Client/Serveur.
Le robot peut être installé sur un poste sur lequel WINDEV n'est pas présent
Dans les anciennes versions, la configuration des Centres de Contrôle utilisés par le robot nécessitait une installation de WINDEV sur le poste du robot.
En version 24, la présence de WINDEV n'est plus nécessaire.
Mails d'alerte envoyés par le robot : SMTP sécurisé
En cas de test en échec de la part du robot (par exemple : serveur inaccessible, temps de réponse trop long, application qui ne répond pas, ...) vous pouvez décider que le robot envoie un email d'avertissement.
L'envoi de cet email peut maintenant être effectué en utilisant le protocole SMTP sécurisé.
UAC
Avec les anciennes versions, la configuration et l'utilisation d'un robot de surveillance nécessitait une élévation de privilèges qui déclenchait une fenêtre UAC.
En version 24, seule l'installation nécessite l'élévation de privilèges.
Par la suite, la configuration s'effectue simplement, sans élévation de privilèges. Cela permet une configuration du robot par des personnes n'ayant pas les droits d'administration.
Import/export des contrôles
La version 24 du robot permet d'exporter et d'importer des contrôles.
L'échange s'effectue à la norme XML.
Statistiques sur les réussites/échecs des contrôles
La version 24 du robot affiche des statistiques sur l'exécution des contrôles. Les tests en erreurs sont listés et clicables.
Cliquer sur un test en erreur ouvre son compte-rendu
Cliquer sur un test en erreur ouvre son compte-rendu
Robot : divers
Surveillance des applications : l'application surveillée n'a plus forcément à écrire dans un fichier.INI pour témoigner de son bon fonctionnement.
Cela simplifie la configuration.
REDIS
REDIS est une base Big Data de type "clé-valeur scalable".
En version 24, un accès natif à REDIS est proposé.
Version minimum requise
  • Version 24
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire