Quoi de neuf dans 4D v19

Ce document est une compilation de toutes les nouvelles fonctionnalités disponibles dans 4D v19. Notez que chaque fonctionnalité est associée à un article de blog pour vous guider à travers des exemples concrets. Vous pouvez accéder à ces articles de blog en cliquant sur le titre de la fonctionnalité.

De plus, les sections portant l’étiquette blank sont liées à toutes les nouvelles fonctionnalités publiées entre 4D v18 R6 et 4D v19.

Ce document est divisé en sept sections :

Support natif du Silicon

Suite à l’annonce révolutionnaire d’Apple(les nouveaux Macs Silicon), nous avons publié 4D v19 six mois plus tôt que prévu afin de vous fournir une version native Silicon de 4D dès que possible. En plus des remarquables améliorations de performance, voici les nouveautés :

Comme les Silicon Macs n’utilisent plus une architecture de processeur x86 comme les Macs et PCs Intel, ils ne peuvent pas exécuter le même code compilé. Nous avons donc dû enrichir notre compilateur d’une compilation spécifique au Silicon (disponible uniquement en mode projet). Vous pourrez désormais compiler vos applications pour les architectures Intel (Windows et Intel Mac), l’architecture Silicon (Silicon Mac), ou les deux architectures.

Plugins

Les plugins seront également légèrement impactés. Pour qu’un plugin fonctionne à la fois sur les Macs Intel et Silicon, vous devrez le compiler en tant que binaire universel. Et si vous utilisez des plugins tiers, veillez à télécharger des versions binaires universelles ou natives Silicon.

Besoin de plus de temps ?

Bien sûr, 4D v19 continuera à fonctionner avec Rosetta. Si vous avez besoin de temps pour faire fonctionner votre application en mode natif, il est toujours possible de les exécuter sur Rosetta.

Caractéristiques du mode projet

Lesprojets sont un type d’architecture qui représente un grand pas en avant pour les applications 4D. Ils permettent de tirer parti des outils de contrôle des sources, de la programmation collaborative, du partage du code, de la modularité et de bien d’autres choses encore. Au moment de la rédaction de ce manuel, grâce à l’architecture de projet et à la possibilité de partager le code source des applications de projet via un système de contrôle de source, nous avons publié plus de 45 dépôts sur GitHub. Cela comprend des IDH, des composants et des applications d’exemple complètes.

4D v19 apporte tout un ensemble de nouvelles fonctionnalités qui amélioreront considérablement votre expérience de programmation.

Classes

Grâce au mode projet, nous avons introduit les classes. Une classe vous permet de définir le comportement d’un objet par le biais de propriétés et de fonctions. Une fois qu’une classe est définie, vous pouvez instancier des objets de cette classe n’importe où dans votre code. Chaque objet est une instance de sa classe. Les classes peuvent étendre d’autres classes, puis hériter de leurs fonctions.

Deux types de classes sont disponibles dans 4D : les classes 4D intégrées (retournées par la commande 4D ) et les classes utilisateur (retournées par la commande cs ).

Pour créer un objet en tant qu’instance d’une classe, utilisez la commande cs avec la fonction membre new. Un autre terme important à connaître est le constructeur. Le constructeur est utilisé pour créer et instancier un objet avec des attributs par défaut. Il est appelé automatiquement lorsqu’un objet est initialisé. La création d’une classe se fait à partir du menu « New » de la barre d’outils ou de la boîte de dialogue « Explorer ». Un éditeur de classe sera affiché où vous pourrez créer le constructeur et les fonctions de la classe. Lisez la documentation

Héritage des classes

L’héritage permet à une classe d’hériter du comportement d’une autre classe (la classe mère ). Pour dériver une classe enfant d’une classe parent, utilisez le mot-clé Class extends. Cela appelle automatiquement le constructeur de la classe parent (si vous n’avez pas défini un constructeur spécifique pour la classe enfant ). Vous pouvez également utiliser la commande Super pour appeler le constructeur de la classe parent. Lisez la documentation

Nommer les paramètres des méthodes et des fonctions

Plus besoin de passer par une variable intermédiaire, vous pouvez désormais nommer vos paramètres et résultats lorsque vous déclarez une méthode :

  • méthode de projet,
  • un trigger,
  • méthode de base de données,
  • méthode de formulaire,
  • un constructeur de classe,
  • fonction de classe. Lisez la documentation

Aperçu du CSS dans l’éditeur de formulaire

Cette fonctionnalité a été la demande de fonctionnalité la plus votée et la plus rapide à devenir une demande de fonctionnalité la plus votée dans notre forum de demandes de fonctionnalités. Elle vous permet de prévisualiser le rendu CSS final dans l’éditeur de formulaire. Une nouvelle icône dans la barre d’outils vous permet de visualiser votre formulaire avec ou sans rendu CSS, et même de voir à quoi il ressemblerait avec un rendu CSS spécifique sur Mac ou Windows.

En ce qui concerne le remplacement des propriétés en mode CSS, un nouveau type de bouclier (similaire aux boucliers pour la méthode d’objet ou l’ordre d’entrée) est affiché dans l’éditeur de formulaire. Il est désormais facile de voir quels objets sont affectés par le style CSS. Lisez la documentation

Développement du code serveur

Le développement et le débogage du code serveur dans les applications du projet deviennent plus faciles. En mode de développement en équipe, il est courant que plusieurs développeurs fassent du développement en mode mono-utilisateur et commettent leurs changements dans un système de contrôle de version. La commande RELOAD PROJECT, en combinaison avec des commandes comme git pull, permet de mettre à jour un serveur en cours d’exécution avec du nouveau code sans avoir besoin de le redémarrer pour les tests, voire pour la production.

Lorsqu’un client 4D Developer se connecte à un serveur 4D sur le même ordinateur, le fichier .4DZ n’est pas transféré du serveur au client. Celui-ci gère les fichiers du projet (méthodes, formulaires, ressources, etc.) comme s’il s’agissait d’un client 4D mono-utilisateur. Les fichiers du projet sont partagés par 4D Server et 4D Remote. Ainsi, vous pouvez modifier votre code et le tester à la volée.

Si vous souhaitez que le serveur recharge les fichiers modifiés, passez en mode application depuis l’environnement de développement. Déplacez le 4D Server au premier plan ou sélectionnez l’élément de menu « File / Save all » dans le 4D Remote (ou utilisez la nouvelle commande RELOAD PROJECT ).

Rappelez-vous que l’exécution d’une méthode sur le côté client effectue automatiquement une action « Save all » , et par conséquent, recharge les fichiers modifiés sur le côté serveur. Lisez la documentation

Macros

Les macros sont désormais disponibles dans l’éditeur de formulaire. Avec une macro de formulaire, vous pouvez :

  • Modifier, supprimer ou ajouter une propriété à un ou plusieurs objets de formulaire, par exemple changer la couleur ou la largeur d’un bouton.
  • ajouter ou supprimer un ou plusieurs objets de formulaire (y compris leur méthode d’objet associée)
  • sélectionner ou désélectionner des objets de formulaire dans l’éditeur
  • Afficher une boîte de dialogue modale pour saisir un paramètre à la volée
  • Calculer la position idéale des objets du formulaire et les déplacer
  • Créer une classe CSS à partir d’un objet de formulaire pour l’utiliser comme modèle.
  • Vérifier que les chemins des images dans le formulaire sont valides
  • Ouvrez les fichiers CSS dans votre éditeur CSS au lieu de chercher les fichiers sur votre disque.
  • Vérifiez que les références XLIFF ont leur correspondance dans les fichiers XLIFF.
  • et bien d’autres choses encore !

