Nouveautés de 4D v20.

Traduit automatiquement de Deepl

Ce document compile toutes les nouvelles fonctionnalités disponibles dans 4D v20 . Notez que chaque fonctionnalité est accompagnée d’un article de blog qui vous guidera à travers des exemples concrets. Ces articles de blog sont accessibles en cliquant sur le titre de la fonctionnalité.

Par ailleurs, les sections portant la mention blank concernent toutes les nouvelles fonctionnalités publiées entre 4D v19 R8 et 4D v20.

Ce document est divisé en six sections :

Improved network communication

QUIC blank

Le nombre de connexions simultanées aux plus grands serveurs de production fonctionnant sous 4D ne cessant de croître, 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 exploite les 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 pris en charge 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 en utilisant QUIC, et de nombreuses applications, telles que YouTube, Gmail ou Uber, utilisent QUIC pour communiquer avec leurs serveurs.

Nous vous encourageons à essayer QUIC et à nous faire part de vos commentaires 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 le transfert de données en temps réel entre les deux parties et permet une communication plus rapide et plus efficace.

4D v20 comprend désormais 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 New object et New 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.

Avec les littéraux d’objet, vous pouvez initialiser un objet avec ses propriétés et ses valeurs entre accolades {}. Par exemple, au lieu d’utiliser la commande New object, 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 avec ses éléments entre crochets [].

Nouvelles commandes pour verrouiller le magasin de données blank

4D vous offre plusieurs moyens intégrés de 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 plusieurs journaux blank

4D v20 introduit une nouvelle fonctionnalité puissante qui peut considérablement améliorer votre productivité lors des 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 perdre du temps à effectuer des tâches manuelles de gestion de la base de données.

Pour bénéficier de cette fonctionnalité, assurez-vous simplement 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 rendre le processus de création d’applications autonomes ou client/serveur encore plus facile :

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

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

4D v20 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 est en communication avec l’extension VS Code.

Extension 4D-Analyzer blank

Cette extension a reçu beaucoup d’attention de la part de nos développeurs 4D, et nous ne pourrions en être plus heureux !

4D a apporté le support de l’éditeur de code Visual Studio Code, lui permettant de gérer le code 4D et de lui fournir des fonctionnalités standard telles que la coloration syntaxique, le passage à la définition, l’aide à la signature et la complétion de code.

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

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

La fonction distincte des classes de sélection Collection et Entity permet de récupérer une liste de valeurs uniques.

Avec 4D v20, vous pouvez également récupérer le nombre d’occurrences de chaque valeur distincte. En outre, elle permet de récupérer tous les chemins d’attributs utilisés dans un champ d’objet. Cette fonctionnalité peut être utile lorsque l’on travaille avec de grands ensembles de données et que l’on a 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 des valeurs différentes.

À 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ésentation des 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 ont affaire à 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 rationaliser leurs flux de travail de codage :

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

Passage de l’objet formulaire aux commandes Print Form et FORM LOADblank

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

Créez votre propre menu d’aide blank

Avec 4D v20, vous pouvez créer un menu d’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, à l’assistance 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.
  • La nouvelle fonction reduceRight() qui est l’équivalent optimisé de reverse().reduce()
  • La fonction flatMap() permet d’effectuer, en une seule opération, une fonction map() suivie d’une flat() – une fonction que nous avons déjà mentionnée.

Format PDF pour l’aperçu avant impression sous Windows blank

Le format PDF est devenu une alternative viable au format XPS pour l’aperçu avant impression 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 désormais la possibilité d’utiliser le format PDF pour la prévisualisation des impressions. Étant donné que presque toutes les versions actuelles de Windows ont soit XPS soit PDF préinstallés, les utilisateurs finaux ne devraient plus rencontrer de problèmes avec la prévisualisation d’impression. Cette nouvelle option offre une solution plus souple et plus efficace qui répond aux besoins des utilisateurs finaux et des administrateurs.

Retourner. Continuer. Pause. Et plus encore

