Les nouveautés de 4D v20

Ce document compile toutes les nouvelles fonctionnalités disponibles dans 4D v20. Notez que chaque fonctionnalité a un article de blog associé pour vous guider à travers des exemples concrets. Ces articles de blog sont accessibles en cliquant sur le titre de la fonctionnalité.

Également, les sections avec l’étiquette blank sont associées à toutes nouvelles fonctionnalités publiées entre 4D v19 R8 et 4D v20.

Ce document est divisé en six sections :

Amélioration de la communication réseau

Découvrez QUIC blank 

Avec l’augmentation constante du nombre de connexions simultanées aux plus gros serveurs de production fonctionnant sur 4D, la garantie de performances optimales est devenue une priorité absolue pour les équipes de développement. Le protocole QUIC est apparu comme une solution prometteuse pour relever ce défi.

QUIC est un protocole conçu pour améliorer la vitesse et les performances des réseaux côté serveur. Développé par Google au cours de la dernière décennie, QUIC tire parti des avantages de l’UDP au lieu du TCP pour permettre une récupération plus rapide en cas de perte de paquets, de congestion et d’autres problèmes. QUIC est aujourd’hui largement utilisé, par exemple dans HTTP/3 en tant que “HTTP over QUIC” et supporté par tous les principaux navigateurs, déjà utilisé dans plus de la moitié de toutes les connexions aux serveurs de Google. Facebook gère plus de 75 % de son trafic internet à l’aide de QUIC, ainsi que de nombreuses autres applications, telles que YouTube, Gmail et Uber, qui utilisent QUIC pour communiquer avec leurs serveurs.

Nous vous encourageons à essayer QUIC et à nous faire part de vos retours pour nous aider à améliorer et à affiner cette nouvelle technologie passionnante, ouvrant ainsi la voie à son inclusion dans les futures versions de 4Dv20. N’oubliez pas que QUIC peut améliorer la résilience de l’infrastructure 4D, en la rendant plus apte à gérer les mauvaises connexions et autres problèmes de réseau.

Langage 4D et autres fonctionnalités de programmation

Serveur Websocket intégré blank

Le protocole WebSocket fournit un canal de communication persistant et en duplex intégral entre un client et un serveur. Il permet un transfert de données en temps réel entre les deux parties et une communication plus rapide et plus efficace.

4D v20 inclut maintenant un serveur WebSocket intégré, permettant aux développeurs de créer des applications web en temps réel capables de gérer de grands volumes de données et d’offrir une expérience utilisateur transparente.

Cela ouvre un monde de possibilités pour la visualisation de données en temps réel, les applications collaboratives et les applications IoT qui nécessitent des mises à jour instantanées.

 

Initialisateur littéral d’objets et de collections blank

Les objets et les collections peuvent être initialisés dans votre code à l’aide des commandes Créer objet et Créer collection.

4D v20 a introduit une nouvelle syntaxe plus lisible pour initialiser des objets et des collections complexes ou de grande taille dans votre code – le littéral d’objet et le littéral de collection.

Les littéraux d’objet vous permettent d’initialiser un objet avec ses propriétés et ses valeurs entre accolades {}. Par exemple, au lieu d’utiliser la commande Créer objet, vous pouvez créer un nouvel objet et initialiser ses propriétés en une seule ligne de code comme ceci $object1 := {a : “foo” ; b : 42+26 ; c : {} ; d : [“coucou” ; “rien”]}.

De même, avec les littéraux de collection, vous pouvez initialiser une collection dont les éléments sont placés entre crochets [].

 

Nouvelles commandes pour verrouiller le datastore blank

4D vous offre plusieurs moyens intégrés pour sauvegarder vos données : 4D backup et l’utilisation d’un serveur miroir. Avec 4D v20, 4D expose des commandes internes pour verrouiller le datastore, vous permettant de copier vos données pendant que 4D est en cours d’exécution. Dites bonjour à ds.flushAndLock(), ds.locked() et ds.unlock().

 

Intégration automatique de multiples journaux blank

4D v20 introduit une nouvelle fonctionnalité puissante qui peut considérablement améliorer votre productivité pendant les opérations de maintenance de la base de données. Vous pouvez vous concentrer sur le développement de votre application en intégrant automatiquement plusieurs journaux au démarrage de la base de données plutôt que de passer du temps à des tâches manuelles de gestion de la base de données.

Pour bénéficier de cette fonctionnalité, il suffit de s’assurer que le paramètre “Intégrer les derniers journaux si la base de données est incomplète” est activé, ce qui est le cas par défaut. Ensuite, placez les fichiers journaux que vous souhaitez intégrer à côté du fichier actuel. 4D détectera automatiquement toute opération manquante dans la base de données de démarrage et vérifiera tous les fichiers journaux pour déterminer si la récupération est possible. S’il n’y a pas de problème, il intégrera les opérations de tous les journaux sans aucune intervention de votre part.

 

Créer une application avec les commandes 4D blank

4D a continuellement ajouté de nouvelles fonctionnalités pour aider les développeurs à créer leur propre chaîne de construction, offrant ainsi une plus grande flexibilité et des options de personnalisation pour leurs applications. Ces fonctionnalités incluent la possibilité de créer un dossier “.zip”, d’ajouter des informations supplémentaires telles que le copyright d’un exécutable ou d’une “dll”, et de créer un fichier “info.plist”.

Avec la sortie de 4D v20, deux nouvelles fonctionnalités ont été ajoutées pour faciliter le processus de création d’applications autonomes ou client/serveur :

  1. Ajout d’une icône à un Exécutable.
  2. Génération du fichier de licence de déploiement.

 

Un outil pour l’exécution de code 4D en CLI blank

4D v20 vous apporte une nouvelle application appelée tool4d. Cette application est un sous-ensemble de 4D conçu pour votre chaîne de construction afin d’automatiser le processus de construction et est dédiée à l’exécution de scripts sans tête via l’interface de ligne de commande. Mais elle fournit également le serveur LSP, qui communique avec l’extension VS Code.

 

Extension 4D-Analyzer blank

Cette extension a suscité beaucoup d’intérêt de la part de nos développeurs 4D, et nous somme heureux au possible !

4D a apporté la prise en charge de l’éditeur de code Visual Studio Code, ce qui lui permet de gérer le code 4D et de lui fournir des fonctionnalités standard telles que mise en évidence de la syntaxe, Aller à la définition, Aide à la signature et complétion de code.

4D v20 apporte de nouvelles fonctionnalités à l’éditeur Visual Studio Code grâce à l’extension 4D-Analyzer : Dites bonjour au pliage et indentation du code, ainsi qu’à la vérification de la syntaxe.

 

Découvrez la fonction Distinct améliorée blank

La fonction Distinct des classes Collection et Entity selection permet de récupérer une liste de valeurs uniques.

Avec 4D v20, vous pouvez aussi récupérer le nombre d’occurrences de chaque valeur distincte. En outre, il permet de récupérer tous les chemins d’attributs utilisés dans un champ d’objet. Cette fonctionnalité peut être utile lorsque vous travaillez avec de grands ensembles de données et que vous avez besoin d’analyser la fréquence de valeurs spécifiques.

Comparaison avec une valeur non définie blank

Avec l’introduction d’ORDA et d’autres objets dans 4D, les développeurs travaillent souvent avec des valeurs non définies, ce qui conduit parfois à des erreurs lors de la comparaison avec d’autres valeurs.

À partir de 4D v20, une nouvelle amélioration a été introduite qui permet aux développeurs de comparer n’importe quel type de valeur avec une valeur non définie sans générer d’erreur. Cela signifie que vous pouvez désormais comparer en toute sécurité des valeurs non définies avec d’autres valeurs sans craindre de provoquer une erreur dans votre code.

Présentant les dernières fonctionnalités de recherche et de remplacement blank

La fonction “Rechercher et remplacer” de l’éditeur de code existe depuis de nombreuses années. Les développeurs peuvent rapidement et efficacement rechercher et remplacer du code, en particulier lorsqu’ils traitent de grandes bases de code. 4D v20 apporte des améliorations qui seront certainement appréciées par les développeurs qui comptent sur cette fonctionnalité pour pour optimiser leurs processus de codage :

  • connaître le nombre d’occurrences à remplacer,
  • connaître la position de I’occurrence actuelle,
  • avoir un accès permanent aux options de navigation suivantes et précédentes,
  • afficher une palette au lieu d’une fenêtre modale pour limiter le nombre de clics.

 