Les macros de formulaire sont disponibles à partir du menu contextuel. Les macros de la base de données hôte sont affichées en premier, suivies des macros des composants. Pour exécuter une macro, il suffit de cliquer sur l’élément de menu. Pour créer des macros de formulaire, déclarez-les dans un fichier formMacros.json au premier niveau du dossier Sources de votre projet. N’oubliez pas de consulter les exemples de macros que nous avons mis à disposition sur GitHub. Vous pouvez les intégrer dans vos applications en tant que composants pour les tester. Lisez la documentation

Documentation des méthodes

Vous pouvez écrire votre propre documentation pour les méthodes de base de données, de déclencheur, de projet et de formulaire de table. La documentation est enregistrée dans un fichier Markdown portant le même nom que la méthode ou le formulaire dans un dossier de documentation. Markdown est un format standard pour la documentation et permet des styles de formatage améliorés. Le format peut être affiché dans 4D Explorer, dans GitHub ou dans d’autres outils. La documentation peut contenir la description d’un élément, ainsi que toute information nécessaire pour comprendre le fonctionnement de l’élément dans la base de données. Pour créer ou modifier le fichier de documentation dans une base de données de projet, à partir de l’explorateur, cliquez sur le bouton « Créer » ou sélectionnez l’élément de menu « Modifier la documentation ». 4D crée le fichier correspondant et l’ouvre dans votre éditeur par défaut avec un modèle prédéfini. Lisez la documentation

4D propose trois thèmes de polices automatiques qui respectent les directives de chaque plateforme. La version 19 de 4D vous permet de modifier la taille de ces thèmes automatiques et de mieux contrôler l’affichage de votre texte. Lire la documentation

4D pour iOS

Les fonctionnalités de 4D pour iOS ont été étendues avec 4D v19 :

Travail hors ligne blank

Vous avez désormais la possibilité de travailler hors ligne et d’interagir avec votre serveur 4D de manière très souple.

Lorsqu’aucun réseau n’est disponible, vos tâches sont placées dans une file d’attente, en attendant que le serveur soit disponible. Cela vous garantit une méthode de travail très fluide et efficace, avec des applications qui fonctionnent sans aucun délai. Lisez la documentation

Lien profond

Le lien profond vous permet de partager une URL, par exemple dans un e-mail. En cliquant sur l’URL, vous ouvrez directement un enregistrement spécifique dans une application 4D pour iOS. En combinaison avec les notifications push, vous pouvez informer les vendeurs d’un nouveau devis ou les agents d’assurance d’un nouveau cas. Un simple clic ouvre directement l’application et affiche l’enregistrement approprié. Lire la documentation

Notifications push

Lesnotifications push sont un moyen idéal de maintenir les utilisateurs de votre application iOS engagés et informés.

Vous pouvez configurer les notifications push pour déclencher la synchronisation sur les appareils iOS. Cela permet à l’interface utilisateur d’être mise à jour instantanément, fournissant aux utilisateurs des données en temps réel qu’ils peuvent vérifier dès la réception d’une notification. Lire la documentation

Nouveaux formats de paramètres : Signature et code-barres

Pour rendre vos applications plus interactives, de nouveaux formats de paramètres ont été ajoutés à 4D pour iOS :

  • Format signature: signez du bout du doigt et envoyez les signatures directement de votre application au serveur. Cela peut être utile pour recueillir les signatures des clients après la livraison d’un colis, par exemple.
  • Format code-barres: associez n’importe quelle valeur à un code-barres (EAN13, EAN8, QR Code, etc.) pour l’extraire en le scannant simplement depuis un formulaire d’action. C’est un moyen très pratique d’ajouter, par exemple, une référence à un article en scannant un QR Code directement depuis votre application. Lire la documentation

Vous pouvez accéder et publier des relations Un à plusieurs à partir de vos relations Un à plusieurs dans la section Structure. En bref, cela signifie que vous pouvez afficher des relations Plusieurs à Plusieurs, ce qui vous permet de fournir des applications iOS avec une meilleure ergonomie que jamais auparavant. Cela s’accompagne de fonctionnalités supplémentaires telles que l’ajout d’interactions à un champ en y déposant une relation et l’affichage du numéro d’enregistrement correspondant en cliquant sur les relations Un à plusieurs. Lire la documentation

Prise en charge de la lecture des codes-barres

La recherche est grandement améliorée grâce à l’ajout de la prise en charge de la lecture des codes-barres. Cela permet d’avoir des applications adaptées aux situations de terrain (par exemple, pour les besoins d’inventaire d’un entrepôt).

Plus techniquement, cette fonctionnalité permet :

  • De filtrer un formulaire de liste en fonction de la valeur du code. Si un enregistrement correspond à la valeur du code-barres, le formulaire de détail de l’enregistrement s’ouvre automatiquement.
  • Lorsqu’elle est combinée à un lien profond, l’affichage de formulaires de liste et de détail spécifiques par simple lecture d’un code-barres dont les valeurs sont des schémas URL ou des liens universels. Lire la documentation

Se connecter avec QRCode blank

4D pour iOS offre un nouveau moyen moderne de se connecter. Le modèle de formulaire de connexion SignInWithQRCode permet aux utilisateurs de l’application de se connecter en scannant le QRCode, ou d’accéder directement à l’application s’ils ont déjà été authentifiés. Lire la documentation

Synchronisation des données optimisée

Le processus de synchronisation des données de 4D pour iOS a été optimisé, améliorant la vitesse de synchronisation des données jusqu’à 25 fois. Lire la documentation

Authentification des e-mails

4D pour iOS vous permet de déterminer l’authenticité et la légitimité de la personne qui tente de se connecter à votre application. Le processus met à jour l’état de la session d’un utilisateur pour lui donner accès à l’application :

  1. Dans le formulaire de connexion, lorsqu’un utilisateur saisit une adresse électronique et clique sur le bouton Connexion , l’état de la session est mis à jour sur « en attente » et un courriel contenant un lien de validation est envoyé à cette adresse électronique.
  2. Lorsque l’utilisateur clique sur le lien de validation, l’état de la session passe de « en attente » à « accepté ».
  3. L’utilisateur peut rouvrir l’application. Comme l’état de la session est maintenant « accepté », l’accès est accordé.

Le composant qui gère et facilite le processus est disponible, de sorte que vous pouvez adapter le processus d’authentification à vos propres besoins. Lisez la documentation

Créer des modèles de formulaires détaillés

Les formulaires détaillés étant déroulables, vous pouvez déposer autant de champs que vous le souhaitez sur vos modèles de formulaires détaillés. Il existe plusieurs façons d’ajouter des champs à vos formulaires détaillés :

  • Sélectionnez un modèle vierge et déposez-y tous vos champs.
  • Faites glisser et déposez des champs n’importe où dans la vue pour les ajouter et les afficher immédiatement après le dernier champ ajouté, ou déposez-les entre les champs.
  • Double-cliquez sur un champ pour l’ajouter à la fin de la liste.
  • Cliquez avec le bouton droit de la souris sur l’un des champs disponibles dans le tableau des champs situé à gauche. Vous obtiendrez un menu qui vous permettra d’ajouter les champs manquants à vos formulaires détaillés. Lire la documentation

Modèles prêts à l’emploi