Nous avons écouté et suivi vos demandes de fonctionnalités sur le forum 4D en apportant plusieurs améliorations au langage 4D !

  • À commencer par les instructions qui vous permettent de sortir d’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.
    • L’instruction continue met fin à l’exécution des instructions de l’itération courante de la boucle et poursuit l’exécution de la boucle à l’itération suivante.
  • Suivi d’une évaluation en court-circuit : 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 OU
  • Et puis 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, travailleurs, attributs calculés ORDA, fonctions ORDA, etc.) Si vous ne définissez pas de gestionnaire d’erreur local dans un nouveau processus/travailleur, 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 profiter des fonctionnalités des classes en utilisant un composant (en mode projet) pour créer et utiliser vos propres classes à partir de votre application (basée sur le mode binaire). Cette fonctionnalité incluait des conseils 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é. Désormais, 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 devez utiliser dans votre code.

Prise en charge d’entiers plus grands que integer32

Vous avez 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 gérés pour le permettre. 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 (= 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.

Prise en charge des formules dans les collections et les commandes de rappel

Afin de 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 à Structure settings -‘ General 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 installé.

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

Avec 4D v20, les développeurs n’ont plus à 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, Copier les paramètres, qui permet de passer facilement les paramètres utilisés pour une fonction ou 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

Depuis 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 élargi 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 enterable

La commande OBJECT SET ENTERABLE a été améliorée, ce qui vous permet de mieux gérer un champ qui n’est pas éditable. 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é « enterable » est modifiée (False ou True).
  • Vous pouvez également passer un entier. Ainsi, vous pouvez définir les propriétés enterable et focusable pour 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é passés 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 supporte l’encapsulation des blobs dans les objets.

Au-delà de l’aspect stockage, puisque l’objet blob est un type de référence, votre utilisation de la mémoire sera plus faible et vos performances en termes de vitesse seront grandement améliorées.

Gestion de l’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 texte sans BOM. Et sur macOS, 4D utilise LF comme caractère EOL. 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 à TEXT TO DOCUMENT et File.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 vos fichiers de 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 Goto definition… dans le menu contextuel.

Courrier électronique

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

Lorsque vous récupérez des messages électroniques à 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’expéditeur, l’objet et la date) sans télécharger l’intégralité du corps du message.

La récupération des seuls en-têtes peut s’avérer utile lorsque vous souhaitez parcourir rapidement la liste des messages de votre boîte aux lettres afin de déterminer ceux que vous souhaitez télécharger et lire dans leur intégralité.

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

IMAP : Identité de la boîte aux lettres et mots-clés du courrierblank

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

La première est la possibilité de gérer des mots-clés personnalisés 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 la prise en charge de l’ID de la boîte aux lettres dans le Transporteur IMAP. Lorsque vous travaillez avec des boîtes aux lettres IMAP, elles peuvent être renommées ou déplacées, ce qui rend le suivi difficile au fil du temps. Grâce à la prise en charge de l’ID de boîte aux lettres dans 4D v20, vous pouvez identifier une boîte aux lettres 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 aux lettres essentielles, telles que celles qui contiennent des messages archivés ou des messages provenant d’expéditeurs spécifiques.

Prise en charge native de Microsoft 365

Alors que de plus en plus de clients passent à Microsoft 365 pour leurs besoins de messagerie, 4D v20 offre 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 de commandes intégrées. Ces opérations comprennent :

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

Microsoft365 : gestion des dossiers blank

Microsoft supprime 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.

Avec les nouvelles fonctions de 4D NetKit, vous pouvez désormais gérer (créer, supprimer, renommer et obtenir des informations) en programmant vos boîtes aux lettres à 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 ou OneDrive à l’aide d’un navigateur web. Tous les services Microsoft utilisent le même Single Sign-On, 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.

En plus de permettre l’authentification unique, il sera possible de récupérer des informations sur un utilisateur authentifié, telles que l’adresse électronique, le service et le numéro de téléphone. Si l’administrateur le permet, vous pouvez récupérer des informations sur les collègues de l’utilisateur au sein de la même entreprise.

Prise en charge de Bcrypt pour les mots de passe

À partir de 4D v20, tous les mots de passe sont hachés avec l’algorithme bcrypt. Cet 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 ne devez 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 CHANGE PASSWORD ou Set user properties, 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

Pour continuer à améliorer la syntaxe et les fonctionnalités de 4D, nous avons décidé de moderniser les commandes du client HT TP 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

Accéder rapidement aux différentes fonctions d’une classe

Lesclasses 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 n’a pas envie de perdre du 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 de passer rapidement à une fonction spécifique.

Balises de commentaires

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

  • MARK
  • TODO
  • FIXME