Transmission d’un objet formulaire aux commandes Print Form et FORM LOADblank

Avec 4D v20, la commande Form est supportée par Print form et FORM LOAD. La commande Form, dont les versions précédentes étaient disponibles pour le DIALOG ou les sous-formulaires, permet de considérablement réduire le besoin de variables de processus et d’écrire un code plus portable et isolé. Il s’agit d’une amélioration bienvenue à 4D qui rendra sans aucun doute la vie des développeurs plus facile et plus productive.

Créez votre propre “Menu Aide”  blank

Avec 4D v20, vous pouvez créer un menu “Aide” personnalisé pour votre application en passant une collection décrivant les éléments du menu. Cela vous permet, par exemple, de fournir à vos utilisateurs un accès facile à la documentation, à au support et à d’autres ressources utiles.

 

Nouvelles fonctions pratiques pour les collections blank

4Dv20 fournit un ensemble de fonctions pour manipuler les collections. En plus des 40 méthodes déjà fournies dans la version précédente, cette version vous offre :

  • first() et last(), comme leurs noms l’indiquent, permettent d’accéder au premier et au dernier élément d’une collection.
  • La fonction at() est également une alternative aux crochets (col[x]) avec un avantage : la valeur peut être négative pour obtenir les éléments à partir de la fin.
  • La fonction flat() est plus innovante et sera très utile dans certains cas. Elle permet d’aplatir des collections qui peuvent contenir des collections (qui peuvent aussi inclure des collections, etc.).
  • La fonction includes() est pratique car elle permet de savoir si une collection contient tel ou tel élément de presque n’importe quel type… texte, numérique, date… et même des références d’objets ou de collections.
  • Le nouveau reduceRight() qui est l’équivalent optimisé de reverse().reduce()
  • La fonction flatMap() permet d’effectuer, en une seule opération, un map() suivi d’un flat() – une fonction que nous avons mentionnée précédemment.

 

Format PDF pour la prévisualisation d’impression sous Windows blank

Le format PDF est maintenant une alternative viable au format XPS pour la prévisualisation des impressions sous Windows, offrant aux utilisateurs une nouvelle option plus accessible. La décision de Microsoft de faire de la visionneuse XPS une fonctionnalité optionnelle de Windows a posé des problèmes à de nombreux utilisateurs lors du déploiement d’applications, les utilisateurs finaux n’étant pas en mesure de prévisualiser leurs impressions. Bien que l’installation de la visionneuse XPS gratuite soit un processus simple, certains administrateurs hésitent à installer des fonctionnalités supplémentaires, en particulier dans les environnements de bureau à distance.
Heureusement, 4D v20 offre à présent la possibilité d’utiliser le format PDF pour l’aperçu avant impression. Étant donné que presque toutes les versions actuelles de Windows sont préinstallées au format XPS ou PDF, les utilisateurs finaux ne devraient plus rencontrer de problèmes avec l’aperçu avant impression. Cette nouvelle option offre une solution plus souple et plus efficace qui répond aux besoins des utilisateurs finaux et des administrateurs.

 

Return. Continue. Break. Et bien plus 

Nous avons écouté et suivi vos demandes de fonctionnalités dans le Forum 4D avec plusieurs améliorations de la langue 4D !

  • En commençant par des instructions qui vous permettent de quitter un bloc de code :
    • Le mot-clé return met fin à l’exécution de la méthode ou de la fonction dans laquelle il apparaît et renvoie le contrôle à la méthode appelante. Il peut également renvoyer une valeur optionnelle.
    • Le mot-clé break met fin à la boucle qui le contient. L’instruction suivante exécutée est celle qui suit immédiatement le corps de la boucle.
    • The continue statement terminates the statements’ execution in the current loop’s current iteration and continues the execution of the loop with the next iteration.
    • L’instruction continue met fin à l’exécution des instructions dans l’itération actuelle de la boucle et poursuit l’exécution de la boucle à l’itération suivante.
  • Suivi d’une évaluation de circuit court : Dans une expression qui utilise un opérateur ET ou OU, une évaluation en circuit court signifie que le deuxième argument est exécuté ou évalué uniquement si le premier argument ne suffit pas à déterminer la valeur de l’expression. Pour ce faire, nous ajoutons deux nouveaux opérateurs : 
    • && pour l’opérateur ET
    • || pour l’opérateur OR
  • Ensuite, il y a un opérateur ternaire, qui est une condition suivie d’un point d’interrogation ( ? ), une expression à évaluer si la condition est vraie suivie de deux points ( :), et enfin, l’expression à évaluer si la condition est fausse : condition ? valeur Si Vrai : valeur Si Faux.

 

Gestion des erreurs

4D v20 apporte de nouvelles possibilités à la gestion des erreurs. Désormais, vous pouvez définir un gestionnaire d’erreur global qui sera efficace pour tous les contextes d’exécution (processus, workers, attributs calculés ORDA, fonctions ORDA, etc.) Si vous ne définissez pas de gestionnaire d’erreur local dans un nouveau processus/worker, le gestionnaire d’erreur global sera invoqué automatiquement. Cela signifie qu’il n’y a plus de dialogue d’erreur affiché sur le serveur ou d’erreurs non capturées.

Visualisez les composants de vos classes dans l’explorateur de méthodes

4D permet déjà aux applications fonctionnant encore en mode binaire de tirer parti des fonctionnalités des classes en utilisant un composant (en mode projet) pour créer et utiliser vos propres classes à partir de votre application (en mode binaire). Cette fonctionnalité inclut des astuces et un support de complétion de code pour faciliter l’écriture du code.

Pour rendre votre expérience de codage encore plus facile, 4D v20 apporte une nouvelle fonctionnalité. Dorénavant, vous pouvez visualiser une liste de toutes les classes de composants disponibles dans l’explorateur de méthodes, ce qui vous permet de décider en un clin d’œil quelles fonctions vous avez besoin d’utiliser dans votre code.

 

Support d’entiers plus grands que “integer32”

Vous avez donc besoin de nombres plus grands que 2 milliards (32 bits) avec une grande précision pour des compteurs ou autres ? Nous avons amélioré les réels et la façon dont ils sont traités afin de répondre à ce besoin. Alors que les réels sont connus pour être imprécis, ils sont 100% précis même pour les très grands nombres, tant qu’ils n’utilisent pas de virgule décimale (= nombres entiers). Cela permet d’utiliser des nombres allant jusqu’à 53 bits, ou plus exactement [-(2^53)+1, (2^53)-1]. Ainsi, une plage allant de -9 007 199 254 740 992 à 9 007 199 254 740 992 sera représentée de manière exacte.

La conversion vers ou depuis le texte était limitée à l’utilisation de la notation scientifique à 12 chiffres, ce qui entraînait une perte de précision. Avec 4D v20, nous avons amélioré la précision et la conversion de n’importe quel nombre réel (présentant un entier) en texte. L’amélioration de la conversion en chaîne concerne la commande String() et les commandes JSON et XML renvoyant les nombres sous forme de chaîne.

Support des formules dans les collections et les commandes de rappel 

Pour simplifier l’utilisation des collections dont la méthode membre nécessite une méthode de rappel, 4D permet d’utiliser une formule pour définir une méthode de rappel :

 

Permettre aux composants de publier des classes

Supposons que votre application fonctionne encore en mode binaire. Dans ce cas, cette fonctionnalité vous permettra de bénéficier des classes et du développement orienté objet en utilisant un composant (en mode projet) pour créer et utiliser vos propres classes à partir de votre application (en mode binaire). Ainsi, à partir de 4D v20, une nouvelle section Composant est ajoutée à Propriétés structure -› Géneral, vous permettant de configurer comment les classes et fonctions de votre composant seront exposées dans l’éditeur de méthodes de 4D une fois le composant est installé.

 

Transférer des paramètres d’une fonction ou d’une méthode à une autre

Avec 4D v20, les développeurs n’ont pas à gérer des vérifications complexes de paramètres (paramètres de comptage, types de valeurs) lors de l’appel d’une fonction et du passage de paramètres. 

Une nouvelle commande est fournie, Copy parameters, qui permet de passer facilement les paramètres utilisés pour l’appel d’une fonction ou d’une méthode à une autre fonction/méthode. Il en résulte un code plus léger, plus élégant et plus facile à lire.

 

Communication entre formulaires et sous-formulaires 