Plus de 40 modèles prêts à l’emploi sont disponibles dans l’éditeur de projet. La galerie est basée sur une liste dynamique de modèles à jour disponibles sur GitHub. Pour utiliser un modèle, une icône « Plus » est disponible pour les formulaires de liste et de détail. Cliquez dessus pour afficher la liste complète des modèles de la section Formulaires. Sélectionnez le modèle et 4D for iOS se chargera de l’installation. Vous pouvez ensuite l’adapter à vos besoins. Lire la documentation

ORDA

4D v19 continue d’apporter des améliorations à ORDA. Outre les diverses fonctionnalités disponibles (voir ci-dessous), ORDA permet de créer des fonctions de classe de haut niveau au-dessus du modèle de données. Cela vous permet d’écrire du code orienté métier pour masquer la complexité, réduire les erreurs et accélérer le processus de développement. De plus, vous pouvez exposer votre projet comme une API avec un serveur REST.

Classes ORDA pour gérer le modèle de données

La structure d’ORDA (datastore, dataclass, entité, sélection d’entité) est composée d’objets fortement typés liés à des classes ORDA spécifiques. Cela signifie que vous pouvez écrire des fonctions qui masquent la complexité de l’implémentation physique de vos données.

4D crée automatiquement les éléments suivants :

  • Classe d’entité: Pour l’implémentation des fonctions liées à une entité (par exemple pour calculer les frais de port pour le devis en cours. Code attribué à un enregistrement donné).
  • Classe EntitySelection: Pour implémenter des fonctions liées à une sélection d’entités (par exemple pour effectuer une statistique sur les enregistrements sélectionnés. Code attribué à une sélection)
  • Classe DataClass: Pour implémenter des fonctions liées à la classe de données (pour exécuter du code lié à une table, mais indépendant d’un enregistrement ou d’une sélection spécifique. Par exemple pour créer un nouvel enregistrement sur la base de paramètres fournis)
  • DataStore: Pour implémenter des fonctions liées au datastore (pour exécuter du code non lié à une table ou un enregistrement, similaire à une méthode de projet générique). Lire la documentation

Classes du modèle de données ORDA et REST

Vous pouvez appeler les fonctions des classes définies pour le modèle de données ORDA par le biais de requêtes REST afin de bénéficier de l’API exposée du projet d’application 4D ciblé. Exposez votre logique métier avec une API contrôlée (via vos classes) pour d’autres outils, tels que des frameworks web comme Angular ou React. Lire la documentation

Portée et contexte d’exécution des fonctions

Par défaut, en mode client/serveur, les fonctions des classes ORDA sont exécutées sur le serveur. Avec le nouveau mot-clé local, vous pouvez choisir d’exécuter certaines fonctions sur le client. Vous pouvez également choisir quelles fonctions publier (ou non) comme API pour les clients REST avec le nouveau mot-clé exposed. Lire la documentation

Bouclage avec une nouvelle balise 4D blank

Une nouvelle balise 4D est désormais disponible : la balise 4DEACH. Elle peut être utilisée comme balise 4D dans les pages SHTML ainsi qu’avec la commande PROCESS 4D TAGS, ce qui simplifie l’utilisation d’ORDA ou d’objets dans PROCESS 4D TAGS ou SHTML. Lire la documentation

Mise à jour du modèle

Lorsque vous travaillez avec 4D en mode autonome, vous n’avez plus besoin de redémarrer votre base de données afin de disposer d’un datastore à jour lors de la mise à jour de la structure.

Si vous travaillez en mode client/serveur, cela fonctionne parfaitement pour le code exécuté sur le serveur 4D. Pour les clients distants, il suffit de redémarrer le client nécessitant la mise à jour de la structure. Lire la documentation

Sélections d’entités partageables

Il peut arriver que vous souhaitiez partager une sélection d’entités avec un autre processus ou la rendre accessible à tous les processus. Par exemple, imaginez que vous exécutez une requête complexe pour trouver toutes les factures en retard, permettre aux utilisateurs finaux d’en sélectionner certaines (ou toutes) et envoyer un rappel de paiement par courrier électronique. Il est préférable d’envoyer des e-mails dans un autre processus pour éviter de bloquer l’utilisateur.

Au lieu de construire une liste de clés primaires à transmettre à l’autre processus, une sélection d’entités partagées peut être directement transmise à un autre processus. Les sélections d’entités partagées peuvent même être attachées à l’objet Storage pour être partagées avec tous les processus.

En bref, une sélection d’entités peut être partageable ou non partageable :

  • Une sélection d’entités partageable peut être stockée dans un objet partagé ou une collection partagée et peut être partagée entre plusieurs processus ou travailleurs. Elle ne permet pas l’ajout de nouvelles entités. Essayer d’ajouter une entité à une sélection d’entités partageables déclenchera une erreur.
  • Une sélection d’entités non partageables ne peut pas être partagée entre des processus, ni être stockée dans un objet ou une collection partagée. Si vous essayez de stocker une sélection d’entités non partageables dans un objet ou une collection partagé(e), une erreur se produira. Toutefois, une sélection d’entités non partageables accepte l’ajout de nouvelles entités. Lire la documentation

Nouvelles méthodes de sélection d’entités

De nouvelles méthodes membres sont à votre disposition :

  • extract(): pour extraire les données d’une sélection d’entités. Cela vous permet de construire une collection entièrement personnalisée avec les données de votre sélection d’entités. Vous pouvez spécifier les attributs de la classe de données que vous souhaitez extraire et leurs noms dans la collection résultante.
  • refresh(): invalide les données de sélection d’entités dans le cache ORDA. Elle déclenche une mise à jour du serveur la prochaine fois que vous utilisez les données. Par défaut, le cache ORDA expire après 30 secondes, utilisez donc cette méthode membre si vous avez besoin de données actualisées immédiatement. Lire la documentation

Langage 4D et autres fonctionnalités de programmation

Prise en charge du mode sombre sur macOS blank

4D a ajouté le support du Dark Mode, qui s’applique automatiquement si le Dark Mode est activé au niveau de macOS. Ce n’est qu’un début et d’autres fonctionnalités seront disponibles dans les prochaines versions, comme la prise en charge de tous les composants (par exemple, le widget 4D Write Pro) et le mode Design. Lire la documentation

Plusieurs thèmes pour l’éditeur de code blank

4D vous propose des thèmes de base que vous pouvez enrichir et adapter à votre goût :

  • « thème clair par défaut » (basé sur l’éditeur de couleurs classique)
  • « thème sombre par défaut » (nouvelle couleur)

Si vous préférez les couleurs du thème de votre collègue ou si vous trouvez un thème plus à votre goût sur GitHub par exemple, vous pouvez les importer en ajoutant le fichier JSON du thème dans :

  • « <diskName>/Users/<userName>/Application Support/4D/4DEditorTheme » sur macOS.
  • « <diskName>:\Users\userName>\AppData\Roaming\4D\4DEditorTheme » sur Windows. Lisez la documentation
Lancer une compilation par programmation blank

Dans les systèmes d’intégration continue, chaque fois que du code est soumis, ou toutes les heures, une compilation du code source est automatiquement lancée. Cette approche vous permet de vérifier les fusions sur le serveur de gestion du code. A partir de 4D v19, la nouvelle commande Compile Project permet de lancer la compilation du code, ce qui permet de mettre en place ce type de système. Lisez la documentation

Gérez les informations de votre application blank

Pour construire votre application, vous utilisez la commande BUILD APPLICATION avec un ensemble de clés XML qui vous permettent de configurer l’application construite. Après le processus de construction, il est possible d’ajouter des informations telles que la société, le copyright ou la version de l’application. À partir de 4D v19, vous pouvez les lire, les ajouter ou les modifier sur les plateformes Windows ou macOS sans avoir besoin de maîtriser le langage XML et la structure du fichier info.plist.