La balise MARK vous permet de diviser votre code en sections. Vous pouvez l’écrire de trois manières différentes. Les deux autres balises 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’auto-complé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. Il est facile d’inverser deux lettres, d’oublier une majuscule, puis de passer 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à ? A partir de 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:

  • Afficher ou masquer 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 méthode, vous devez généralement :

  • accéder à l’explorateur pour remplir le formulaire dans son dossier
  • accéder à l’explorateur pour écrire la documentation de la méthode
  • consulter la documentation d’une commande sur le site en ligne de 4D
  • consulter la documentation d’une méthode d’un composant
  • accéder au code de la fonction que nous voulons utiliser dans notre méthode pour y apporter des modifications
  • de 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 dans les différents éléments d’un projet.

Afficher la documentation en ligne directement depuis 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 Goto definition… dans le menu contextuel.

Web

Débogage sur le serveur avec des sessions web évolutives

Lessessions web évol utives ont constitué une amélioration significative. Elles vous 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 avec les dernières fonctionnalités et mises à jour de sécurité. Par exemple, Microsoft Edge peut être utilisé pour afficher des PDF.

Fichiers et dossiers

Manipulations de fichiers

Lorsqu’il s’agit d’écrire et de lire, les fonctions setText et getText sont à votre disposition pour lire ou écrire l’intégralité du contenu. 4D v20 apporte des poignées de fichiers au cas où vous voudriez lire ou ajouter une ou plusieurs lignes à un document existant.

Les poignées de fichier sont des objets créés sur la base des objets « File » 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 petites que l’algorithme de compression standard zip. 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.

Boîte de liste

Hauteur automatique des lignes dans les boîtes de liste basées sur des collections

Les hauteurs de ligne automatiques étaient déjà possibles pour les boîtes de liste 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 boîtes de liste basées sur des collections et des sélections d’entités.

Dites adieu à la touche ALT

En ce qui concerne les boîtes de liste et l’action 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.

Remplissage horizontal et vertical des cellules

La puissance des listes déroulantes est étendue avec 4D v20 grâce à deux nouvelles propriétés : le padding horizontal et vertical(les marges intérieures ou l’espace entre le contenu d’un élément et sa bordure). Elles donneront à vos listes déroulantes 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 zone de liste ou pour chaque élément, comme les colonnes, les en-têtes ou les pieds de page. Une fois définies pour la zone de liste, elles seront appliquées à chaque sous-objet de la zone de liste par héritage. Mais bien sûr, chaque sous-objet peut avoir ses propres paramètres.

Le réglage de l’espacement peut se faire

  • via le mode conception à partir de la liste des propriétés sous « Coordonnées et dimensionnement ».
  • soit par programmation en utilisant la commande LISTBOX SET PROPERTY grâce à deux nouvelles constantes, lk cell horizontal padding, et lk cell vertical padding.

Développer simultanément 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, alors 4D v20 va exaucer votre vœu, 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 pour offrir les mêmes fonctionnalités qu’en mode binaire.

Test de l’application Windows SDI

Cela fait longtemps que vous ne pouvez plus fournir à vos clients des applications fusionnées en mode SDI. C’était un grand pas en avant pour l’interface utilisateur des applications Windows.

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.

Travailleurs du système : Lancez un processus externe de manière asynchrone

Une autre fonctionnalité très demandée est disponible. Parfois, vous avez besoin de lancer 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 lorsque 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 Niveau du journal de diagnostic, vous pouvez contrôler le flux de journaux dans le journal de diagnostic et le garder petit tout en enregistrant ce dont vous avez vraiment besoin.

Fichier de configuration pour Loggin

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

    • la possibilité d’interrompre instantanément la journalisation
    • et un moyen pour les équipes d’assistance d’aider rapidement leurs clients à configurer leurs journaux par le biais d’un fichier de configuration.

Interface utilisateur

Évolution des objets formulairesblank

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. « Pour les boutons, les boutons radio et les cases à cocher, nous avons ajouté de nouveaux paramètres pour le texte et l’icône.
  • 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

4D v20 a également ajouté la possibilité d’arrondir les coins 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), le CSS ou le code.

Haute résolution sur Windows : Prise en charge des écrans haute résolution