A partir de 4D v20, l’association d’une variable à un sous-formulaire a enrichi les possibilités d’interfaces et de communication entre formulaires et sous-formulaires. Les moyens de communication sont désormais simplifiés par deux nouvelles commandes : OBJECT Get subform container value et OBJECT SET SUBFORM CONTAINER VALUE.

 

Nouvelle commande pour obtenir des informations détaillées sur les licences

4D v20 est livré avec une nouvelle commande qui donne toutes les informations sur l’utilisation de votre licence : Get License Usage. Nous avons également étendu nos journaux de diagnostic. Grâce à cette fonctionnalité, vous serez en mesure de suivre la consommation de licences sur votre serveur, d’optimiser votre utilisation et de planifier vos besoins futurs.

 

Plus d’options pour la commande OBJECT SET saisissable

La commande OBJECT SET ENTERABLE a été améliorée, ce qui vous permet de mieux gérer un champ qui n’est pas modifiable. Le troisième paramètre de la commande peut être un booléen ou un entier.

  • Vous pouvez donc utiliser la commande comme auparavant sans modifier votre code en passant un booléen. Seule la propriété saisissable est modifiée (False ou True).
  • Vous pouvez également transmettre un nombre entier. Vous pouvez ainsi définir les propriétés saisissable et focalisable de votre champ.

 

Accéder à des paramètres de méthode qui n’existent pas

4D v20 permet d’accéder à tous les paramètres de la méthode sans erreur, même si certains n’ont pas été transmis par l’appelant. Le code est plus simple et plus lisible sans le mot-clé “if” répété.

 

Créer un attribut blob dans un objet

Avec l’introduction des classes, le besoin de stocker des données dans des objets a augmenté, en particulier des données sous forme de blobs. C’est pourquoi 4D v20 prend en charge l’encapsulation des blobs dans des objets.

Au-delà de l’aspect stockage, l’objet blob étant un type de référence, votre utilisation de la mémoire sera plus faible et votre vitesse d’exécution sera considérablement améliorée.

 

Gestion de la marque d’ordre des octets (BOM) et de la fin de ligne (EOL)

4D a évolué en douceur pour suivre les meilleures pratiques concernant la gestion de certains caractères invisibles dans les fichiers texte. C’est pourquoi, dorénavant, 4D écrit des fichiers textes sans BOM (Byte Order Mark). Et sur macOS, 4D utilise LF comme caractère EOL (End of Line). Ceci est complètement automatique pour tous les fichiers écrits par 4D, tels que 4DSettings, 4dm, 4DForm, etc.

En ce qui concerne les paramètres de compatibilité, de nouvelles options sont disponibles permettant à TEXTE VERS DOCUMENT et Fichier.setText() de générer des fichiers sans nomenclature et d’utiliser LF comme caractère EOL sur macOS lorsque les paramètres optionnels “charSet” et “breakMode” sont manquants. Pour plus de détails, consultez la documentation.

 

Fichier .gitignore par défaut dans les nouveaux projets

Le mode projet vous permet de suivre facilement les modifications avec Git (système de contrôle de version), mais souvent vous ne voulez pas suivre les fichiers de votre projet dans le dépôt Git. 4D v20 vous permet de définir ce qu’il ne faut pas suivre dans un nouveau projet en ajoutant automatiquement un fichier .gitignore par défaut dans le dossier du projet avec une liste de fichiers et de dossiers par défaut à exclure.

 

Signature automatique des composants sur Mac

Avec 4D v20 et sur Mac, 4D signe automatiquement les composants construits en utilisant les certificats définis par l’utilisateur ou une signature Adhoc si aucun certificat n’est spécifié. Cela permet aux développeurs de composants de distribuer des composants signés afin que les utilisateurs finaux n’aient pas à les signer avant de les utiliser.

 

Afficher la documentation en ligne directement à partir de l’éditeur de code

Vous pouvez accéder aux détails d’une fonction de classe sans avoir à chercher sur le site de documentation. Il suffit d’appuyer sur la touche F1 ou de cliquer sur l’élément Définition Goto… du menu contextuel

 

Courriers électroniques (emails)

POP3 : Téléchargement de l’en-tête du courrier uniquementblank

Lorsque vous récupérez des messages de courrier électronique à l’aide de POP3, il est possible de ne récupérer que les en-têtes du message (qui comprennent des informations telles que l’émetteur, l’objet et la date) sans télécharger la totalité du corps du message.

La récupération uniquement des en-têtes des messages peut s’avérer utile lorsque vous souhaitez parcourir rapidement la liste des messages de votre boîte mail pour décider lesquels télécharger et lire dans leur intégralité.

A partir de 4D v20, un nouveau paramètre est ajouté à la fonction POP3Transporter.getMail() pour recevoir vos courriers électroniques sans le corps.

 

IMAP : Id de la boite mail et mots clés de la boite mail blank

4D v20 apporte deux fonctionnalités utiles aux transporteurs IMAP :

La première fonctionnalité est la possibilité de gérer des mots-clés personnalisés pour les courriels lors de l’interaction avec des serveurs de messagerie et des clients IMAP spécifiques. Les mots-clés personnalisés vous permettent de marquer les courriels avec des étiquettes ou des catégories particulières, ce qui facilite l’organisation et la recherche ultérieure. Avec cette nouvelle fonctionnalité de 4D v20, vous pouvez ajouter, supprimer ou lister des mots-clés personnalisés à l’aide du Transporteur IMAP.

La deuxième fonctionnalité est le support des ID de boîte mail dans dans le Transporteur IMAP. Lorsque vous travaillez avec des boites mail IMAP, elles peuvent être renommées ou déplacées, ce qui rend le suivi difficile au fil du temps. Avec la support des ID des boîtes mail dans 4D v20, vous pouvez identifier une boîte mail spécifique même si elle a été renommée ou déplacée. Cela peut être utile pour garder une trace des boîtes mail essentielles, telles que celles qui contiennent des messages archivés ou des messages provenant d’émetteurs spécifiques

 

Support natif de Microsoft 365

Comme de plus en plus de clients passent à Microsoft 365 pour leurs besoins de messagerie, 4D v20 offre ainsi une solution pour simplifier la gestion des courriels.

Les dernières fonctionnalités d’automatisation permettent d’automatiser facilement les opérations de messagerie de Microsoft 365 à l’aide des commandes intégrées. Ces opérations comprennent :

  • envoyer, recevoir des emails et répertorier les dossiers de votre boîte mail
  • déplacer un email d’un dossier à un autre,
  • répondre à un email et créer une conversation,
  • créer un brouillon d’email et l’enregistrer dans le dossier de votre choix,
  • et supprimer un email.

 

Microsoft365 : gestion des dossiers blank

Microsoft est en train de déprécier l’authentification de base pour IMAP et POP3, ce qui signifie que les utilisateurs devront utiliser une méthode d’authentification plus sécurisée pour accéder à leurs données de messagerie. L’API graphique est un moyen plus sûr et plus moderne d’accéder aux données de Microsoft 365, y compris aux données de messagerie.

Grâce aux nouvelles fonctions de 4D NetKit, vous pouvez désormais gérer (créer, supprimer, renommer et obtenir des informations) en programmant vos boîtes mail à l’aide de l’API Microsoft Graph.

 

Obtenir des informations sur les utilisateurs à partir d’Azure

Outre l’accès aux applications Office, Microsoft fournit un Active Directory basé sur Azure, qui permet aux utilisateurs de se connecter pour accéder à des services tels que Microsoft Sharepoint et OneDrive à l’aide d’un navigateur web. Tous les services Microsoft utilisent le même système d’authentification unique, basé sur l’adresse e-mail. À partir de 4D v20, 4D NetKit vous permet de faire partie de ce concept, en permettant aux utilisateurs de se connecter à votre application à l’aide de leurs identifiants habituels de l’entreprise.

Elle non seulement permet l’authentification unique, mais aussi la recherche d’informations sur un utilisateur authentifié, telles que l’adresse électronique, le service et le numéro de téléphone. Si l’administrateur l’autorise, vous pouvez récupérer des informations sur les collègues de l’utilisateur au sein de la même entreprise.

 

Support Bcrypt pour les mots de passe