Pour cela, nous avons ajouté deux nouvelles fonctions à la classe File pour permettre la lecture et l’écriture des informations de l’application :

  • Pour ajouter les informations à un fichier .exe (Windows) ou .plist (macOS), vous pouvez passer un objet avec les attributs que vous souhaitez définir à la fonction setAppInfo.
  • Pour lire les informations d’un fichier .exe ou .plist, il suffit d’utiliser getAppInfo, et vous obtenez tous les attributs dans un seul objet. Lire la documentation

Simplifier la création du client d’archivage 4D blank

À partir de macOS Big Sur, les applications non signées ne peuvent pas être exécutées. Dans le passé, nous avons publié une solution de contournement pour construire des applications client-serveur s’exécutant sur un serveur Windows et acceptant les connexions des clients Mac. Avec la sortie de 4D v19, nous avons mis à jour la création d’applications dans 4D pour gérer ce scénario.

Évolution du format des journaux 4D blank

Nous avons récemment revu les formats de nos journaux afin d’en améliorer la lisibilité et la conformité à l’analyse automatisée. Nous avons apporté ces améliorations en réponse à des situations réelles que nous avons vécues, en abordant directement les problèmes qui limitaient notre capacité à utiliser les logs 4D. Lisez la documentation.

Utilisation de collections et de listes dans les objets de formulaires blank

À partir de 4D v19, vous pouvez utiliser des collections pour définir le contenu de certains objets d’interface, notamment en utilisant la fonction Form. Ceci est très utile pour la gestion des interfaces génériques. Nous avons également apporté des améliorations à l’utilisation des listes.

L’utilisation des listes a été améliorée :
Listes hiérarchiques
Contrôles d’onglet (premier cas d’utilisation)

Les collections peuvent désormais être utilisées comme références avec les objets suivants :
– Listes déroulantes (également appelées « listes contextuelles »)
Boîtes combo
– Contrôles d’onglet (deuxième cas d’utilisation). Lire la documentation

Nouvelle syntaxe de déclaration

Une nouvelle syntaxe pour déclarer vos variables est maintenant disponible. Elle utilise le mot-clé var, le nom de la variable et son type. Cette nouvelle syntaxe permet d’améliorer considérablement l’autocomplétion lors de la déclaration de vos variables. Vous pouvez déclarer des variables en utilisant à la fois la syntaxe classique et la nouvelle syntaxe dans la même base de données. Lire la documentation

Affichage du prototype et courte description

Pour simplifier et faciliter l’écriture du code dans l’éditeur, le prototype d’une fonction et une courte description sont affichés dans l’éditeur de code.

La liste de suggestions affiche la complétion de code intelligente (avec une courte description) et le prototype afin que vous puissiez écrire du code plus rapidement et plus correctement. Et pendant que vous écrivez votre fonction, 4D affiche le prototype de la fonction et une brève description de la fonction. Il met également en évidence le paramètre que vous êtes en train de compléter. Lisez la documentation

Emails

Prise en charge d’OAuth 2.0

OAuth 2.0 est une norme d’authentification et d’autorisation qui protège les données des utilisateurs en leur donnant accès aux données sans révéler leur identité ou leurs informations d’identification. Dernièrement, les serveurs de messagerie ont commencé à adopter cette norme pour renforcer la sécurité. Office365 et Gmail recommandent d’utiliser OAuth 2.0 pour traiter les e-mails.

À partir de la version 19 de 4D, nous proposons un moyen de configurer OAuth 2.0. Les transporteurs IMAP, SMTP et POP3 prennent désormais en charge de manière native le protocole OAuth 2.0. Lire la documentation

Gérer les drapeaux IMAP

Le protocole IMAP vous permet d’associer une liste de drapeaux à un message afin de gérer des informations supplémentaires. Nous avons ajouté un ensemble de fonctions à l’objet transporteur IMAP pour ajouter ou supprimer les drapeaux IMAP.

Avec le protocole IMAP, vous pouvez gérer cinq drapeaux :

  • \Seen : Le message a été lu.
  • \Answered : Le message a été répondu.
  • \Flagged : Le message est marqué comme « marqué » pour une attention urgente/spéciale.
  • \Deleted (Supprimé) : Le message est marqué comme « à supprimer ». La suppression prend effet lorsque la fonction expunge() est appelée, lorsque vous changez de boîte aux lettres ou lorsque vous fermez la connexion. Cet indicateur est déjà ajouté par la fonction delete( )
  • \Draft : Le message n’a pas terminé sa composition (marqué comme brouillon). Lire la documentation

Créer, supprimer et renommer des boîtes aux lettres avec IMAP blank

Des fonctions sont disponibles pour vous aider à gérer vos boîtes aux lettres par programmation. Cela inclut la création, le renommage et la suppression de boîtes aux lettres. Une boîte aux lettres est affichée comme un dossier dans les clients de messagerie tels que Microsoft Outlook ou Apple Mail. Lire la documentation

Enregistrer les e-mails dans une boîte aux lettres spécifique

Lorsque vous envoyez un courriel à partir de 4D, si vos clients s’attendent à en recevoir une copie dans la boîte aux lettres « Envoyé » affichée par Outlook ou Apple Mail, vous pouvez en sauvegarder une copie après l’avoir envoyé :

  1. Créez deux transporteurs : un transporteur SMTP pour envoyer l’email à votre client, et un transporteur IMAP pour télécharger votre email sur votre serveur de messagerie.
  2. Après avoir envoyé votre courriel avec SMTP, utilisez la fonction append() du transporteur IMAP. Lisez la documentation

Recherche et téléchargement d’e-mails

La méthode searchMails permet de récupérer une liste de messages basée sur des critères tels que tous les e-mails non lus ou tous les e-mails d’une personne spécifique au cours des 4 dernières semaines. La commande renvoie une collection d’identifiants de messages, qui peuvent être utilisés directement par la nouvelle méthode getMails (pour les télécharger, par exemple). Lire la documentation

Copier, déplacer et supprimer des e-mails

Trois nouvelles fonctions ont été ajoutées au transporteur IMAP : copy(), move(), et delete(). Lire la documentation

Recevoir des e-mails avec POP3

Vous pouvez télécharger localement vos emails et les supprimer de votre serveur de messagerie via POP3 grâce à la nouvelle commande POP3 New transporter. Le Post Office Protocol (POP) est un protocole standard de l’internet utilisé pour récupérer des emails depuis un serveur de messagerie. Cette norme est utile pour des actions telles que la connexion à un serveur POP3, la récupération des messages pour les traiter automatiquement (pour les stocker dans votre base de données locale), et leur suppression du serveur. En outre, plusieurs méthodes ont été ajoutées pour améliorer la gestion des e-mails :

  • getMailInfoList(): Renvoie des informations sur tous les messages de votre boîte aux lettres.
  • getMailInfo() : Renvoie des informations sur un seul message.
  • getMail(): Cette fonction vous permet de télécharger des messages spécifiques en passant le numéro du message retourné par getMailInfoList() comme paramètre.
  • delete(): Signale les messages spécifiés pour qu’ils soient supprimés lors de la fermeture de la session.
  • getBoxInfo(): Retourne le nombre d’emails dans votre boîte aux lettres et la taille de la boîte aux lettres. Lire la documentation

Recevoir des e-mails avec IMAP

Comme pour SMTP et POP3, la nouvelle commande IMAP New transporter gère le protocole IMAP. Nous avons ajouté des commandes qui permettent de choisir une boîte aux lettres et de télécharger un courriel. Lire la documentation