High DPI signifie High Dots Per Inch (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é des pixels peut être si é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 désormais 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, de sorte que vous pouvez 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, le choix lors du développement de votre application. 4D Developer Edition s’intègre parfaitement à l’aspect clair ou foncé de macOS.

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

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

Lorsque vous survolez des tables, 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 web utilisable par l’administrateur et le développeur à distance (en toute sécurité 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.

Visualiser les relations entre vos données

Lapremière fonctionnalité vous permet devisualiser les relations entre vos données, facilitant ainsi la navigation et la localisation des informations pertinentes au sein de votre base de données.

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

Ladeuxiè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 permet de gagner du temps et d’améliorer la 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 société 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 veulent utiliser le logiciel pour chaque société. Désormais, vous disposez d’une nouvelle clé buildApp pour faire en sorte que chaque application client fusionnée 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

Du côté du 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 client 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, car 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é quiré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 répertoire ne contient que le code compilé de votre application et est, en tant que tel, relativement petit.

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

Avec l’introduction du mode projet, il est assez facile de manipuler les composants de vos projets. Dans les dernières versions, nous avons ajouté plusieurs fonctionnalités vous permettant 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 compilée et un composant. Nous continuerons à l’enrichir pour vous permettre de gérer une application mono-utilisateur, client ou serveur.

Partager des ressources locales entre utilisateurs ON Windows Remote Desktop Services

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

Nous avons optimisé 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é XML BuildApp : /Preferences4D/BuildApp/CS/ShareLocalResourcesOnWindowsClient

Cette optimisation se traduit par 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,
  • Un gain d’espace disque puisque, là encore, les ressources locales ne sont pas dupliquées pour chaque utilisateur dans un environnement Remote Desktop Service.

ORDA

4D v20 continue d’apporter des améliorations à ORDA. Laccès aux données relationnel 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, ce qui permet 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)

En plus de 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 fournissant 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 des données auxquelles elle 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 pour les requêtes Client/Serveur et REST afin d’améliorer les performances.

Attributs calculés

Une nouvelle façon de rassembler encore plus de logique métier dans les classes et les 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 comme 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 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 liés (ce qui signifie cacher la complexité d’une base de données liée).

Désactiver le mappage par défaut de la valeur NULL vers une valeur vide

Lorsque vous créez un nouveau champ dans votre base de données, 4D vous permet de choisir ou non de faire correspondre les valeurs NULL à des valeurs vides. A partir de 4D v20, dans les nouveaux projets, 4D ne fera plus, par défaut, correspondre la valeur NULL à une donnée absente. 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 des verrous VIA RestModel mise à jour

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

  • Garder 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.

Prise en charge complète des BLOB

A partir de 4D v20, les BLOB sont entièrement supportés dans ORDA, comme tout autre type, permettant 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(). Grâce à elle, vous pouvez inspecter et 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 le besoin de création manuelle de documents et 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 les lignes reportées, pour n’en citer 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 & Text Boxes : docx Options d’importation/exportationblank

Leszones 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é améliorée dans la version 20 pour inclure l’exportation et l’importation de ces éléments depuis et vers des documents docx.

Définir des contextes de données

4D v20 ouvre le monde de l’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, associer ces données aux documents est aussi simple que d’utiliser le 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 sélections d’entités et des collections

Remplir manuellement les tables avec des données à chaque fois est une tâche laborieuse. Et c’est là que le contexte de 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 désormais possible de définir une « source de données » pour les tables 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 ces tableaux. Les tableaux seront automatiquement agrandis en fonction de la sélection, et pourront même ajouter des pages supplémentaires si nécessaire. Cela permet à l’utilisateur final de votre application de concevoir ou de modifier des modèles qui seront remplis automatiquement avec des données.

Lignes de report inférieures (sous-totaux)

Imaginez que vous ayez un grand tableau de ventes s’étendant 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. Ceci est souvent nécessaire, parfois même imposé par la loi, lors de l’édition 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 être fait soit :

  • Via les deux interfaces (barre d’outils et barre latérale). Le menu du tableau contient un nouvel élément, « Ligne de report en bas ».
  • Soit par programmation, grâce au nouvel attribut wk bottom carry over row.

Et pour définir le contenu des cellules de cette ligne de report, 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 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 fonctionnalité peut également être utilisée pour créer des rapports basés sur les relations entre les sociétés, où une liste d’employés peut être regroupée par société 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. Vous permettant de créer des documents 4D Write Pro complexes avec facilité, 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 saut de page à l’intérieur d’un paragraphe peut, bien sûr, être appliqué à des 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 simplement d’une facilité de programmation.
  • wk page break inside table permet de diviser un tableau en deux parties (ou plus), la séparation étant effectuée entre deux lignes du tableau (comme d’habitude).
  • wk saut de page à l’intérieur d’une ligne permet également de diviser un tableau, mais cette fois à l’intérieur de 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 la barre d’outils et les widgets de la barre latérale.

En-têtes de tableau

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 de changement de document

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 permet de détecter rapidement les changements à l’intérieur d’un document et d’effectuer 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 du point de vue de la mise en page et difficiles à lire pour les utilisateurs finaux.

C’est pourquoi 4D v20 permet d’afficher les formules sous la forme d’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 source de la formule sous forme de 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 URLs invalides, des formules renvoyant des images vides, des formats non supportés par la plateforme, 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 de visualisation vous permettant de rendre les images vides complètement invisibles. Cela peut se faire de 3 manières différentes :

    • La première et la plus simple consiste à utiliser la liste des propriétés, qui offre une nouvelle entrée dans le thème de l’apparence.
    • Ou via l’interface utilisateur dans laquelle un nouvel élément apparaît. Soit dans la barre d’outils ou dans la barre latérale.
    • Soit par programmation en utilisant le paramètre new wk visible empty images.

Nouvelles options d’affichage des images

A partir de 4D v20, les images en ligne ou 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é
  • Répliqué centré

Nous avons également facilité la mise en forme des images utilisées comme arrière-plan des documents, sections, 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 de 4D Write Pro. Nous avons ajouté à cette liste l’option wk de mise en évidence des formules, avec 4 valeurs possibles :

  • 0 : pas de mise en évidence des formules et des valeurs
  • 1 : mise en évidence des formules uniquement (valeur par défaut)
  • 2 : mise en évidence des valeurs uniquement
  • 3 : mise en évidence des formules et des 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).