À partir de 4D v20, tous les mots de passe sont hachés avec l’algorithme bcrypt. Un algorithme prend beaucoup plus de temps à calculer, suffisamment pour empêcher les algorithmes de force brute de récupérer le mot de passe original.
Pour le mettre en place, tout est automatique. Vous n’avez besoin de toucher à aucun paramètre ni à aucune ligne de code. Lorsque le mot de passe est modifié dans la boîte à outils ou à l’aide des commandes CHANGER MOT DE PASSE  ou Ecrire proprietes utilisateur, le hachage bcrypt est stocké. Lors de l’authentification, 4D reconnaît automatiquement si le mot de passe est stocké avec le hachage legacy ou bcrypt, de sorte que les utilisateurs continuent à se connecter sans changer leur mot de passe.

 

Améliorations du client HTTP

Afin de continuer à améliorer la syntaxe et les fonctionnalités de 4D, nous avons décidé de moderniser les commandes client HTTP dans 4D. 4D v20 a apporté une nouvelle façon d’effectuer des requêtes HTTP : les classes HTTP. De plus, certaines fonctionnalités des classes HTTP, y compris les réponses compressées, les réponses groupées et les redirections.

 

Éditeur de code

Passer rapidement aux différentes fonctions d’une classe

Les classes sont composées de plusieurs fonctions plus ou moins longues. Il n’est donc pas toujours facile de trouver la fonction à modifier ou de passer d’une fonction à l’autre. Il est possible d’utiliser l’explorateur, qui affiche les classes et les fonctions, mais lorsqu’on code dans la fenêtre de l’éditeur, on ne veut pas perdre de temps à changer de fenêtre.

Avec 4D v20, la liste des fonctions de votre classe est affichée dans la barre d’outils de l’éditeur de code, ce qui vous permet d’accéder rapidement à une fonction spécifique.

Étiquettes de commentaires

Avec 4D v20, les commentaires atteignent un nouveau niveau grâce aux étiquettes de commentaires qui permettent de mieux organiser vos commentaires. Les étiquettes sont utilisés pour classer les commentaires en plaçant simplement l’étiquette au début de la ligne de commentaire. Nous avons mis trois étiquettes à votre disposition :

  • MARK
  • TODO
  • FIXME

L’étiquette MARK vous permet de diviser votre code en sections. Vous pouvez l’écrire de trois manières différentes. Les deux autres étiquettes TODO et FIXME s’écrivent de la même manière. L’intérêt est qu’elles ont des icônes différentes dans la liste, ce qui vous permet d’organiser votre code pour prioriser vos actions futures.

Syntaxe de vérification des objets

L’autocomplétion simplifie l’écriture du code et limite les erreurs dans les noms de fonctions. Mais elle ne les évite pas totalement ; il est facile d’inverser deux lettres, d’oublier une majuscule. Et puis, passez du temps à chercher pourquoi votre code ne fonctionne pas. Alors quoi de mieux que de demander à 4D de vérifier si les classes ou les fonctions existent déjà ? Depuis 4D v20, un avertissement est affiché dans l’éditeur de code si vous appelez une fonction qui n’existe pas.

Personnalisation de l’éditeur de code

En plus de la personnalisation de la fenêtre et de la zone de code, 4D v20 apporte deux nouvelles options de personnalisation :

  • Montrez ou cachez les dix presse-papiers.
  • L’icône “afficher/masquer les listes” a été déplacée en bas à droite, à côté des listes..

 

Navigation simplifiée entre le code, la documentation et l’explorateur 

Lors de la création d’un formulaire ou de l’écriture d’une nouvelle fonction ou d’une nouvelle méthode, vous devez généralement.. :

  • accéder à l’explorateur pour remplir le formulaire dans son dossier
  • accéder à l’explorateur pour rédiger la documentation de la méthode
  • pour voir la documentation d’une commande sur le site en ligne de 4D
  • pour voir la documentation d’une méthode d’un composant
  • accéder au code de la fonction qu’on veut utiliser dans notre méthode pour y apporter quelques modifications
  • naviguer facilement entre les différentes fonctions d’une classe

Dans 4D v20, nous avons ajouté des éléments de menu et une nouvelle liste dans l’éditeur de code, vous permettant de mieux naviguer entre les différents éléments d’un projet.

 

Afficher la documentation en ligne directement à partir de l’éditeur de code

Avec 4D v20, vous pouvez accéder aux détails d’une fonction de classe sans avoir à chercher sur le site de documentation. Il suffit d’appuyer sur la touche F1 ou de cliquer sur l’élément Définition Goto… du menu contextuel.

 

Web

Débogage sur le serveur avec des sessions web extensibles

Les sessions web extensibles ont constitué une amélioration significative. Elles permettent d’utiliser les balises 4D, les actions 4D et l’API REST dans des processus préemptifs, même en mode interprété, sur un serveur 4D. Cependant, pour le débogage, vous devez ouvrir votre environnement de développement sur le serveur pour le faire basculer en mode coopératif, car la fenêtre du débogueur ne peut pas être ouverte avec des processus préemptifs. À partir de 4D v20, nous avons simplifié le débogage sur le serveur en y attachant simplement le débogueur.

 

Nouveau moteur de rendu du système Windows

À partir de 4D v20, si vous utilisez le moteur de rendu du système, 4D utilise Microsoft Edge WebView2. Ce changement vous permet de bénéficier d’un navigateur moderne doté des dernières fonctionnalités et mises à jour de sécurité. Par exemple, Microsoft Edge peut être utilisé pour afficher des PDF.

 

Fichiers et dossiers

File Handles

En ce qui concerne l’écriture et la lecture, les fonctions setText et getText sont à votre disposition pour lire ou écrire l’intégralité du contenu. 4D v20 apporte des File Handles au cas où vous voudriez lire ou ajouter une ou plusieurs lignes à un document existant.

Les File Handles sont des objets créés sur la base des objets “Fichier” et disposent de fonctions permettant d’accéder à n’importe quelle partie des documents et, à partir de là, de lire ou d’écrire leur contenu de manière séquentielle.

SUPPORT DE LZMA, LE NOUVEL ALGORITHME DE COMPRESSION 

Avec 4D V20, la commande Zip Create Archive supporte un nouvel algorithme de compression : LZMA. L’avantage de cet algorithme est qu’il crée des archives plus réduites que l’algorithme de compression zip standard. Vous pouvez passer un objet “zipArchive” à la commande pour personnaliser votre zip. Cela vous permet de choisir l’algorithme de compression, l’algorithme de cryptage et d’autres options.

 

Les list box

Hauteurs de rangées automatiques dans les list box basées sur une collection

Les hauteurs de ligne automatiques étaient déjà possibles pour les list box basées sur des tableaux, ce qui leur permettait d’adapter automatiquement la hauteur de chaque ligne à son contenu. 4D v20 apporte cette possibilité aux list box basées sur des collections et des sélections d’entités.

 

Dites adieu à la touche ALT

En ce qui concerne les list box et l’action de glisser-déposer, à partir de 4D v20, il n’est plus nécessaire de maintenir la touche Alt enfoncée pour déplacer plusieurs éléments simultanément.

 

Marge horizontale et verticale des cellules

La puissance des list box est étendue avec 4D v20 grâce à deux nouvelles propriétés : la marge horizontale et la marge verticale (les marges intérieures ou l’espace entre le contenu d’un élément et sa bordure). Elles donneront à vos list box de nouvelles possibilités de présentation, et votre interface aura un aspect encore plus professionnel.

Ces propriétés peuvent être définies globalement pour l’ensemble de la list box ou pour chaque élément, comme les colonnes, les en-têtes ou les pieds de page. Une fois définies pour la list box, elles seront appliquées à chaque sous-objet de la list box par héritage. Mais bien sûr, chaque sous-objet peut avoir ses propres paramètres.

Le réglage de la marge peut se faire de deux façons :

  • via le mode de conception dans la liste des propriétés sous “Coordonnées et dimensions”.
  • ou par programmation à l’aide de la commande LISTBOX SET PROPERTY grâce à deux nouvelles constantes, lk cell horizontal padding, et lk cell vertical padding..

 

Développement simultané sur 4D Server en mode projet

Si vous faites partie des développeurs qui ont demandé la possibilité de travailler simultanément avec des coéquipiers sur un même serveur de développement, 4D v20 va répondre à votre souhait, grâce à un nouveau mode de connexion d’un 4D Client à un 4D Server : le mode développement.

Les développeurs peuvent modifier la structure de la base de données, les méthodes, les formulaires et les paramètres en mode développement. Nous avons modifié le système de verrouillage afin de fournir les mêmes fonctionnalités qu’en mode binaire.

 