Télécharger des emails au format MIME

4D v19 fournit une commande qui vous permet de stocker les emails dans leur format original, non converti, reçu. En utilisant la méthode POP3_transporter.getMIMEAsBlob( ), vous pouvez obtenir un BLOB contenant le contenu MIME d’un message spécifique, qui peut être enregistré dans votre base de données ou ailleurs. Lire la documentation

Cryptez vos propres données avec l’algorithme 4D blank

4D vous offre un moyen simple, mais puissant, de chiffrer vos données. Désormais, il vous permet également d’utiliser le même algorithme que celui utilisé pour le cryptage des données (AES-256) pour vos propres besoins. Vous pouvez donc désormais crypter et décrypter toutes les informations que vous souhaitez grâce à un ensemble de nouvelles commandes : Encrypt data BLOB et Decrypt data BLOB. Lire la documentation

Nouvelle classe CryptoKey

La nouvelle classe CryptoKey fournit un ensemble de méthodes permettant d’effectuer des opérations cryptographiques courantes (telles que la signature et la vérification, le cryptage et le décryptage). Elle permet d’assurer :

  • la confidentialité (protection des données contre les accès non autorisés)
  • l’intégrité (garantir que les données sont complètes et correctes)
  • l’authenticité (valider l’authenticité d’un message ou d’un expéditeur/destinataire). Lire la documentation

Web

Sessions Web évolutives

Le serveur Web 4D prend désormais en charge les sessions Web évolutives, un nouveau type de session Web qui améliorera considérablement les performances de vos applications Web.

Les sessions web évolutives peuvent gérer plusieurs processus en mode préemptif. Cela signifie qu’elles peuvent traiter plusieurs demandes de l’agent utilisateur en même temps et qu’elles peuvent également partager des données entre ces processus. Lire la documentation

Attributs SameSite et Secure pour les cookies blank

Les cookies ont évolué au fil des ans, mais ils ont laissé quelques problèmes en suspens. Pour gérer ces problèmes et permettre un modèle sécurisé par défaut pour les cookies, les navigateurs (notamment Safari, Chrome, Firefox et Edge) modifient leur comportement concernant les attributs SameSite et Secure. Pour cette raison, 4D v19 apporte quelques améliorations. Lire la documentation

Prise en charge du protocole CORS (Cross-origin resource sharing)

Le protocole CORS empêche une page Web d’envoyer des requêtes à des domaines autres que le sien. Cependant, si vous avez besoin de permettre à d’autres sites d’effectuer des requêtes HTTP sur votre serveur afin d’obtenir ou d’envoyer des données, c’est désormais possible via :

  • la programmation : grâce aux commandes WEB SET OPTION et WEB Server . Elles prennent en compte les paramètres du domaine pour permettre des actions spécifiques (GET, POST, HEAD, PUT).
  • le paramétrage de la base de données : grâce aux options disponibles dans la fenêtre Paramètres > Web > Options (II). Lire la documentation

Data Explorer (aperçu)

4D v19 offre une version preview de 4D Data Explorer. Les développeurs et administrateurs 4D peuvent désormais explorer facilement les données de leurs applications dans un navigateur web sans avoir besoin d’une licence Web Server. Regardez cette vidéo pour voir le produit en action.

Dossier de cache 4D personnalisé pour un serveur 4D fusionné

Si votre machine héberge une application serveur fusionnée construite avec différentes versions de 4D, vous pouvez rencontrer des problèmes dus au dossier de structure 4D partagé. Pour éviter de partager ce dossier système entre les applications de serveur fusionné construites avec différentes versions de 4D, vous pouvez maintenant définir le nom du dossier pendant le processus de l’application de construction avec la nouvelle clé buildApp pour définir votre propre dossier de structure. Lire la documentation

Dossier de cache 4D personnalisé pour les clients 4D fusionnés

La connexion de votre application distante à plusieurs serveurs peut parfois entraîner l’obtention d’un grand dossier de ressources locales dans le système, ce qui peut consommer beaucoup de temps, de volume et de bande passante. La nouvelle clé buildApp permet de partager le même dossier de ressources locales entre tous les serveurs identiques. Lire la documentation

Intégration améliorée des journaux

Lorsque vous exécutez un serveur 4D en production, tout doit être entièrement automatique et fonctionner sans l’intervention d’un administrateur. Ceci est particulièrement important avec la mise à jour automatique et lors du fonctionnement en mode Headless. Après une coupure de courant ou un crash, des erreurs mineures dans le journal peuvent empêcher un serveur 4D de redémarrer automatiquement. Une nouvelle option permet désormais de supprimer les messages d’erreur non critiques (tout en les signalant dans un journal), ce qui réduit les temps d’arrêt du système. Lire la documentation

Accorder dynamiquement des autorisations aux utilisateurs

Après la possibilité d’utiliser votre propre système de gestion des utilisateurs finaux et la commande SET USER ALIAS, nous avons ajouté la possibilité de gérer les autorisations des utilisateurs finaux. La nouvelle commande SET GROUP ACCESS vous permet de définir dynamiquement les appartenances aux groupes. Lire la documentation

Stocker les alias d’utilisateurs dans le journal

Le comportement de la commande SET USER ALIAS a été étendu dans 4D v19 pour vous permettre de savoir qui a fait quoi. Désormais, lorsqu’un alias est défini, il est également enregistré dans le journal. Cela vous permet de retrouver le bon utilisateur, même si plusieurs utilisateurs partagent le même ordinateur et/ou le même compte système. Le nom de l’utilisateur est affiché dans :

  • les onglets Analyse de l’activité et Rollback du MSC
  • la boîte de dialogue affichée avec la commande CHECK LOG FILE
  • le fichier JSON généré par LOG FILE TO JSON Lire la documentation

Surveiller les opérations lentes

Pour découvrir quelles opérations ralentissent un serveur, vous pouvez utiliser la nouvelle commande START MONITORING ACTIVITY . Elle enregistre en mémoire les opérations dépassant une durée spécifiée.

Sur la base des spécifications définies par cette commande, vous pouvez également obtenir toutes les activités enregistrées avec la commande Get Monitored Activity(). Lorsque vous décidez d’arrêter d’enregistrer l’activité de votre application 4D ou de vider la liste des activités, appelez la commande STOP MONITORING ACTIVITY. Lire la documentation

Boîte de liste

Gestion des clics dans les cellules éditées

L’événement on clicked

est déclenché, qu’une cellule soit en cours de modification ou non, ce qui vous permet de mieux contrôler et d’améliorer l’interface. Cela peut être utile si vous souhaitez afficher les valeurs possibles pour une cellule lorsqu’elle est en cours d’édition, en utilisant un menu contextuel par exemple. Une fois la ligne sélectionnée, vous pouvez proposer un choix de couleur pour cette ligne ou cette cellule particulière.

Pour assurer la compatibilité, si vous avez déjà du code qui s’exécute pendant l’événement « on clicked », vous pouvez vouloir arrêter l’exécution de ce code lorsqu’un clic se produit dans une cellule éditée. Dans ce cas, il suffit de tester au préalable l’état de la cellule avec la fonction is editing text. Lisez la documentation

Colonnes de temps et calculs de pied de page blank

Si les nouvelles boîtes de liste utilisant des collections ou des sélections d’entités offrent plus de possibilités, elles ne permettaient pas l’affichage du temps et les calculs automatiques dans le pied de page, contrairement aux boîtes de liste affichant des tableaux ou des enregistrements.

