Parmi les nouveautés majeures de la version 28, le nouveau champ Kanban trouvera de nombreuses utilisations. Simplement en plaçant le champ dans une fenêtre ou dans une page, une gestion de Kanban est disponible
Kanban désigne une méthode de classification visuelle des tâches, pour gérer ces tâches de manière agile.
Chaque tâche est écrite sur une «carte» que l’on changera de liste (de colonne) selon l’avancement.
Indépendamment de tâches, il peut s’agir de n’importe quelle ressource : étape de fabrication, exigence, suggestion, livraison, dépannage, user story,...
En général, un Kanban est partagé entre plusieurs utilisateurs.
Chaque membre de l’équipe connaît ainsi l’avancée du projet, et sait ce qu’il a à faire et où en est le travail des autres membres.
En plus d’une meilleure communication, cette technique à base de «cartes» permet de visualiser facilement l’ensemble de la chaîne de production et l’avancement des tâches, et ainsi de repérer facilement les blocages et les urgences.
Le champ Kanban de la version 28 propose automatiquement les fonctionnalités riches que les utilisateurs attendent :
Toutes ces fonctionnalités offertes aux utilisateurs finaux de vos applications et sites sont disponibles dans le champ lui-même, et également disponibles par programmation.
La programmation du champ Kanban permet de gérer :
Le champ Kanban, les listes et les cartes disposent de propriétés permettant de paramétrer tous ces éléments.
Il est possible d’ajouter et supprimer des listes et des cartes par programmation.
Pour gérer le contenu d’un Kanban, un nouveau type natif fait son apparition en WLangage, le type KbCarte.
Le type KbCarte contient les propriétés suivantes :
Les colonnes (les listes) se manipulent en programmation de la même manière que les colonnes d'un champ table : vous savez déjà le faire !
Pour faciliter la recherche et le filtrage dans un Kanban, les nouvelles fonctions KanbanRecherche et KanbanFiltre font leur apparition dans le WLangage en version 28.
Le même champ Kanban fonctionne sous WINDEV 28, WEBDEV 28 et WINDEV Mobile 28.
Les fonctionnalités sont identiques, avec quelques spécificités en mobile et en web pour mieux tirer parti de la plateforme.
Le mode d’utilisation sur téléphone en mode vertical tient compte de la faible largeur de l’écran.
Formatez tous les textes & libellés cross-plateformes
Markdown est un langage de balisage «léger» qui permet de formater des textes, et qui fonctionne sur tous les supports : PC, Web, Mobile.
Markdown est assez simple mais très pratique et facile à prendre en main, à retenir et à relire.
Par exemple : entourer une phrase avec les caractères ** passe cette phrase en gras, positionner un # en début de ligne crée un titre, un ## un sous-titre, etc.
En version 28, il devient possible de saisir les «textes» en langage Markdown, et ainsi de formater facilement (sans gStylo, sans gImage...) de nombreux éléments de vos UI.
Il peut s'agir par exemple de :
Les nouvelles fonctions WLangage MarkdownVersDocx, MarkdownVersPDF et MarkdownVersHTML permettent la conversion des textes Markdown vers ces formats.
La version 28 permet de créer des formulaires PDF grâce à l’éditeur d’états.
En plus des champs proposés dans l’éditeur d’états, un formulaire PDF peut contenir des champs de type :
En version 28, il devient possible de créer des états utilisant ces champs pour générer automatiquement des formulaires PDF avec interaction.
L’utilisateur final saisit les informations, puis imprime ou sauvegarde le formulaire.
Un document peut être composé d’une succession d’états et de pages PDF.
La génération d’un document PDF unique à partir de ces enchaînements bénéficie d’une optimisation drastique de la taille du document PDF généré.
Dans un document PDF «habituel» le texte est en général sélectionnable.
Mais il peut arriver qu’un document PDF contienne du texte sous forme de scan, d’image, ou interdise le copier/coller.
Dans ces cas, pour récupérer le texte au format «texte», le champ lecteur PDF inclus en standard par WINDEV offre maintenant une fonction intégrée d’OCR.
L’OCR s’effectue sur une zone spécifiée par l’utilisateur final.
Un état peut contenir un document PDF en fond de page.
Cet état peut lui-même être généré sous la forme d’un document PDF.
La taille (le poids) du PDF final utilisant un fond de page PDF est réduite d’un facteur 50% au minimum.
En version 28, la vitesse de génération de documents au format PDF fait un bond spectaculaire.
La vitesse de génération est 2 à 25 fois plus rapide en version 28, selon la taille des documents.
En version 28, il devient possible de se positionner directement sur un signet donné.
Le nouveau type pdfSignet et ses nouvelles propriétés Titre et NuméroPage, la nouvelle propriété Signet, et la nouvelle fonction WLangage LecteurPDFAfficheSignet font leur apparition dans ce but.
La version 28 permet de choisir le taux de compression du document sauvegardé, et donc de fixer la qualité du document et son poids.
Cela permet d’influencer la taille du document généré : plus la qualité est basse, plus le document est léger.
Le nouveau paramètre Qualité de la fonction WLangage pdfSauve permet de fixer ce taux : Automatique, Élevée, Moyen et Faible.
Le champ Lecteur de PDF signale lorsqu’un document est signé.
Les informations de cette ou de ces signatures sont visualisables dans le lecteur.
En version 28, la présentation de ces signatures a été reformulée en termes «non techniques» pour être plus facilement compréhensibles par un utilisateur final, et donc apporter plus de sécurité :
Créez vos propres raccourcis ou redéfinissez des raccourcis
La version 28 permet de définir ses propres raccourcis dans l’ensemble des éditeurs de l’environnement de WINDEV, WEBDEV et WINDEV Mobile :
La version 28 permet également de créer des raccourcis sur n’importe quelle action, même une action qui ne dispose pas de raccourci.
Il suffit d’utiliser le Ruban (Volet "Accueil", Bouton "Options" puis "Personnaliser les raccourcis clavier"), qui affiche la liste de toutes les actions possibles pour chaque éditeur, et de saisir la combinaison de touches souhaitée.
Vous souhaitez changer les touches d’un raccourci existant ?
Il suffit d’utiliser le Ruban qui permet d’afficher la liste de tous les raccourcis par éditeur, et de saisir la nouvelle combinaison de touches souhaitée.
Un point important, les raccourcis que vous définissez seront utilisables dans les futures versions.
De même, les raccourcis que vous avez définis peuvent être exportés vers un autre poste.
Qui n’a pas été confronté à une application qui par moments devient lente, sans explication ?
En version 28, WINDEV vous aide à trouver la raison de la lenteur, et donc vous permet de la supprimer.
L’Analyseur Temps Réel (ATR) affiche, en temps réel bien sûr, mais également en utilisant un fichier de log, un graphe de l’activité de l’application.
Ce graphe permet de détecter les lenteurs et les blocages.
Le graphe représente l’activité de l’application.
Le graphe défile en temps réel.
Le graphe est à 2 niveaux :
Il est possible de se déplacer dans le graphe (en arrière !), de zoomer une partie du graphe,...
Les paliers hauts trop longs apparaissent en rouge.
Cliquer sur un palier haut affiche tous les appels de fonction qui ont eu lieu, ainsi que la durée d’exécution de chaque fonction et permet d’accéder au code de ces fonctions.
L'analyse du code permet de trouver l’origine d’un ralentissement.
L’analyse s’effectue au choix selon 3 modes :
L’écriture dans le fichier de log se gère par programmation (dbgActiveLog).
L’ATR gère également les applications multi-thread.
Le graphe affiche l’activité des différents threads, et permet d’analyser les éventuels inter-blocages entre les threads : thread en attente de synchronisation, pool de threads en attente de travail...
Les champs se placent seuls et changent de position et de dimension selon vos règles
Le mode de positionnement Flexbox est basé sur un principe de repositionnement des champs contenus dans des «boîtes» (chaque boîte est un champ Flexbox), par alignement vertical ou horizontal, choix de la taille relative et imbrication de ces boîtes.
L’intérêt de ce mode réside dans le repositionnement déterministe automatique des boîtes et des champs qu’elles contiennent en fonction de la taille du navigateur et/ou du contenu.
Une page en mode Zoning (avec ou sans agencement) ou en mode Responsive historique peut contenir un ou plusieurs champs Flexbox.
A l’intérieur d’une boîte (à l’intérieur d’un champ Flexbox), les champs sont positionnés les uns derrière les autres.
Point important : un ou plusieurs de ces champs peuvent eux mêmes être une boîte.
Pour chaque boîte, il faut d’abord indiquer comment positionner les champs qu’elle contient : en ligne ou en colonne.
Il faut ensuite indiquer quel sera le comportement des champs lors du redimensionnement de la boîte ou des champs : retour à ligne ou non, agrandissement, réduction...
Et ainsi de suite pour tous les autres comportements de positionnement et redimensionnement.
Les comportements les plus utilisés se définissent facilement grâce à la technologie visuelle des 7 onglets.
Les comportements plus particuliers se définissent par la saisie ou le copier/coller du code CSS correspondant : impossible d’être bloqué !
Pour modifier le comportement par défaut, chaque champ peut être paramétré de manière individuelle.
Par exemple :
Comme pour la flexbox, la définition de comportements personnalisés pour chaque champ est également disponible à travers la saisie de code CSS.
Afin de faire gagner du temps, plusieurs modes prédéfinis correspondants à des comportements standards sont proposés par défaut : inutile de paramétrer toutes les options.
Ces modes prédéfinis sont personnalisables.
Les champs Flexbox peuvent être placés dans tous les types de page : Zoning, Zoning avec agencement, Historic Responsive,...
Un champ Flexbox peut être placé au milieu d’autres champs, mais aussi dans une Zone Répétée, dans une cellule...
En version 28, c'est "Open Barre"
La barre du haut se nomme Action bar en Android et Navigation bar sous iOS (par abus de langage, cette barre est souvent nommée Action bar dans le reste de cette documentation).
Une barre peut être «Système» ou «Personnalisée».
Une barre de type Système propose ces comportements :
En version 28, la personnalisation des Barres évolue drastiquement.
Il devient possible de paramétrer finement ces barres :
Cela permet par exemple de :
Tout devient facilement personnalisable !
Parmi les nombreuses nouveautés de la version 28 pour mobile vous adorerez : Nouveau champ Éditeur d'Images, Nouvelles barres du haut (Action Bar, Navigation Bar), Nouveau champ Kanban, 4 Nouveaux Champs Métier, 2 Nouveaux gabarits, Deep Link, Page WEBDEV dans une fenêtre Mobile, Proposition de variantes de mise en forme pour les textes,...
WINDEV Mobile est ouvert aux langages tiers.
Kotlin est un langage de programmation utilisable sous Android.
En version 28, il est possible de saisir directement du code en langage Kotlin dans l’éditeur de code.
Une coloration syntaxique facilite l’écriture et la lecture du code dans ce langage ...
Note : Java est bien entendu toujours supporté.
Parmi les nouveautés de la version 28 spécifiques à Android vous adorerez : Support natif de Kotlin, Récupération du résultat des "Activity" (paiement,...), Positionnement libre des icônes dans les boutons, Fonctions avancées sur les images zoomées, 56 Nouvelles fonctions WLangage,...
Les pages internes dans les zones répétées permettent tout
En version 28, vous pouvez insérer une ZR verticale dans une ZR horizontale, et vice versa : toutes les folies sont maintenant possibles !
Le champ Zone Répétée de WEBDEV est très utilisé.
Ce champ permet de répéter des zones sophistiquées contenant des données.
En version 28, il devient possible d’inclure de nouveaux types de champs : le champ Zone Répétée accepte maintenant les Pages Internes, ce qui permet toutes les fantaisies.
Il devient possible d’inclure des Pages Internes (une ou plusieurs différentes) dans chaque itération.
Et cette (ou ces) Page(s) Interne(s) peut contenir elle-même une Zone Répétée. Etc.
Cette nouveauté permet ainsi de présenter facilement des informations différentes dans chaque itération d'une Zone Répétée.
La programmation est facile grâce aux nouvelles fonctions ZoneRépétéeAjoutePI, ZoneRépétéeInsèrePI et ZoneRépétéeModifiePI.
Une même Zone Répétée peut utiliser différentes Pages Internes.
La version 28 de WEBDEV propose un champ de saisie HTML aux fonctionnalités enrichies.
Le champ de saisie HTML de WEBDEV est destiné à être présent dans une page, et permettre à l’internaute de saisir du texte formaté à la norme HTML : commentaire, description d’article dans un CMS, ...
En version 28, ce champ de saisie propose de nouvelles fonctionnalités utiles :
En version 28, le champ de saisie HTML propose un nouvel événement WLangage très utile.
L'événement WLangage «Touche enfoncée» est disponible en code Navigateur.
Cet événement permet par exemple de créer un glossaire, des raccourcis sur touche de fonction,...
En version 28, la barre d’outils du Champ HTML de WEBDEV propose de nouvelles options :
Le champ de saisie HTML propose un mode de saisie «email» qui limite les fonctionnalités HTML à celles reconnues par la majorité des lecteurs de mail.
Insérez un site WEBDEV dans une fenêtre WINDEV avec communication bi-directionnelle en WLangage
Le nouveau champ «Site WEBDEV» de WINDEV permet d’intégrer un site dans une application WINDEV, et d’interagir par programme avec ce site.
Il suffit d’indiquer l’URL de la page à insérer.
La fenêtre qui contient le champ interagit avec la page chargée par l’intermédiaire de procédures navigateur.
Dans l’éditeur de code WINDEV, les procédures navigateur de la page sont accessibles et proposées en complétion automatiquement.
L’intégration d'un site Web existant dans une fenêtre d'une application Desktop existante permet de créer des passerelles de productivité, et de mutualiser l’existant.
De nombreux nouveaux développements s’effectuent en Web.
Par contre l’existant en place est généralement constitué d’applications Windows.
Pour conserver la richesse applicative du patrimoine logiciel d’une entreprise et se diriger sereinement vers une webisation sans perte de fonctionnalités, l’intégration d'un site Web dans une fenêtre WINDEV est une avancée déterminante.
Cela permet de progresser rapidement, de manière agile, sans risques, par étapes.
Les procédures de la page WEBDEV qui sont appelables depuis une fenêtre WINDEV doivent être spécifiées dans une interface de partage.
Les procédures peuvent effectuer des appels Ajax au serveur.
Les procédures WINDEV appelables depuis la page WEBDEV doivent être déclarées dans une interface de partage.
Cette interface génère un fichier de paramétrage.
Ce fichier de paramétrage doit être fourni à l’environnement WEBDEV, ce qui permet aux procédures d’être appelables de manière native.
Depuis le code des procédures navigateur de la page, il devient possible d’appeler directement les procédures de la fenêtre.
Une page de site peut contenir des menus, un bandeau de publicité, des champs de décor, un bas de page avec les mentions légales...
Ces informations n’ont peut-être pas d’intérêt quand la page est intégrée à une application WINDEV.
Un nouveau type d’agencement spécifique à l’intégration dans WINDEV (et dans WINDEV Mobile) fait donc son apparition dans WEBDEV, pour ne pas afficher certaines informations.
La sécurité des informations qui transitent entre la page et la fenêtre est primordiale.
Tout d’abord, par défaut la navigation dans la page WEBDEV est limitée au domaine de l’URL fournie dans l’application : cela élimine les attaques de type XSS (Cross-site scripting).
Lorsque la page WEBDEV contient des données sensibles, plusieurs méthodes permettent de sécuriser l’accès à la page :
Ces informations sont ensuite transmises à travers une URL protégée HTTPS.
Des sécurités supplémentaires peuvent être mises en place.
Une sécurité par double authentification, par exemple envoi d’un code par email, est également simple à mettre en oeuvre.
Une restriction d’accès par adresse IP peut également être implémentée facilement.
Nouveauté majeure de l’iPhone, la Dynamic Island (îlot dynamique) transforme l’encoche noire en un widget.
La version 28 de WINDEV Mobile gère ce nouveau concept.
Il suffit de définir l’UI des Widgets à l’aide de Swift UI, puis le WLangage permet de générer automatiquement les widgets dans le projet et de spécifier la callback qui sera appelée lors des clics dans le widget.
La nouvelle version iOS 16, ainsi que WatchOS 9 sont supportées par WINDEV Mobile 28
Toutes les versions de l’iPhone 14 et la montre AppleWatch Series 8 sont supportées.
Le développement sous iOS n’a jamais été aussi puissant qu’avec WINDEV Mobile 28. Vous bénéficiez de nouvelles puissantes fonctionnalités qui viennent s’ajouter à toutes celles dont vous disposiez déjà.
iOS évolue, et WINDEV Mobile 28 évolue également. WINDEV Mobile 28 pour iOS bénéficie :
La version 16 d’iOS permet de définir les Widgets qui seront affichés sur l’écran de verrouillage (en mode «toujours affiché» ou pas).
La version 28 de WINDEV Mobile permet de créer ce type de widget.
La nouvelle version iPadOS 16 est supportée.
Nouveauté de la version 28 de WINDEV Mobile, il devient possible de créer des Widgets de type Extra Large.
La réactivité de l’éditeur de code s’améliore nettement en version 28; sa vitesse est multipliée par 2 dans le cas général, et jusqu’à un facteur X4 pour les codes de grande taille !
Cela rend les déplacements dans l’éditeur, bien plus fluides.
Parmi les nombreuses nouveautés de la version 28 sur l'Éditeur de Code, vous aimerez : Éditeur plus rapide, Création de vos propres hashtags de positionnement, 7 Nouveaux raccourcis, Recherche au clavier sans utiliser la souris, Assistant de génération de requête SQL,...
La nouvelle fonction d’intelligence artificielle IADétecteContour détecte les contours d’une image.
La fonction renvoie un tableau de polygones de l’ensemble des formes qui ont été détectées dans l’image.
La nouveauté «Fonction d’Extension» permet de rajouter vos propres fonctions WLangage aux types du langage.
Les fonctions que vous avez définies peuvent ensuite être appelées comme des fonctions natives du WLangage.
Par exemple, il vous est possible de créer une fonction qui remplace les Tab par des Espaces dans une chaîne.
Vos fonctions apparaissent dans l’assistance de code du type ciblé.
Parmi les très nombreuses nouveautés du WLangage en version 28, vous allez adorer : Chaînes indétectables, Créez vos propres fonctions WLangage, ajout de RdV directement dans l'agenda du destinataire, Transfert sécurisé de fichiers via SCP, Procédures locales ou Privées, Conversions UTF8, UTF 16, UTF32, Redressage d'image, Composant chargé à l'exécution, Évolution de l'introspection, Fonction unique pour effectuer un OCR au lasso, Certificat intégré dans l'Exécutable, Nouveaux formats de cryptage, Recherche de l'attribut Mapping par programmation, Console de script WLangage WDSCRIPT, Etc...
En version 28, il devient possible de charger des composants externes de manière dynamique, sans que le composant ne soit présent dans le projet.
Les nouvelles fonctions WLangage ComposantCharge et ComposantExécute feront votre bonheur !
Combinée avec la gestion des interfaces POO, cette nouveauté permet une architecture plus formalisée.
Le nouvel attribut indétectable permet d’obfusquer automatiquement le contenu de la chaîne en mémoire.
Un dump mémoire ne permet pas de retrouver le contenu de la Chaîne Indétectable.
La nouvelle fonction dRedresse de la version 28 permet de passer une image rectangulaire déformée par une perspective de prise de vue en image rectangulaire initiale.
La fonction se base sur un algorithme Homéomorphique.
En WLangage, un mail est créé facilement à l’aide du type avancé Email.
En version 28, la propriété Attache permet de décrire le ou les rendez-vous proposés dans l’email.
Le lecteur d’email du destinataire pourra ainsi proposer d’ajouter ce rendez-vous dans l’agenda du destinataire.
En version 28, il est possible de définir la portée d’une procédure locale et des variables globales de la fenêtre ou de la page : publique ou privée.
Une procédure Publique peut être appelée de l’extérieur du champ.
Une procédure Privée ne peut être appelée que depuis l’intérieur du champ.
UTF-16BE et UTF-16LE sont des normes de codage de chaîne Unicode (LE pour Little Endian et BE pour Big Endian).
Selon LE ou BE, les octets ne sont pas dans le même sens ! La nouvelle fonction UTFConvertit permet les conversions.
Une fonction de signature ou de cryptage peut utiliser un certificat de différents formats.
En version 28, les certificats au format PEM et DER sont gérés en plus du format P12.
La nouvelle fonction PicCaptureLasso active le lasso sur l’écran, récupère le résultat de la sélection, effectue un OCR sur cette sélection, et renvoie le texte résultant.
La fonction WLangage RécupèreDéfinition permet maintenant également de connaître le prototype complet des traitements d’initialisation de fenêtres, de pages et d’états.
Une fonction de signature ou de cryptage peut utiliser un certificat.
En version 28, ce certificat peut provenir d’un buffer en mémoire, et plus uniquement d’un fichier sur disque.
En version 28, il devient possible d’indiquer qu’une clé est nullable, c’est-à-dire qu’elle peut contenir la valeur Null.
Null est différent de zéro ou de chaîne vide. Le tri distingue donc maintenant les valeurs à zéro et les valeurs à Null.
Une clé primaire est une clé unique non nullable.
La version 28 permet de définir une clé primaire. Par exemple, un identifiant auto est en général une clé primaire.
Parmi les principales nouveautés majeures HFSQL en version 28 vous adorerez : Clé Nullable, Clé Primaire, HSurveille dans un Thread, Cryptage AES 256, 128 et 192, Amélioration du Centre de Contrôle pour HFSQL Cluster et de HFSQL Spare,...
La version 28 est une version vraiment impressionnante.
Parmi les 928 nouveautés, découvrez vite celles qui vous seront indispensables et celles qui rentabiliseront immédiatement votre version.
Consultez la doc en ligne (Ebook) Documentation détaillée 92 pages (PDF)