Tester l’application Windows SDI

Ça fait longtemps que vous pouvez fournir à vos clients des applications fusionnées en mode SDI. C’était un grand pas en avant pour les applications Windows UX.

4D v20 facilite le test d’une application SDI : vous pouvez visualiser le résultat de votre application sans avoir besoin de construire votre application autonome ou cliente.

 

System Workers (Travailleurs du système) : Lancer un processus externe de manière asynchrone

Une autre fonctionnalité très demandée est disponible. Parfois, vous avez besoin d’exécuter des processus en arrière-plan et d’effectuer des actions spécifiques basées sur le code de sortie dès qu’il est disponible alors que le processus est toujours en cours d’exécution. Par exemple, pour afficher une barre de progression. 4D vous permet de lancer un processus en arrière-plan avec la nouvelle classe 4D.SystemWorker et d’exécuter automatiquement des méthodes de rappel quand le processus renvoie des informations. Ainsi, si vous l’utilisez avec une interface, l’interface reste réactive pour votre utilisateur pendant que le processus externe est en cours d’exécution et, lorsqu’il est terminé, vous pouvez afficher le résultat à votre client.

 

Réorganisation des journaux de diagnostic

Les journaux de diagnostic sont devenus de plus en plus importants pour le dépannage. Nous les avons entièrement réorganisés en améliorant leur contenu et en ajoutant un moyen de filtrer le contenu (niveaux de journal tels que trace, debug, info, warn et error). Grâce au nouveau paramètre de base de données Diagnostic log level, vous pouvez contrôler le flux de journaux dans le journal de diagnostic et le garder réduit tout en enregistrant ce dont vous avez vraiment besoin.

 

Fichier de configuration pour l’enregistrement

Dans le cadre de notre projet d’amélioration des journaux, 4D ajoute deux nouvelles fonctionnalités :

    • la possibilité d’interrompre instantanément l’enregistrement
    • et un moyen pour les équipes d’assistance d’aider rapidement leurs clients à configurer leurs journaux à l’aide d’un fichier de configuration.
 

Interface utilisateur

Évolution des objets de formulaires blank

Pour vous permettre de réaliser les plus belles interfaces, de nouvelles possibilités sont disponibles :

  • Pour les boutons, les boutons radio et les cases à cocher, nous avons ajouté de nouveaux paramètres pour le texte et l’icône. La propriété “Alignement horizontal” et la nouvelle propriété “Image collée au titre”.
  • Pour les boutons radio et les cases à cocher, le nombre d’états de l’icône a été amélioré (True, False, Rollover et Disable) afin de permettre un meilleur rendu pour l’utilisateur final.

 

Coins arrondis 

De plus, 4D v20 a ajouté la possibilité d’arrondir les angles des textes statiques et des textes de saisie grâce au nouvel attribut “Corner radius”. La spécification de sa valeur peut se faire via l’interface utilisateur (la liste des propriétés), CSS ou dans le code.

 

DPI élevé sous Windows : Prise en charge des écrans à haute résolution 

High DPI signifie High Dots Per Inch (nombre élevé de points par pouce). Il représente la densité des pixels ; plus le DPI est élevé, plus la densité des pixels est importante. Sur les écrans 4K, la densité de pixels peut être tellement élevée que l’affichage habituel rendrait toutes les icônes et commandes extrêmement petites. C’est pourquoi Windows vous permet de modifier l’échelle du texte, des icônes et des commandes. Sur les écrans 4K, cette option est activée par défaut. Nous avons d’abord pris en charge le DPI élevé sur Mac et il est maintenant entièrement compatible avec Windows. Il en résulte une meilleure qualité de texte et d’image.

 

Développer avec 4D dans un environnement sombre sur macOS

Depuis 4D v19, vous pouvez créer des applications sur macOS qui prennent en charge le mode sombre. Vous pouvez ainsi satisfaire vos utilisateurs en leur permettant de choisir des applications de style clair ou sombre. Avec 4D v20, nous vous offrons, en tant que développeur, la possibilité de choisir le mode de développement de votre application. 4D Developer Edition s’intègre discrètement à l’aspect clair ou sombre de macOS.

 

Optimisation de la barre d’outils de l’éditeur de structure

La barre d’outils a été modifiée pour moderniser et uniformiser toutes les fenêtres 4D.

Lorsque vous survolez des tableaux, des champs ou des relations, des informations utiles s’affichent dans la barre d’état. La nouveauté de 4D v20 est l’affichage des noms des relations directement dans la barre d’état. Il n’est plus nécessaire d’ouvrir la fenêtre des propriétés.

 

Explorateur de données

L’ Explorateur de données 4D est une interface de navigateur web qui peut être utilisée par l’administrateur et le développeur à distance (de manière sécurisée avec une connexion HTTPS) ou localement sur la même machine que votre base de données ouverte. 

Avec 4D v20, l’Explorateur de données offre désormais deux améliorations majeures.

Visualisez les relations entre vos données

La première fonction vous permet de visualiser les relations entre vos données, ce qui facilite la navigation et la localisation des informations pertinentes dans votre base de données.

Explorateur de données intégré dans 4Dblank

La deuxième mise à jour est l’ajout d’une icône pour l’explorateur de données dans la barre d’outils, ce qui permet de l’ouvrir encore plus facilement dans 4D au lieu d’un navigateur web externe. Les utilisateurs peuvent accéder à l’explorateur de données directement depuis la barre d’outils en un seul clic, ce qui leur permet de gagner du temps et d’améliorer leur productivité.

 

 

Déploiement

UTILISER DES APPLICATIONS CLIENTS DUPLIQUÉES ET FUSIONNÉES

En tant qu’éditeur de logiciels, certains de vos clients disposent parfois de plusieurs instances de votre application serveur fusionnée, par exemple une application serveur fusionnée pour chaque entreprise du groupe. Dans ce type d’architecture de déploiement, les responsables de vos clients vous demandent souvent d’installer sur leur ordinateur une application client fusionnée pour chaque application serveur fusionnée car ils souhaitent utiliser le logiciel pour chaque entreprise. A présent, vous disposez d’une nouvelle clé buildApp pour que chaque application client dupliquée utilise son propre dossier de préférences utilisateur (basé sur son chemin d’accès à l’application) : ClientUserPreferencesFolderByPath.

 

Gestion des fichiers de répertoire dans les projets de serveurs fusionnés

Côté serveur, l’utilisateur actuel est toujours le concepteur ; par conséquent, l’accès à l’explorateur d’exécution est toujours autorisé. Si vous préférez modifier ce comportement, 4D v20 vous permet de restreindre l’accès des administrateurs à l’explorateur de données et à l’explorateur d’exécution dans les serveurs fusionnés que vous déployez.

 

Réduire la taille des applications clients et plus encore

4D v20 apporte de nombreuses améliorations à la construction des applications 4D. Pour commencer, vous pouvez supprimer les bibliothèques inutiles (telles que CEF/Web Area, PHP, Mecab et 4D Updater) afin de réduire la taille de vos applications. Nous avons également modifié le répertoire final lorsque vous construisez une structure compilée afin de répondre aux besoins de ceux qui utilisent plusieurs versions compilées de la même structure. Et pour nos clients japonais, nous avons fusionné la version japonaise de 4D et la version internationale sur macOS.

 

Création simplifiée d’applications client/serveur multiplateformes sous Windows

Avec l’introduction de Silicon, la création d’applications client/serveur multiplateformes a changé. Tant que vous construisez votre serveur sur Mac, le problème ne se pose pas, puisque vous pouvez compiler pour les plateformes Intel et Silicon. Mais sous Windows, il n’est pas possible de compiler pour les Mac Silicon. 4D v20 introduit une nouvelle fonctionnalité qui réduit le nombre de fichiers à transférer de votre Mac à votre machine Windows. 4D génère également un répertoire Compiled Database (base de données compilée) lors de la construction du client sur Mac. Ce dossier ne contient que le code compilé de votre application et est donc relativement petit.

 

CI/CD: Construisez votre structure ou votre composant compilés avec Build4D 

Avec l’introduction du mode projet, il est assez facile de manipuler les composants de vos projets. Dans les versions récentes, nous avons ajouté plusieurs fonctionnalités qui vous permettent de créer votre propre chaîne de construction adaptée à votre équipe, à vos méthodes de travail et à vos besoins.