Désormais, tous les types de boîtes de liste peuvent afficher l’heure dans leurs colonnes et les calculs dans le pied de page. Lire la documentation

Amélioration de l’anticipation des types

Normalement, une boîte de liste ne peut recevoir des événements de frappe qu’en mode édition. Cela empêchait le filtrage automatique des listes ou la sélection des entrées lorsqu’un utilisateur utilisait le clavier ou des boîtes de liste non saisissables.

Désormais, l’événement On before Keystroke est généré dès que la zone de liste a le focus et qu’une touche est tapée, même si aucune donnée n’est saisie dans une cellule. Cela permet à 4D de savoir quelles touches ont été pressées et rend possible (par programmation) la prise de décisions telles que le lancement d’une nouvelle recherche ou la modification de la sélection en cours.

La nouvelle commande Is editing text a été ajoutée pour aider à déterminer si une entrée est en cours lorsque l’événement On before keystroke est généré. Par exemple, elle permet de modifier une zone de liste tout en prenant en charge les fonctions de saisie anticipée. Les événements « On before keystroke » et « On after keystroke » prennent désormais en charge les boîtes de dialogue d’aide système permettant de sélectionner des diacritiques tels que é, ä ou des caractères asiatiques. L’événement est retardé jusqu’à ce que l’utilisateur final sélectionne les derniers caractères. Il n’est pas nécessaire de gérer cela vous-même. Lisez la documentation

Fonctions Pro Listbox gratuites

Vous n’avez plus besoin d’une licence 4D View Pro pour utiliser ces fonctionnalités avancées. Vous pouvez tirer pleinement parti des boîtes de liste pour :

  • adapter automatiquement la hauteur de chaque ligne à son contenu afin d’afficher l’intégralité du texte ou de l’image
  • utiliser des tableaux d’objets dans les colonnes pour permettre la saisie et l’affichage de différents types de valeurs dans les lignes d’une même colonne de boîte de liste.

Configurer des rangées mobiles par code

En mode Conception, lorsque vous utilisez des boîtes de liste basées sur des tableaux, vous pouvez définir si les utilisateurs finaux peuvent déplacer les lignes(par exemple, pour réorganiser ou regrouper des lignes, etc.) Les commandes LISTBOX SET PROPERTY et LISTBOX Get property ont été mises à jour pour prendre en charge la nouvelle propriété lk movable rows. Lisez la documentation

Sélection des lignes d’une liste

La nouvelle commande LISTBOX SELECT ROWS facilite la sélection de lignes dans une sélection d’entités. Elle prend une sélection d’entité comme paramètre, et les lignes correspondant à la sélection d’entité peuvent être sélectionnées intuitivement (y compris les lignes ajoutées ou supprimées de la sélection). Pour les listes de collection, vous pouvez passer une collection contenant les références d’objets que vous souhaitez sélectionner. Lire la documentation

Prenez le contrôle de l’espace de travail

Les éléments graphiques du système, tels que le dock macOS ou la barre des tâches Windows, sont pris en compte afin que vous puissiez utiliser toute la zone de travail disponible. Un nouveau paramètre facultatif a été ajouté à la commande COORDONNÉES D’ÉCRAN: Zone de travail de l’écran. De cette façon, vous pouvez être sûr que les fenêtres de votre application se trouvent dans une zone visible (notamment en mode SDI sous Windows). Lire la documentation

XML : Prise en charge améliorée de XPath

À partir de la version 19 de 4D, la mise en œuvre de XPath est plus conforme et simplifie vos recherches en permettant la prise en charge d’expressions telles que //, @, * et last(). Pour des raisons de compatibilité, l’implémentation précédente, non standard, est maintenue par défaut dans les bases de données converties. Pour bénéficier des fonctionnalités étendues dans vos bases de données converties, sélectionnez l’option Utiliser la compatibilité XPath standard sur la page Compatibilité. Lire la documentation

Amélioration des objets et des collections

La commande OB Copy() et la méthode membre collection.copy() ont été améliorées. Elles vous donnent désormais la possibilité d’ajouter un objet standard dans un objet partagé ou une collection, ce qui simplifie la copie du contenu de cet objet standard dans l’objet partagé ou la collection. En plus de cela, de nouvelles commandes pour manipuler les objets comme des cartes de hachage sont maintenant disponibles :

  • OB Keys: renvoie les noms des propriétés d’un objet sous forme de collection.
  • OB Values: renvoie les valeurs des propriétés d’un objet sous forme de collection.
  • OB Entries: renvoie une collection d’objets avec des propriétés clés (nom de propriété) et des valeurs (valeur de propriété). Lire la documentation

Créer une zone web hors écran

4D v19 vous permet d’utiliser une zone web en mode hors écran avec la commande WA Run offscreen area. Elle crée une zone web en mémoire et prend comme paramètres toutes les informations pertinentes pour la zone web, telles que :

  • l’URL à charger
  • le nom de la zone
  • la formule appelée lorsqu’un événement est déclenché par la zone Web.

Pour simplifier le débogage des zones web hors écran, la nouvelle commande WA OPEN WEB INSPECTOR a été ajoutée. Elle ouvre l’inspecteur Web et vous permet de vérifier si la page est correctement chargée ou si votre code JavaScript génère des erreurs. Lire la documentation

Accéder aux valeurs des objets du formulaire par programmation

Deux nouvelles commandes sont disponibles pour vous aider à accéder aux valeurs des objets du formulaire, quelle que soit leur variable ou leur expression : OBJECT Get value et OBJECT SET VALUE.

  • Pour obtenir la valeur d’un objet de formulaire, utilisez la commande OBJECT Get value et passez le nom de votre objet de formulaire en paramètre.
  • Pour définir la valeur d’un objet de formulaire, utilisez la commande OBJECT SET VALUE et passez le nom et la nouvelle valeur comme paramètres. Lisez la documentation

Amélioration de la comparaison de chaînes de caractères

4D fournit des outils polyvalents pour la recherche et la comparaison de chaînes de caractères. Ils peuvent être adaptés à différents contextes et situations.

Avec 4D v19, des mises à jour ont été apportées à la commande Position et la nouvelle commande Compare strings a été ajoutée :

  • Position: cette commande a maintenant plus de possibilités de comparaison telles que « sensible à la casse » ou « sensible aux accents », et les options de recherche suivantes sont maintenant disponibles :
    • Langue japonaise (Hiragana/Katagana)
    • largeur des caractères
    • « mot entier ».
  • Compare strings: cette nouvelle commande permet de comparer des chaînes de caractères avec les mêmes options que celles ajoutées à la commande Position. Cette commande est basée sur la langue définie dans les paramètres de la base de données. Cela peut être utile pour permettre des tris spécifiques par exemple. Lire la documentation

Améliorations du débogueur 4D

4D v19 inclut de nouvelles options et des informations supplémentaires qui faciliteront le traçage et l’analyse de votre code.

    • Paramètres : Connaître les paramètres d’entrée et de sortie d’une méthode ou d’une fonction, ainsi que leur type, est essentiel pour déboguer du code. La ligne de déclaration est affichée en haut à gauche de la fenêtre du débogueur. Dans le volet de la chaîne d’appel, vous pouvez choisir d’afficher ou de masquer le type du paramètre.
    • Commentaires : Pour aider à expliquer une méthode ou une fonction, une pratique courante consiste à inclure des commentaires au début des blocs de code. Ces commentaires sont désormais visibles dans le débogueur. Lire la documentation

Débogueur distant