Exportation 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 la page de votre document que 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 un ensemble 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 :
    • Widow et contrôle des orphelins
    • Éviter les sauts de page à l’intérieur
    • Garder avec le suivant
    • Hauteur de ligne
  • Dans le widget de la barre latérale, 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 de la barre d’outils, nous avons ajouté la possibilité de remplir les champs titre, auteur, sujet, société et notes.

Prise en charge du mode sombre

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

  • Barre d’outils de l’interface 4D Write Pro
  • Interface 4D Write Pro
  • Sidebar Zone de texte riche

Boîte de dialogue de paramétrage des images

Le composant d’interface de 4D Write Pro comprend désormais une nouvelle boîte de dialogue de paramétrage des images. Cette boîte de dialogue vous permet de définir facilement

  • la taille de l’image
  • le format d’affichage
  • les marges et le remplissage
  • 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 « sur double clic » sur le formulaire en utilisant la méthode du composant « WP PictureSettings ».

Cette nouvelle fonctionnalité permet également d’ajouter une image à partir d’une URL avec le widget de la barre d’outils.

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 une même page.

Il est possible d’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 tirer pleinement parti 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 hors écran tous les matins 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 dynamiques

Tableaux croisés dynamiques de 4D v20. Si vous comptez parmi vos utilisateurs des personnes travaillant dans les domaines de la vente et du marketing, cette fonction vaut la peine d’être essayée, car 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’importation/exportation

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 document VP Import et le document VP Export . 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 :

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

Gérer les sauts de page DEPUIS L’IU

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. 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 la sauvegarder dans votre base de données, puis de coller cet objet lorsque vous en avez 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 « Configuration de la page ». Cette boîte de dialogue comprend des onglets pour la page, les marges, l’en-tête/pied de page et la 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 plus encore. Cette fonctionnalité vous permet également de charger rapidement des données à partir de classes de données et de collections. Dites bonjour à la nouvelle commande VP CREATE TABLE.

Gestion des lignes et des colonnes

4D v20 apporte plusieurs nouvelles commandes vous permettant de gérer les colonnes et les lignes de vos tableaux plus efficacement – en ajoutant ou en supprimant des colonnes/rangées 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 remplir automatiquement le contenu de l’entreprise avec les informations correctes 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. En tant que tel, nous avons fourni de nombreuses avancées liées aux tableaux au cours des différentes versions. 4D v20 ajoute une nouvelle fonctionnalité liée au style de ces tableaux afin qu’ils s’intègrent parfaitement au reste de votre document.

Désormais, le site VP Set table theme permet d’appliquer par programmation l’un des 60 styles de tableau 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 tableau.

Les versions R en profondeur