Pour vous aider à créer votre propre chaîne de construction ou à intégrer 4D dans un outil d’intégration continue, nous avons développé un composant nommé Build4D, disponible sur GitHub avec les sources. Pour cette première étape, Build4D permet de créer une structure et un composant compilés. Nous continuerons à l’enrichir pour vous permettre de gérer une application mono-utilisateur, client ou serveur.

 

Partager des ressources locales entre utilisateurs avec les services bureau à distance de Windows

Si vous faites partie des développeurs qui ont demandé une fonctionnalité permettant de télécharger des ressources locales dans un dossier partagé avec les services Bureau à distance de Windows au lieu du dossier du compte d’utilisateur, alors 4D v20 apporte de bonnes nouvelles.

Nous avons obtenu certaines optimisations en repensant l’architecture actuelle en développant une nouvelle option pour les projets dans le processus BuildApp afin de permettre la mutualisation des ressources locales.

Elle est activée par cette nouvelle clé BuildApp XML : /Preferences4D/BuildApp/CS/ShareLocalResourcesOnWindowsClient

Cette optimisation produit les résultats suivants :

  • Un gain de temps car les ressources locales ne sont plus téléchargées depuis le serveur par chaque utilisateur,
  • Et un gain d’espace disque puisque, là encore, les ressources locales ne sont pas dupliquées pour chaque utilisateur dans un environnement de Service Bureau à distance.

ORDA

4D v20 continue d’apporter des améliorations à ORDA. Object Relational Data Access (accès aux données relationnelles objet) est une méthode innovante d’accès aux données qui combine les avantages de la programmation orientée objet avec ceux des bases de données relationnelles, permettant aux développeurs de se concentrer sur la résolution des problèmes commerciaux plutôt que sur la gestion de l’accès aux données.

4D v20 apporte :

Gestion des permissions des utilisateurs (serveur REST) 

Outre la possibilité d’exposer ou non une classe de données et certains de ses attributs en tant que ressource REST — ce qui était un moyen pratique de restreindre l’accès à vos données, 4D va plus loin en proposant un système puissant et entièrement personnalisable pour protéger vos données contre les utilisateurs non autorisés. Un système de protection de vos données dépend de la personne qui y accède et quelles données on y accède.

Cette nouvelle fonctionnalité est basée sur les concepts ORDA et les sessions web évolutives. Elle couvre tous les processus web, tels que les requêtes REST, les requêtes reçues sur un datastore distant, et les processus web tels que 4DACTION ou 4D tags.

Optimisation des performances avec un contrôle complet des requêtes REST 

4D v20 vous donne un meilleur contrôle sur les contextes ORDA et le cache aussi bien pour le client/serveur que pour REST afin d’améliorer les performances.

 

Attributs calculés

Une nouvelle façon de rassembler encore plus de logique commerciale dans des Classes et des Classes ORDA ! ! L’époque où vous deviez définir des formules liées à votre activité dans votre interface utilisateur 4D (telles que des concaténations de chaînes de caractères ou des calculs de TVA) est révolue. Vous pouvez désormais définir des calculs complexes directement dans vos Classes et utiliser le résultat de la même manière que vous le feriez pour n’importe quel autre champ de structure dans Rest API, votre application mobile ou votre interface utilisateur basée sur ORDA, par exemple.

Alias d’ORDA 

4D v20 est livré avec un nouveau concept ORDA : les Alias. Ils sont la suite logique et complémentaire des attributs calculés. Comme son nom l’indique, un alias est en fait un raccourci vers un objet existant du datastore. Ils sont définis dans la “classe de données de l’entité” comme les attributs calculés. Alors qu’un attribut calculé peut traiter n’importe quel calcul ou formule, un alias n’est qu’un raccourci, ce qui rend le développement plus rapide et plus facile. Un exemple d’utilisation est de donner un accès facile aux attributs reliés (ce qui signifie cacher la complexité d’une base de données reliée).

 

Désactiver la correspondance (mapping) par défaut de la valeur NULL avec une valeur vide

Lorsque vous créez un nouveau champ dans votre base de données, 4D vous permet de choisir ou non de mapper les valeurs NULL vers des valeurs vides. A partir de 4D v20, dans les nouveaux projets, 4D ne fera plus, par défaut, le mapping de la valeur NULL vers des données vides. Ceci est bénéfique car ORDA est parfaitement conçu pour travailler avec des valeurs NULL et vous évitera de nombreux contournements inélégants.

 

Gestion pessimiste du verrouillage via la mise à jour de RestModel

Avec 4D v20, vous pouvez utiliser l’API REST pour verrouiller ou déverrouiller une entité. Ceci est particulièrement utile pour :

  • Gardez votre code cohérent si vous avez l’habitude de travailler avec l’API REST. Il n’est pas nécessaire d’écrire une fonction dans les classes de modèle de données ORDA pour verrouiller/déverrouiller une entité.
  • Utiliser en douceur les verrous pessimistes avec l’API REST.

 

Support complet de BLOB 

A partir de 4D v20, les Blob sont entièrement supportés dans ORDA, comme tout autre type, ce qui permet aux développeurs ORDA d’utiliser la syntaxe ORDA pour sauvegarder un Blob dans une base de données.

 

Comparer deux sélections d’entités

Vous avez besoin de fonctions robustes et optimisées pour travailler efficacement avec la programmation orientée objet et écrire le moins de lignes de code possible. C’est pourquoi, avec 4D v20, nous livrons une nouvelle fonction disponible sur l’objet entitySelection : la fonction selected(). Cette dernière permet d’inspecter et de comparer deux sélections d’entités.

 

4D Write Pro

 

4D Write Pro s’est considérablement amélioré au cours des dernières versions. En fait, l’équipe de 4D s’est investie pour faire de 4D Write Pro un puissant générateur de documents basé sur des modèles, éliminant ainsi le besoin de créer manuellement des documents tout en réduisant le risque d’erreurs.

Avec 4D Write Pro, vous pouvez alimenter et générer automatiquement des documents pré-remplis avec des informations contextuelles, en tirant des données directement de la base de données 4D. Il s’agit d’informations telles que les noms, les dates, les adresses et les numéros, entre autres types de données. 4D Write Pro fusionne ensuite ces informations avec vos modèles, offrant ainsi un processus de création de documents rationalisé et efficace.

4D v20 introduit de puissantes fonctionnalités telles que les en-têtes, les sources de données et lignes à reporter en bas, pour ne nommer que quelques-unes. Que vous soyez un professionnel ou un développeur, vous trouverez ces fonctionnalités extrêmement utiles pour améliorer votre flux de travail et votre productivité.

 

4D Write Pro & Zones de texte : Options import/export docx blank

Les zones de texte vous permettent d’insérer un conteneur flottant, comprenant du texte, des tableaux, des images, des formules et d’autres éléments n’importe où dans votre document. Cette fonctionnalité a été optimisée dans la version 20 pour inclure l’export et l’import de ces éléments depuis et vers des documents docx.

 

Définir les contextes de données

4D v20 ouvre le monde d’ORDA et du développement orienté objet aux documents 4D Write Pro. Les documents 4D Write Pro contiennent souvent des formules renvoyant des données ou des calculs dépendant de la base de données. Grâce aux contextes, cette association de données aux documents est aussi simple que l’utilisation du mot-clé This. Un moyen idéal pour créer des modèles et des documents personnalisés avec 4D Write Pro.

 

Remplir dynamiquement les tables avec des collections et des sélections d’entités

Remplir manuellement les tableaux avec des données à chaque fois est une tâche pénible. C’est là que le contexte des données devient une option inestimable, ouvrant le monde d’ORDA et du développement orienté objet aux modèles de 4D Write Pro.

Il est maintenant possible de définir une “source de données” pour les tableaux de 4D Write Pro. Qu’il s’agisse d’une sélection d’entités ou d’une collection, cette “source de données” alimentera automatiquement les lignes de vos tableaux. Les tableaux seront automatiquement élargis en fonction de la sélection, et même ajouter des pages supplémentaires si nécessaire. Cela permet à l’utilisateur final de votre application de concevoir et de modifier des modèles qui seront remplis automatiquement avec de données.

 

Lignes à reporter en bas (sous-totaux)