Cette fonctionnalité vous permet de décider où vous souhaitez déboguer votre code serveur (côté client ou côté serveur). Le débogage côté client est particulièrement utile si vous exécutez votre serveur en mode sans tête ou en tant que service Windows.

Deux nouveaux éléments de menu ont été ajoutés des deux côtés pour gérer l’attachement du débogueur :

  • Attacher / Détacher le débogueur : Attachez ou détachez instantanément le débogueur à votre client ou à votre serveur.
  • Attacher le débogueur au démarrage : Attachez le débogueur lorsque vous démarrez votre client ou votre serveur.

N’oubliez pas que le débogueur ne peut être attaché qu’à une seule instance de 4D à la fois. Par exemple, si vous essayez d’attacher le débogueur à votre serveur sans le détacher du client, vous obtiendrez un message d’erreur contenant des informations sur le propriétaire du débogueur.

Pour vous aider à différencier si le débogueur ou les fenêtres d’erreur proviennent du serveur ou du client, nous avons modifié l’apparence de ces fenêtres. Lire la documentation

4D Write Pro

Convertissez vos documents Word au format 4D Write Pro blank

Vous pouvez désormais importer des documents .docx dans 4D Write Pro. Pour ce faire, utilisez la nouvelle constante wk docx avec la commande WP Import document existante. Veuillez noter que 4D Write Pro importera la plupart du contenu du document MS Word, à l’exception de ce qui n’est pas supporté dans 4D Write Pro (comme détaillé dans le chapitre de la documentation : Importation et exportation au format .docx). De plus, pendant le processus d’importation, un journal d’importation est généré et intégré au document 4D Write Pro lui-même. Vous pourrez le consulter pour voir s’il y a des différences potentielles entre le document original et le document converti. Lire la documentation

Exportation directe au format PDF

Sans installer de pilote d’impression ou de logiciel supplémentaire, les documents 4D Write Pro peuvent être exportés directement au format PDF. L’exportation directe est non seulement plus rapide et plus fiable qu’un pilote d’impression, mais elle vous permet également de mieux contrôler le résultat. Elle prend en charge les hyperliens, permet d’optimiser la taille des images, et bien plus encore. La commande WP EXPORT DOCUMENT a été mise à jour pour accepter une nouvelle constante : wk pdf. Lire la documentation

Rechercher et remplacer blank

Trouver et remplacer du texte dans un document 4D Write Pro est déjà possible avec les commandes de base comme WP Get text et WP Set text. La nouvelle commande WP Find all rend ce processus plus rapide que jamais. Lire la documentation

Repérer toutes les ruptures blank

Les documents 4D Write Pro prennent en charge cinq types de coupures :

  • les sauts de ligne
  • sauts de paragraphe
  • sauts de page
  • sauts de section
  • sauts de colonne

Parfois, vous devez localiser un certain type de coupure pour le remplacer par un autre, ou simplement supprimer toutes ses occurrences dans le document. Pour rendre cela possible, nous avons développé une nouvelle fonction : WP Get breaks. Lire la documentation

Formules : gérer le comportement du retour chariot

La nouvelle propriété de document wk break paragraphs dans les formules définit la manière dont un retour chariot doit être traité est disponible. Elle a deux valeurs possibles :

  • wk true: Interprété comme des sauts de paragraphe.
  • wk false: (valeur par défaut) Interprété comme des sauts de ligne. Lire la documentation

Améliorations de l’interface utilisateur

Un nouvel onglet est disponible dans le widget de l’interface de 4D Write Pro. Il vous permet d’importer et d’exporter des documents dans différents formats. Nous avons également apporté des améliorations à la barre d’outils et à la barre latérale. Vous pouvez désormais :

  • incrémenter ou décrémenter du texte
  • copier et coller la règle
  • changer la couleur de fond d’un paragraphe
  • changer le style d’un mot (majuscule, minuscule, etc.). Lire la documentation

Sélectionner les pages du widget à afficher

4D affiche uniquement les pages mentionnées dans la collection, dans l’ordre de la collection. Cela permet de réduire le jeu de fonctionnalités pour le rendre plus simple pour l’utilisateur final. Si seules les options de style sont nécessaires, il est préférable de ne pas afficher les autres fonctionnalités. Désormais, le widget 4D Write Pro offre la possibilité de sélectionner les pages à afficher grâce à la nouvelle méthode du composant WP ShowTabPages. Il suffit de passer le nom du widget et une collection de pages à afficher lorsque vous appelez la méthode. Lire la documentation

Sélection du caractère pour les onglets décimaux

Si vous disposez de documents provenant de diverses sources, il se peut que les chiffres ne soient pas correctement formatés pour vos besoins. Désormais, 4D Write Pro vous permet de spécifier ce paramètre pour chaque document. Vous pouvez choisir d’aligner les chiffres soit sur :

  • le point
  • la virgule
  • le premier séparateur trouvé (point ou virgule)
  • le séparateur défini dans le système d’exploitation

Afin de maximiser la compatibilité (avec MS Word en particulier) l’option #3 est utilisée par défaut lors de la création de nouveaux documents. Lors de la migration de documents 4D Write vers 4D Write Pro, le séparateur défini par le système est utilisé par défaut. Lire la documentation

Gérer les traits d’union souples

L’insertion de traits d’union souples a été simplifiée en fournissant de nouvelles actions standard, ainsi que de nouveaux boutons dans les widgets de l’interface 4D Write Pro.

Deux nouvelles actions standard sont disponibles :

  • insertSoftHyphen
  • removeSoftHyphens

La fonctionnalité a également été ajoutée aux widgets de l’interface 4D Write Pro, à la fois dans le widget de la barre d’outils et dans celui de la barre latérale. Lire la documentation

Nouvelles actions standard pour les tableaux et leurs éléments

4D v19 ajoute de nouvelles actions standard à 4D Write Pro, ciblant les tableaux, les lignes et les cellules. Elles permettent de définir le type de bordure d’un tableau, la couleur de fond d’une cellule, l’alignement vertical du texte dans une ligne, l’alignement du tableau lui-même dans le document, les marges, le remplissage et plus de 40 autres options. Par conséquent, l’interface de 4D Write Pro a été améliorée en termes de capacités de traitement des tableaux. Quatre nouveaux boutons ont été ajoutés pour modifier l’apparence des tableaux, des lignes, des colonnes et des cellules. Lire la documentation

Prise en charge de l’attribut protégé

Dans 4D v19, des parties désignées des documents 4D Write Pro (ou toutes les parties) peuvent être « non éditables ». Deux niveaux de protection sont disponibles. Tout d’abord, définissez la partie des documents qui sera protégée (par défaut, toutes les parties sont protégées). Ensuite, activez le drapeau de protection des documents afin que les paramètres que vous avez définis soient pris en compte. Pour cela, vous pouvez utiliser deux nouveaux attributs avec la commande WP SET ATTRIBUTES :

  • wk protected (peut être défini sur presque tout type de cible appartenant à un document)
  • wk protection activée (active ou désactive la protection globale du document). Lire la documentation

Gestion des formules dans les documents

4D v19 comprend un ensemble de commandes qui peuvent vous aider à gérer les formules dans vos documents 4D Write Pro :

  • WP Get formulas: Récupère toutes les formules à l’intérieur d’une cible spécifique (le document complet lui-même, mais aussi des parties plus spécifiques d’un document telles que le corps, la deuxième section, l’en-tête gauche, etc,)
  • WP Insert formula: Insère une expression comme objet de formule dans une plage donnée,
  • Formules WP Compute et WP Freeze: Peuvent être utilisées de manière très similaire(c’est-à-dire en utilisant une cible). Réévaluer toutes les expressions d’un document ou simplement geler uniquement les expressions appartenant aux pieds de page. Lire la documentation