Imaginez que vous ayez un grand tableau de vente qui s’étende potentiellement sur plusieurs pages. À la fin d’une page, vous aimeriez calculer le sous-total, le reporter sur la page suivante et l’inclure dans les calculs de cette page. Cette opération est souvent nécessaire, parfois même imposée par la loi, lorsqu’il s’agit d’éditer de longues factures, par exemple.

4D v20 permet d’insérer une ligne “sous-total” au bas de chaque partie des tableaux respectifs qui peut être remplie automatiquement.

Cela peut se faire de deux façons :

  • Via les deux interfaces (toolbar et sidebar). Le menu du tableau contient un nouvel élément, “Lignes à reporter en bas”.
  • Ou par programmation, grâce au nouvel attribut wk bottom carry over row.

Et pour définir le contenu des cellules de cette ligne à reporter en bas, le nouvel attribut previousItems peut être utilisé avec toutes les fonctions disponibles (min/max/somme/etc.) pour les collections ou les sélections d’entités.

 

Lignes de rupture des tableauxblank

Lorsque vous disposez d’une liste de données, par exemple une liste de personnes avec leurs continents, pays et villes, vous pouvez vouloir les regrouper par continent, puis par pays et enfin par ville. Cela facilitera la compréhension et l’analyse des données.

Lorsqu’un tableau est rempli avec des données provenant d’une source de données triées, 4D Write Pro peut insérer une ligne de rupture chaque fois que la valeur des critères de tri change. Cela permet à l’utilisateur de regrouper les données selon les critères qu’il souhaite.

Dans un autre scénario, cette fonction peut également être utilisée pour créer des rapports basés sur les relations avec les entreprises, où une liste d’employés peut être regroupée par entreprise sur chaque continent. En spécifiant les critères de tri appropriés, 4D Write Pro peut créer des groupes distincts pour chaque entreprise sur chaque continent.

 

4D v20 est livré avec de nouveaux attributs permettant de mieux définir la disposition des tableaux. Cela vous permet de créer des documents 4D Write Pro complexes avec aisance, mais surtout, des documents visuellement attrayants : dites bonjour aux sauts de page à l’intérieur des lignes de tableau. Ceci est utile lorsque les cellules contiennent un texte plus long (ou plusieurs paragraphes). Il peut être intéressant de définir qu’une cellule (et donc une ligne du tableau) peut également être divisée en deux pour remplir l’espace disponible sur les pages des documents :

  • wk page break inside paragraph peut, bien sûr, être appliqué aux paragraphes, mais aussi à toute cible telle que le document lui-même, une section particulière, une plage de texte, etc. Dans tous les cas, l’attribut sera attribué aux paragraphes à l’intérieur de la cible. Il s’agit d’une simple facilité de programmation.
  • wk page break inside table permet de diviser un tableau en deux parties (ou plus), la séparation se fait entre deux lignes du tableau (comme d’habitude).
  • wk page break inside row permet également de diviser un tableau, mais cette fois à l’intérieur des lignes. Notez que cette option dépend de la précédente. Si un tableau ne peut pas être divisé, ses lignes ne peuvent pas l’être non plus.

 

Veuillez noter que l’option de saut de page à l’intérieur des lignes du tableau est disponible dans les widgets toolbar et sidebar .

 

En-têtes des tableaux 

Cette fonctionnalité apporte une autre option utile d’affichage des tableaux, disponible par programmation ou via les widgets de l’interface 4D Write Pro. À partir de 4D v20, vous pouvez définir des en-têtes dans les tableaux et les répéter automatiquement après un saut de colonne ou de page. 

 

Détection des modifications de documents

Lorsqu’un document 4D Write Pro est en mode édition, il est souvent utile de savoir s’il a été modifié par l’utilisateur final. Cette information permet d’ajuster les actions ou les interfaces pour une expérience plus conviviale.

La nouvelle propriété document.modified détectera rapidement les changements à l’intérieur d’un document et effectuera des actions en conséquence. Soit de manière transparente (en effectuant des sauvegardes automatiques lorsqu’un document reste ouvert, par exemple), soit en modifiant l’interface de manière intelligente en fonction des conditions.

 

Affichage convivial des formules 

Tout le monde aime les formules, elles font partie intégrante des documents de 4D Write Pro. Elles permettent d’intégrer de nombreuses informations provenant de la base de données, rendant la création de documents plus intuitive et automatique.

Cependant, certaines formules peuvent parfois être longues en termes de disposition et difficiles à lire pour les utilisateurs finaux.

C’est pourquoi 4D v20 permet d’afficher la formule source avec un symbole ⓕ, indiquant leur présence pour rendre les documents plus précis et transparents.

Cela peut se faire :

  • Via la liste des propriétés, grâce à la nouvelle propriété “Afficher la formule source avec un symbole”.
  • Un nouvel élément dans l’interface.
  • Ou via la programmation grâce au nouvel attribut wk display formula as symbol.

 

 

Désactiver la visibilité des images vides 

Les documents de 4D Write Pro peuvent contenir des images provenant de différentes sources et dans différents formats. Ces images peuvent, dans certains cas, ne pas être affichées pour des raisons tout à fait raisonnables — telles que des URL invalides, des formules renvoyant des images vides, des formats non supportés par la plate-forme, etc.

Cependant, elles sont toujours représentées par un petit rectangle vide indiquant leur emplacement théorique. 4D v20 est livré avec une nouvelle option d’affichage vous permettant de rendre les images vides complètement invisibles. Cela peut se faire de 3 façons différentes :

    • La première méthode et la plus simple, consiste à utiliser la liste des propriétés, qui offre une nouvelle entrée dans le thème Apparence.
    • Soit via l’interface utilisateur qui contient un nouvel élément. Soit dans la toolbar ou dans la sidebar.
    • Ou par programmation en utilisant le nouveau paramètre wk visible empty images.

 

 

Nouvelles options d’affichage des images 

À partir de 4D v20, les images en ligne et ancrées dans les documents 4D Write Pro bénéficient de sept nouveaux types de formatage grâce au nouvel attribut wk image display mode  :

  • Mise à l’échelle (par défaut)
  • Tronquée
  • Tronquée centrée
  • Proportionnelle
  • Proportionnelle centrée
  • Répliquée
  • Répliquée centrée

Nous avons également facilité la mise en forme des images utilisées comme arrière-plan des documents, des sections, des paragraphes, etc. grâce au nouvel attribut : wk background display mode.

Gestion de la visibilité des formules

Plusieurs options d’affichage sont déjà disponibles pour les documents 4D Write Pro. Nous avons ajouté l’option wk formula highlight à la liste, avec 4 valeurs possibles :

  • 0: pas de mise en évidence des formules et des valeurs
  • 1: mettre en évidence uniquement les formules (valeur par défaut)
  • 2: mettre en évidence les valeurs uniquement
  • 3: mettre en évidence les formules et les valeurs

Il est également possible d’utiliser des actions standard. Elles peuvent être utilisées avec des cases à cocher, des boutons standard et des listes déroulantes.

 

Paragraphes liés 

Pour mieux contrôler la mise en page du document, 4D v20 est livré avec la possibilité de choisir si un paragraphe et celui qui le suit doivent rester liés (non séparés par un saut de page ou de colonne automatique).

 

Exporter au format SVG

Les documents de 4D Write Pro peuvent déjà être exportés dans différents formats : pdf, texte brut, Microsoft Word, HTML… A cette liste s’ajoute désormais le format SVG. Celui-ci permet, par exemple, de créer une image de la première page pour une prévisualisation rapide, utilisable sur les deux plateformes et dans un navigateur ou un appareil mobile, ou d’insérer un bloc 4D Write Pro à l’intérieur d’un autre document, tel qu’un document 4D View Pro.

SVG étant un format d’image, vous pouvez choisir quelle page de votre document vous souhaitez exporter. L’image finale sera basée sur le rendu de la page de votre document. Elle tiendra compte de toutes les options de mise en page, telles que l’orientation, les marges, etc.

Amélioration des widgets d’interface 

4D v20 apporte une série de fonctionnalités aux widgets de l’interface :

  • Nous avons ajouté un menu pour insérer des formules dans les deux interfaces.
  • Nous avons également ajouté plusieurs attributs de paragraphes pour un meilleur respect des règles de typographie, afin d’avoir un document plus lisible et plus esthétique, comme par exemple :
    • Contrôle des veuves et des orphelins
    • Éviter les sauts de page à l’intérieur
    • Continuer avec le suivant
    • Hauteur de la ligne
  • Dans le widget sidebar, vous pouvez désormais gérer les sauts de page, les sauts de section, les colonnes et les paramètres d’affichage tels que l’orientation, le format, le type (brouillon, page ou incorporé) ou la visibilité de certains éléments (caractère invisible, en-tête, pied de page).
  • En ce qui concerne le widget toolbar, nous avons ajouté la possibilité de remplir les champs titre, auteur, sujet, société et notes.

 