Supprimer des images

La nouvelle commande WP DELETE PICTURE permet de supprimer les images en ligne ou ancrées. Il suffit de retrouver l’image que vous souhaitez supprimer par son ID (en utilisant WP Get element by ID) ou par sa position (en utilisant WP Get elements), puis d’appeler la commande. Lire la documentation

4D View Pro

Améliorations avec SpreadJS v14 blank

4D v19 est livré avec un nouveau ruban 4D View Pro. Outre le nouveau look, nous avons ajouté de nouvelles caractéristiques pour prendre en charge les nouvelles fonctionnalités de SpreadJS v14.

Cette nouvelle barre d’outils apporte de nouvelles fonctionnalités telles que :

  • Support d’accessibilité: Fournit un support d’accessibilité adéquat pour les utilisateurs handicapés qui utilisent des technologies d’assistance telles que les lecteurs d’écran. Pour plus d’informations, consultez la section Support d’accessibilité
  • Personnalisation de l’indicateur de commentaire: Les utilisateurs peuvent désormais modifier la couleur et la taille de l’indicateur.
  • Copie d’images à partir d’Excel: Il est possible de copier des images depuis Excel et de les coller dans des feuilles. L’image collée aura la même taille, la même bordure et le même arrière-plan qu’elle avait dans Excel.
  • Effets et motifs de remplissage: Améliorez l’apparence des cellules d’une feuille de calcul en leur appliquant des effets de motif ou de dégradé. Pour plus d’informations, reportez-vous aux sections Remplissage de motifs et Remplissage de dégradés.

Prise en charge de six langues

En plus de l’anglais, nous avons ajouté la prise en charge du français, de l’allemand, de l’espagnol, du japonais et du portugais! Si vous êtes un utilisateur de 4D v19 et plus avec un système d’exploitation correspondant aux langues prises en charge, vous remarquerez que tous les éléments de 4D View Pro sont désormais traduits (ruban, barre d’outils, menu contextuel, messages d’erreur, etc.)

Fin du chargement du document

Deux nouveaux événements sont disponibles pour vous permettre de savoir quand vos calculs sont terminés: Sur l’ événement VP Range Changed et sur l’événement Timer.

Cela peut être utile, par exemple, lorsque vous chargez un grand document 4D View Pro avec beaucoup de formules, et que les calculs peuvent prendre un certain temps à se terminer, ou lorsque vous utilisez une zone hors écran et que vous voulez exporter le document au format PDF ou Excel. Dans ces cas, vous devez attendre la fin des calculs avant de poursuivre. Lisez la documentation

Recherche et remplacement

Il arrive que vous initialisiez un document 4D View Pro, et que vous deviez trouver certaines valeurs ou balises et les remplacer par des données issues de 4D. C’est désormais un jeu d’enfant avec la commande VP Find. Grâce à cette commande, vous pouvez trouver des données, des formules ou des balises et les remplacer dans la feuille entière ou seulement dans une partie spécifique de celle-ci. Lire la documentation

Formules 4D dans les feuilles de calcul

La commande VP SET CUSTOM FUNCTIONS vous permet de créer des fonctions personnalisées dans 4D View Pro pour exécuter une formule 4D. Il n’est pas nécessaire de créer une méthode pour utiliser une simple variable dans 4D View Pro, il suffit de la passer comme paramètre à votre formule. En outre, la commande simplifie la saisie pour l’utilisateur final en fournissant un texte d’aide et les noms des paramètres. Dans les grandes structures, l’utilisation de cette commande est beaucoup plus rapide que celle de la commande générique SET FIELD TITLES. Lisez la documentation

Zone hors écran

La nouvelle commande VP Run offscreen area vous permet de manipuler les commandes et fonctions de 4D View Pro dans une zone hors écran. Pour l’utiliser, il suffit de passer les informations de la zone en paramètre (par exemple, le nom de la zone et la méthode appelée lorsqu’un événement est déclenché par la zone 4D View Pro). Lire la documentation

Fusionner et défusionner des cellules

Un nouvel ensemble de commandes est à votre disposition pour vous aider à fusionner et à défusionner un groupe de cellules par programmation :

  • Pour créer une cellule fusionnée, définissez une plage avec toutes les cellules que vous souhaitez combiner, puis passez-la en paramètre à la nouvelle commande VP ADD SPAN qui combine les cellules en une seule plage de cellules.
  • Pour récupérer toutes les cellules fusionnées, utilisez la commande VP Get spans.
  • Pour supprimer les cellules fusionnées de votre document, utilisez la commande VP REMOVE SPAN. Lire la documentation

Formules : recalculer, suspendre et reprendre

Trois nouvelles commandes vous permettent de déclencher les calculs des formules quand vous le souhaitez :

  • Utilisez VP RECOMPUTE FORMULAS pour recalculer les formules lorsque les données changent.
  • Utilisez VP SUSPEND COMPUTING et VP RESUME COMPUTING pour respectivement suspendre et reprendre les calculs. Lisez la documentation

Plus d’options pour personnaliser les feuilles de calcul

La nouvelle commande VP SET SHEET OPTIONS vous permet de définir diverses options de feuille d’une zone 4D View Pro. Par exemple, cette commande vous permet de :

  • de protéger une feuille de calcul en empêchant la modification des cellules qu’elle contient
  • personnaliser les couleurs des onglets de votre feuille de calcul, des lignes gelées, des lignes de grille, ou de l’arrière-plan et de la bordure d’une sélection
  • gérer la visibilité des lignes de grille et des en-têtes de ligne/colonne d’une feuille de calcul. Lire la documentation

Gestion des lignes et des colonnes

4D v19 comprend de nouvelles commandes pour gérer les colonnes et les lignes. Ces commandes vous permettent de mieux adapter vos documents à vos besoins. Les commandes suivantes permettent d’ajouter et de supprimer des colonnes et des lignes, ou de définir leur taille, leur visibilité et leurs étiquettes d’en-tête :

  • VP INSERT ROWS ou VP INSERT COLUMNS: Ajoute des lignes ou des colonnes en passant une plage contenant la première colonne ou ligne comme paramètre et le nombre de lignes ou colonnes à ajouter.
  • VP SET COLUMN COUNT et VP SET ROW COUNT: Définissez le nombre de colonnes et de lignes affichées. Par défaut, une feuille 4D View Pro contient 100 colonnes et 1 000 lignes.
  • VP DELETE ROWS ou VP DELETE COLUMNS: Supprimez des lignes ou des colonnes spécifiques.
  • VP SET COLUMN ATTRIBUTES et VP SET ROW ATTRIBUTES : Spécifier la largeur des colonnes ou la hauteur des lignes ; ajouter un saut de page pour l’impression ; cacher ou afficher les colonnes ou les lignes ; permettre ou interdire le redimensionnement des colonnes ou des lignes par les utilisateurs ; changer les étiquettes d’en-tête des colonnes ou des lignes. Lire la documentation

Verrouiller des lignes et/ou des colonnes

La nouvelle commande VP SET FROZEN PANES vous aide à créer des volets. Si vous avez un grand tableau de données, il peut être utile de garder une zone d’une feuille de calcul visible pendant que vous faites défiler une autre zone. Avec cette commande, vous pouvez créer jusqu’à 4 volets dans votre zone : un à gauche, un au-dessus, un à droite et un en dessous. Lire la documentation

Les versions R en profondeur