Prise en charge du mode sombre 

Vous pouvez finalement développer et déployer en mode clair ou sombre sur macOS. Les récents widgets de la bibliothèque sont compatibles avec le mode sombre (sur macOS) :

  • 4D Write Pro Interface toolbar
  • 4D Write Pro Interface
  • Sidebar Rich Zone de texte

 

Boîte de dialogue de paramétrage de l’image 

Le composant d’interface 4D Write Pro comprend désormais une nouvelle boîte de dialogue “Paramètres image”. Cette boîte de dialogue vous permet de définir facilement :

  • la taille de l’image
  • le format d’affichage
  • les marges extérieures et intérieures
  • la position sur la page des images ancrées

 

La boîte de dialogue peut être affichée soit à partir du menu contextuel, soit à partir d’un événement tel que “lors d’un double clic” sur le formulaire à l’aide de la méthode du composant “WP PictureSettings”.

Cette nouvelle fonctionnalité permet également d’ajouter une image à partir d’une URL à l’aide du widget toolbar .

 

Coupures de section continues 

À partir de 4D v20, 4D Write Pro prend en charge les sauts de section continus. Un saut de section continu crée une section à part entière sans provoquer de saut de page. Cela permet, entre autres, d’avoir différents nombres de colonnes sur la même page.

Vous pouvez insérer un saut de section continu :

  • Par programmation via la commande WP Insert break, qui prend désormais en charge une nouvelle valeur : wk continuous section break
  • En utilisant un menu avec une action standard associée ou en ajoutant simplement une action standard à un bouton
  • via l’interface utilisateur

 

 4D View Pro
 

 

Qu’il s’agisse de vente, de finance, de comptabilité, d’analyse de données ou de toute autre profession traitant des ensembles de données longs et difficiles à manipuler, 4D View Pro est la réponse. Il s’agit d’un produit multilingue avec un accès direct à vos données 4D qui vous permet de profiter pleinement de feuilles de calcul intégrées et puissantes. De la possibilité de créer des tableaux de bord graphiques qui ne ressemblent plus à une feuille de calcul aux rapports qui peuvent être créés off-screen chaque matin et envoyés automatiquement à la direction – 4D View Pro a tout ce dont vous avez besoin pour prendre des décisions commerciales significatives.

Et avec 4D v20, le produit est plus puissant que jamais, avec un ensemble de fonctionnalités qui vous seront certainement utiles :

Tableaux croisés

Tableaux croisés dynamiques 4D v20. Si vous comptez parmi vos utilisateurs des personnes travaillant dans les domaines de la vente et du marketing, cette fonction mérite d’être essayée, comme elle vous permet de résumer et d’analyser facilement des données directement à partir du ruban de 4D View Pro.

 

CSV : Nouveau format d’import/export

4D v20 vous permet d’importer et d’exporter des fichiers CSV. CSV est un format commun d’échange de données largement supporté par de nombreuses applications. Par exemple, vous pouvez afficher les données d’un fichier CSV provenant d’un autre système d’information en utilisant le VP Import document et le VP Export document. Ces commandes prennent en charge les formats de fichiers texte délimités tels que CSV.

 

Gestion des feuilles 

Par programmation, 4D v20 vous permet de gérer les feuilles de vos documents 4D View Pro. Vous pouvez créer, renommer, masquer, supprimer une feuille ou simplement vérifier sur quelle feuille l’utilisateur se trouve actuellement en utilisant les commandes suivantes :

  • VP SET SHEET COUNT: définir en une seule fois le nombre de feuilles dont vous avez besoin
  • VP ADD SHEET: insérer une feuille (avec un nom personnalisé) à un index spécifique
  • VP SET SHEET NAME: guidez vos utilisateurs en donnant des noms pertinents à vos feuilles
  • VP SET CURRENT SHEET: modifier la feuille sélectionnée
  • VP SET SHEET OPTIONS: masquer les feuilles, par exemple celles qui ne contiennent que des informations pour le calcul

 

Gérer les sauts de page à partir de l’interface utilisateur 

Avec 4D v20, la gestion des sauts de page depuis l’interface utilisateur est désormais possible grâce à de nouvelles entrées dans le menu contextuel : “Ajouter un saut de page” et “Supprimer un saut de page”. Il est également possible d’afficher ou de masquer les lignes d’impression grâce aux nouvelles commandes VP SET SHOW PRINT LINES et VP Get show print lines.

 

Options du classeur 

Lorsque vous créez un document avec 4D View Pro, vous avez souvent besoin d’affiner votre expérience utilisateur en masquant les onglets des feuilles, les barres de défilement, en désactivant le menu contextuel, ou le glisser-déposer… Toutes ces fonctionnalités et bien d’autres encore sont possibles grâce à la commande VP SET WORKBOOK OPTIONS.

Accélérez votre processus de développement grâce aux modèles

La création de rapports ou de feuilles de calcul à partir de modèles existants accélère le développement. Tout comme un utilisateur final utilisant l’action Copier et Coller, en tant que développeur, vous pouvez, avec 4D v20, simplement “copier” une plage de cellules à partir d’un autre emplacement ou même d’une autre zone. La commande VP MOVE CELLS vous permet de copier/couper et coller une plage de cellules à un autre endroit, même entre deux zones. Une autre façon de copier une plage est de la copier dans un objet avec la commande VP Copy to object, par exemple, pour l’enregistrer dans votre base de données, afin de pouvoir coller cet objet quand vous en aurez besoin avec la commande VP PASTE FROM OBJECT (Coller de l’objet).

 

Interface d’impression  

Afin de faciliter la configuration de l’impression pour vos clients, le ruban dispose désormais d’un nouvel ajout : il prend en charge les paramètres d’impression avec un onglet “Mise en page” et une boîte de dialogue “Mise en page”. Cette boîte de dialogue comprend des onglets pour Page, Marges, En-tête/Pied de page et Feuille, ce qui permet aux utilisateurs de gérer de nombreuses options dans la commande VP SET PRINT INFO.

 

Remplir vos feuilles avec un contexte de données 

4D View Pro vous offre une nouvelle façon de charger vos données et de créer vos modèles : le contexte de données. Il vous permet de créer votre document avec des espaces réservés et de les remplir en définissant ce contexte de données.

 

Affichez vos collections sous forme de tableaux 

4D View Pro vous permet déjà de charger et d’afficher facilement des données dans des feuilles de calcul. 4D v20 apporte une nouvelle fonctionnalité de tableau qui vous permet de faire beaucoup plus et de bénéficier de propriétés supplémentaires comme les en-têtes, le redimensionnement du tableau, la ligne de résumé, le tri des colonnes, les filtres, et bien plus encore. Cette fonctionnalité vous permet également de charger rapidement des données à partir des classes de données et des collections. Dites bonjour à la nouvelle commande VP CREATE TABLE.

 

Gérer les lignes et les colonnes 

4D v20 apporte de nombreuses nouvelles commandes vous permettant de gérer les colonnes et les lignes de vos tableaux plus efficacement — en ajoutant ou en supprimant des colonnes/lignes en fonction des besoins des utilisateurs finaux.

En combinant cette nouvelle fonctionnalité avec les contextes de données, vous pouvez concevoir des modèles plus avancés pour alimenter automatiquement le contenu professionnel avec les bonnes informations pour chaque situation – qu’il s’agisse de rapports, de factures, de contrats ou de tout autre type de document.

 

Personnalisation du style des tableaux

Les tableaux font partie intégrante des documents de 4D View Pro. C’est pourquoi nous avons réalisé de nombreuses avancées dans ce domaine au fil des versions. 4D v20 ajoute une nouvelle fonctionnalité permettant de personnaliser ces tableaux afin qu’ils s’intègrent parfaitement au reste de votre document.

Dorénavant, le VP Set table theme permet d’appliquer par programmation l’un de plus de 60 styles de table prédéfinis. Si aucun de ces styles ne répond à vos besoins, vous pouvez définir votre propre thème et l’appliquer à votre table.

 

 R-releases en profondeur