Les nouveautés de 4D v19

Ce document est une compilation de toutes les nouvelles fonctionnalités de 4D v19. A noter que chaque fonctionnalité est associée à un article de blog pour vous guider à travers des exemples concrets. Ces articles de blog sont accessibles en cliquant sur le titre de la fonctionnalité.

De plus, les sections accompagnée de la balise blank sont liées à toutes les nouvelles fonctionnalités publiées entre 4D v18 R6 et 4D v19.

Ce document se compose de sept sections :

 Prise en charge native de Silicon

Suite à l’annonce révolutionnaire d’Apple (les nouveaux Mac Silicon), nous avons lancé la version 4D v19 six mois plus tôt que prévu pour vous fournir, dès que possible, une version Silicon native de 4D. Outre les remarquables améliorations en matière de performance, vous trouverez ci-dessous les nouveautés :

 

Etant donné que les Mac Silicon n’utilisent plus une architecture de processeur x86 telle que celle des Intel Mac et PC, ils ne peuvent pas exécuter le même code compilé. En tant que tel, nous avons dû améliorer notre compilateur avec une compilation Silicon spécifique (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 Mac Intel et Silicon, vous devrez le compiler en tant que binaire universel. Et si vous utilisez des plugins tiers, assurez-vous de télécharger des versions natives de Silicon ou universelles binaires.

Besoin de plus de temps ? 

Bien entendu, 4D v19 continuera de fonctionner avec Rosetta. Si vous avez besoin de temps pour faire fonctionner votre application en mode natif, il est toujours possible de l’exécuter sur Rosetta.

 Fonctionnalités associées au mode projet

Les projets, qui sont une architecture faisant considérablement évoluer les applications 4D, ont ouvert le monde de 4D aux outils de gestion de version, à la programmation collaborative, au partage de code, à la modularité, et à bien plus encore ! Grâce aux projets et à la possibilité de partager le code source des applications projet via un système de contrôle de version, nous avons publié plus de 45 référentiels sur GitHub (au moment de la rédaction de ce manuel). Cela inclut les HDI (How Do I), les composants et les exemples d’applications complets.

Et avec 4D v19, un tout nouvel ensemble de fonctionnalités améliorera considérablement votre expérience de programmation.

 

Classes 

Grâce au mode projet, nous avons introduit des classes. Une classe vous permet de définir le comportement à l’aide 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 s’étendre sur 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 celui de constructor. 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 depuis le menu «Nouveau» de la barre d’outils, ou depuis la boîte de dialogue «Explorateur». Un éditeur de classe s’affiche, dans lequel vous pouvez créer le constructeur de classe et les fonctions. Lire la documentation

Héritage de classe 

L’héritage permet à une classe d’hériter du comportement d’une autre classe (la classe parente). Pour hériter d’une classe utilisateur à une autre, utilisez le mot-clé Class extends, et le constructeur de la classe parente est automatiquement appelé (si vous n’avez pas défini de constructeur spécifique pour la classe enfant). Vous pouvez également utiliser la commande Super pour appeler le constructeur de la classe parente. Lire la documentation

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

Il n’est pas nécessaire de passer par une variable intermédiaire, vous pouvez désormais nommer vos paramètres et vos résultats lors de la déclaration d’un(e) :

  • méthode projet,
  • trigger,
  • méthode base,
  • méthode formulaire,
  • constructeur de classe,
  • fonction de classe. Lire la documentation

 

Prévisualisation du CSS dans l’éditeur de formulaire 

Cette fonctionnalité a été la plus demandée et la plus rapidement positionnée en tête du classement de notre forum de demandes de fonctionnalités. Elle vous permet de prévisualiser le rendu CSS final dans l’éditeur de formulaires. Pour cela, une nouvelle icône est disponible dans la barre d’outils pour vous permettre de visualiser votre formulaire avec ou sans le rendu CSS, et de d’avoir même un aperçu avec un rendu CSS spécifique sur Mac ou Windows. En ce qui concerne les propriétés de remplacement en mode CSS, un nouveau type de bouclier (similaire aux boucliers pour la méthode objet ou l’ordre d’entrée) s’affiche dans l’éditeur de formulaires. Il est désormais facile de voir quels objets sont impactés par un CSS Lire la documentation

 

Développement du code du serveur 

Le développement et le débogage du code serveur dans les applications projet devient plus facile. Dans les projets de développement en équipe, avec plusieurs développeurs utilisant le développement monoposte et validant leurs modifications dans un système de gestion de version, RECHARGER PROJET, combinée à des commandes telles que git pull, permet de mettre à jour un serveur en cours d’exécution avec un nouveau code sans redémarrage pour les tests ou même en mode production .

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

Si vous souhaitez que le serveur recharge les fichiers modifiés, passez de l’environnement de développement au mode application, déplacez 4D Server au premier plan ou sélectionnez l’élément de menu «Fichier / Enregistrer tout» dans 4D Remote (ou utilisez la nouvelle commande RECHARGER PROJET).

N’oubliez pas que l’exécution d’une méthode côté client exécute automatiquement une action «Enregistrer tout» et, par conséquent, recharge les fichiers modifiés côté serveur. Lire la documentation

 

Macros 

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

  • Modifier, supprimer ou ajouter une propriété à un ou plusieurs objets de formulaire, tels que le changement de 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
  • Calculez la position idéale des objets de formulaire et déplacez-les
  • Créer une classe CSS à partir d’un objet de formulaire à utiliser comme modèle
  • Vérifiez que les chemins des images dans le formulaire sont valides
  • Ouvrez les fichiers CSS dans votre éditeur CSS au lieu de rechercher des fichiers sur le disque
  • Vérifiez que les références XLIFF ont leur correspondance dans les fichiers XLIFF
  • et bien plus encore !

Les macros de formulaire sont disponibles dans le menu contextuel. Les macros de bases de données hôtes s’affichent en premier, suivies des macros de composants. Pour exécuter une macro, cliquez simplement sur l’élément de menu. Pour créer des macros de formulaire, déclarez-les simplement dans un fichier formMacros.json au premier niveau du dossier Sources de votre projet. Jetez un œil à quelques exemples de macros que nous avons mis à disposition sur GitHub. Vous pouvez les intégrer dans vos applications en tant que composants afin de les tester. Lire la documentation

 

Documentation des méthodes

Vous pouvez rédiger votre propre documentation pour les méthodes base, les méthodes de trigger, les méthodes projet et les méthodes formulaire de table. La documentation est enregistrée dans un fichier Markdown portant le même nom que la méthode ou que le formulaire dans un dossier Documentation. Le markdown est un format standard pour la documentation et donne accès à des styles de mise en forme améliorés. Le format peut être affiché dans 4D Explorer, dans GitHub ou dans d’autres outils. La documentation peut contenir une description d’un élément, ainsi que toute information nécessaire à la compréhension du fonctionnement de l’élément dans la base de données. Pour créer ou modifier le fichier de documentation dans une base projet, dans 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. Lire la documentation

4D propose trois thèmes de polices automatiques qui respectent les directives de chaque plateforme. 4D v19 vous permet de remplacer la taille de ces thèmes automatiques et d’avoir plus de contrôle sur l’affichage de votre texte. Lire la documentation

 

4D for iOS 

L’éventail de fonctionnalités de 4D for iOS est plus élargi avec 4D v19 :

 

Travailler hors ligne blank

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

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 manière très fluide et efficace de travailler avec des applications qui fonctionnent sans interruption et sans aucun retard. Lire la documentation

 

Deep linking

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

 

Push notifications 

Les “push notifications” sont le moyen idéal de garder les utilisateurs de votre application iOS engagés et informés.

Vous pouvez configurer des 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 lors de la réception d’une notification. Lire la documentation

 

Nouveaux formats de paramètre : Signature et code-barre

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

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

 

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

 

Prise en charge du scan de code-barre

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

Plus techniquement, cette fonctionnalité permet :

  • Filtrer un formulaire liste en fonction de la valeur du code. Si un enregistrement correspond à la valeur du code-barres, cela ouvrira directement le formulaire détaillé de l’enregistrement.
  • Lorsqu’ils sont associés à du “deep linking”, vous pourrez afficher des listes et des formulaires détaillés spécifiques simplement en scannant un code-barres dont les valeurs sont des schémas d’URL ou des liens universels.

Lire la documentation

 

Se connecter via le QRCode blank

4D for iOS offre une nouvelle façon moderne de se connecter. Et ce avec le modèle de formulaire de connexion SignInWithQRCode qui permet aux utilisateurs de l’application de se connecter en scannant le QRCode et d’accorder l’accès aux utilisateurs déjà authentifiés. Lire la documentation

 

Synchronisation des données optimisée 

Le processus de synchronisation des données de 4D for iOS a été optimisé, en vous permet de synchroniser vos données jusqu’à 25 fois plus rapidement. Lire la documentation

 

Authentification Mail 

4D for iOS vous permet de déterminer facilement l’authenticité et la légitimité de la personne qui tente de se connecter à votre application en vérifiant qu’un e-mail provient de la personne qui prétend l’envoyer. Fondamentalement, le processus met à jour l’état d’une session utilisateur pour donner à ce dernier accès à l’application :

  • Lorsqu’un utilisateur saisit son adresse e-mail dans le formulaire de connexion et clique sur le bouton Connexion, son statut de session est mis à jour en statut «en attente».
  • Un email de validation est ensuite envoyé à l’utilisateur, qui n’aura qu’à cliquer sur le lien de validation pour mettre à jour le statut de sa session et le faire passer de «en attente» à «accepté».
  • Une fois le processus de validation terminé, l’utilisateur peut rouvrir l’application et comme son statut de session est «accepté», l’accès est désormais accordé.

Le composant qui gère et facilite le processus est également disponible afin que vous puissiez adapter l’authentification à vos propres besoins. Lire la documentation

 

Générer des modèles de formulaires détaillés

Vous pouvez déposer autant de champs que vous le souhaitez dans votre modèle de formulaire détaillé, car ils peuvent être défilés. Il existe plusieurs façons d’ajouter vos champs à vos formulaires détaillés :

  • Sélectionnez un modèle vierge dans lequel vous pouvez déposer tous vos champs sans contrainte, ou,
  • Faites glisser et déposer les champs n’importe où dans la vue pour les ajouter et les afficher immédiatement après le dernier champ ajouté ou bien entre d’autres champs déjà affichés, ou,
  • Double-cliquez sur un champ. Il sera ajouté à la fin de la liste, ou,
  • Faites un clic droit sur l’un des champs disponibles dans le tableau Champs sur la gauche. Cela affichera 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 à votre disposition, accessibles depuis l’éditeur de projet. La galerie est basée sur une liste dynamique de modèles mis à jour disponibles sur GitHub. Pour utiliser un modèle, une icône «Plus» est disponible pour les formulaires liste et les formulaires de détail qui afficheront 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. Enfin, vous avez la possibilité de l’améliorer en fonction de vos besoins. Lire la documentation

ORDA

4D v19 continue d’apporter des améliorations à ORDA. Outre les diverses fonctionnalités (voir ci-dessous), ORDA vous permet de créer des fonctions de classe de haut niveau qui vont bien au-delà 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. Vous pouvez également exposer votre projet comme une API avec un serveur REST.

Les classes ORDA pour la gestion du modèle de données 

La structure de ORDA (datastore, dataclass, entity, entity selection) est constitué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 :

  • une classe Entity : pour implémenter des fonctions liées à une entité (par exemple pour calculer les frais d’expédition du devis en cours. Code affecté à un enregistrement donné).
  • une classe EntitySelection : pour implémenter des fonctions liées à une sélection d’entité (par exemple pour exécuter des statistiques sur les enregistrements sélectionnés. Code affecté à une sélection)
  • une classe DataClass: pour implémenter des fonctions liées à la dataclass (pour exécuter du code lié à une table, mais indépendamment d’un enregistrement ou d’une sélection spécifique. Par exemple, pour créer un nouvel enregistrement basé sur les paramètres fournis)
  • un DataStore : pour implémenter des fonctions liées à un datastore (pour exécuter du code non lié à une table ou à un enregistrement, similaire à une méthode projet générique). Lire la documentation 

 

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

Vous pouvez appeler des fonctions de classe définies pour le modèle de données ORDA via des requêtes REST afin de bénéficier de l’API du projet d’application 4D ciblé. Exposez votre logique métier avec une API contrôlée (à l’aide de 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 de classe ORDA sont exécutées sur le serveur. Vous pouvez maintenant choisir d’exécuter certaines fonctions sur le client grâce à un nouveau mot-clé: local. De plus, vous pouvez choisir les fonctions à publier (ou non) en tant qu’API pour les clients REST avec le nouveau mot-clé : exposedLire la documentation

 

La boucle à l’aide d’une nouvelle balise 4D blank

Une nouvelle balise 4D est désormais disponible : il s’agit de la balise 4DEACH, qui peut être utilisée comme balise 4D dans les pages SHTML ainsi qu’avec la commande TRAITER BALISES 4D.

Cela rend l’utilisation d’ORDA ou d’un objet dans TRAITER BALISES 4D ou SHTML extrêmement simple. Lire la documentation

 

Mise à jour du modèle

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

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

 

Sélections d’entité partageables 

Il se peut que vous souhaitiez partager une sélection d’entité avec un autre process ou bien que vous souhaitiez la rendre disponible à tous les process. Par exemple, imaginez que vous exécutez une requête complexe pour pouvoir identifier toutes les factures impayées, permettre aux utilisateurs finaux d’en sélectionner certaines (ou toutes) et d’envoyer un rappel de paiement par e-mail. Il est préférable d’envoyer des e-mails dans un autre process pour éviter de bloquer l’utilisateur. Au lieu de créer une liste de clés primaires à transmettre à l’autre process, une sélection d’entité partagée peut être directement transmise à un autre process. Les sélections d’entités partagées peuvent même être jointes à l’objet Storage pour être partagées avec tous les process.

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

  • Une sélection d’entité partageable peut être stockée dans un objet partagé ou une collection partagée et peut être partagée entre plusieurs process ou plusieurs workers. Elle ne permet pas d’ajouter de nouvelles entités. Essayer d’ajouter une entité à une sélection d’entités partageable génèrera une erreur.
  • Une sélection d’entité non partageable ne peut être ni partagée entre les process, ni stockée dans un objet ou une collection partagé(e). Essayer de stocker une sélection d’entité non partageable dans un objet ou une collection partagé(e) génèrera une erreur. Cependant, une sélection d’entités non partageable accepte l’ajout de nouvelles entités. Lire la documentation

 

Nouvelles méthodes des sélections d’entité

De nouvelles méthodes membres sont disponibles :

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

 

Langage 4D & autres fonctionnalités de programmation

Prise en charge du “Dark Mode” (mode sombre) sur macOS blank

4D a ajouté la prise en charge du mode sombre, qui est appliqué automatiquement si la préférence du mode sombre est définie au niveau de macOS. Et ce n’est que le début ! Car d’autres fonctionnalités seront publiées dans les futures versions, telles que la prise en charge de tous les composants (par exemple le widget 4D Write Pro), le mode Développement, et ce bien entendu sur Windows. Lire la documentation

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

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

  •  “default light theme” (basé sur l’éditeur de couleurs classique)
  •  “default dark theme” (nouvelle couleur)

Si vous préférez les couleurs choisies par votre collègue ou si vous avez trouvé un thème plus approprié sur GitHub par exemple, utilisez ce thème en ajoutant le fichier de thème JSON dans :

  • «<diskName>/Users/<userName>/Application Support/4D/4DEditorTheme» sous macOS
  • ou «<diskName>:\Users\userName>\AppData\Roaming\4D\4DEditorTheme» sous Windows. Lire la documentation

Lancer une compilation par programmation blank

Dans les systèmes d’intégration continue, chaque fois que du code est soumis ou bien lorsqu’il est envoyé sur une base horaire, une compilation du code source est automatiquement lancée. Cette approche vous permet de vérifier les fusions effectuées sur le serveur de gestion de code. A partir de 4D v19, la nouvelle commande Compiler projet permet de lancer la compilation du code, afin de paramétrer ce type de système. Lire la documentation

 

Gérer les informations de votre application blank

Pour créer votre application, vous utilisez la commande GENERER APPLICATION avec un ensemble de clés XML vous permettant de configurer l’application générée. Après le processus de création, il est possible d’ajouter des informations telles que la société, les droits d’auteur 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 ni 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 à partir d’un fichier .exe ou .plist, utilisez simplement getAppInfo et vous obtenez tous les attributs dans un seul objet. Lire la documentation

 

Simplifier la création de 4D Archive Client blank

À partir de macOS Big Sur, les applications non signées ne peuvent pas être exécutées. Nous vous avions proposé auparavant une solution de contournement, afin de créer des applications client-serveur exécutables sur un serveur Windows et acceptant les connexions des clients Mac. Avec la sortie de 4D v19, la création de l’application a été mise à jour dans 4D pour gérer ce scénario. Lire la documentation

Evolution du format du fichier d’historique 4D blank

Nous avons récemment revu nos formats de nos fichiers d’historique pour améliorer leur lisibilité et leur conformité, grâce à une analyse automatisée. Nous avons apporté ces améliorations en réponse à des situations réelles que nous avons expérimentées, en résolvant directement les problèmes qui limitaient l’utilisation des logs 4D. Lire la documentation.

Utilisation des collections et des listes dans les objets de formulaire blank

À partir de 4D v19, vous pouvez utiliser des collections pour définir le contenu de certains objets d’interface, y compris à l’aide de la fonction Form. Ceci est très utile pour la gestion d’interface générique. Nous avons également amélioré l’utilisation des listes.

L’utilisation des listes a été améliorée au niveau des :
Listes hiérarchiques
Onglets (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 «Pop-up»)
Combo boxes
– Onglets (deuxième cas d’utilisation). Lire la documentation

Nouvelle syntaxe de déclaration

Une nouvelle syntaxe servant à déclarer vos variables est désormais disponible. Elle utilise le mot-clé var, le nom de la variable et son type. La nouvelle syntaxe vous permet d’améliorer considérablement la saisie semi-automatique 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 d’une courte description

Pour simplifier et faciliter la saisie de code dans l’éditeur, le prototype d’une fonction et une brève description sont affichés dans l’éditeur de code.

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

Emails 

Prise en charge de OAuth 2.0

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

À partir de 4D v19, nous proposons un moyen de définir le mode d’authentification OAuth 2.0 pour se connecter. Les transporteurs IMAP, SMTP et POP3 prennent désormais en charge nativement le protocole OAuth 2.0 ! Lire la documentation

 

Gérer les marqueurs IMAP

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

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

  • \Seen : le message a été lu.
  • \Answered : le message a reçu une réponse.
  • \Flagged : le message est marqué comme «marqué» pour une attention urgente/spéciale.
  • \Deleted : le message est marqué comme «à supprimer». La suppression prend effet lorsque la fonction expunge() est appelée, change de boîte de réception ou ferme 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 les boîtes de réception avec IMAP blank

Des fonctions sont disponibles pour vous aider à gérer vos boîtes de réception par programmation. Cela inclut la création, le renommage et la suppression de boîtes de réception. Une boîte de réception s’affiche sous forme de dossier dans les clients de messagerie tels que Microsoft Outlook ou Apple Mail. Lire la documentation

 

Sauvegarder les e-mails dans une boîte de réception spécifique

Dans le cas où vos clients s’attendent à obtenir une copie d’un mail envoyé depuis 4D dans la catégorie de mails «Envoyés» d’Outlook ou Apple Mail, 4D v19 obtient la réponse. Pour sauvegarder une copie de votre e-mail après l’avoir envoyé :

  • Tout d’abord, créez deux transporteurs : un transporteur SMTP pour envoyer l’e-mail à votre client et un transporteur IMAP pour télécharger votre e-mail sur votre serveur de messagerie.
  • Après avoir envoyé votre e-mail avec SMTP, utilisez la fonction append() du transporteur IMAP. Lire la documentation

 

Rechercher et télécharger des e-mails

La recherche permet de récupérer une liste de messages en fonction de 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 retourne une collection d’ID de messagerie, qui peuvent être utilisés directement par la nouvelle méthode getMails pour les télécharger. 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 à l’aide de POP3

Vous pouvez télécharger localement vos e-mails et les supprimer de votre serveur de messagerie via POP3 grâce à la nouvelle commande POP3 Créer transporteur. Le protocole POP (Post Office Protocol) est un protocole Internet standard permettant de récupérer les e-mails d’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 (à stocker dans votre base de données locale) et leur suppression du serveur. De plus, plusieurs méthodes ont été ajoutées, vous permettant de gérer vos e-mails :

  • getMailInfoList() : retourne des informations sur tous les messages de votre boîte de réception.
  • getMailInfo() : retourne des informations sur un seul message.
  • getMail() : vous permet de télécharger certains messages en passant comme paramètre un numéro de message retourné par getMailInfoList().
  • delete() : marque certains messages comme étant à supprimer lors de la fermeture de session.
  • getBoxInfo() : retourne le nombre d’e-mails contenus dans votre boîte de réception ainsi que la taille de la boîte de réception. Lire la documentation

 

Recevoir des e-mails à l’aide de IMAP

Tout comme nous l’avons fait pour SMTP et POP3, une nouvelle commande IMAP Créer transporteur gère le protocole IMAP. Nous avons ajouté des commandes pour choisir une boîte de réception et télécharger un e-mail. Lire la documentation

 

Télécharger des e-mails au format MIME

4D v19 propose une commande pour vous permettre de stocker les e-mails dans leur format d’origine, non converti. En utilisant la méthode POP3_transporteur.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

Le chiffrement de 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 sera possible également d’utiliser le même algorithme que celui utilisé pour le chiffrement des données (AES-256) pour vos propres besoins. Vous pouvez maintenant chiffrer et déchiffrer toutes les informations que vous souhaitez avec un nouvel ensemble de commandes : Crypter données BLOB et Décrypter données BLOB. Lire la documentation

 

Nouvelle classe CryptoKey

Une nouvelle classe est désormais disponible, et fournit un ensemble de méthodes pour des opérations cryptographiques courantes (telles que la signature et la vérification, le cryptage et le décryptage) : la classe CryptoKey. Elle constitue un moyen de protéger la confidentialité de vos données, et de vérifier l’intégrité des messages et l’authenticité de l’expéditeur. Elle pourrait être utilisée pour :

  • La confidentialité : protégez les données contre tout accès non autorisé
  • L’intégrité : assurez-vous que les données sont complètes et correctes
  • L’authenticité : validez l’authenticité d’un expéditeur/destinataire de message. Lire la documentation

 

Web 

Sessions web extensibles

Le serveur Web 4D propose un nouveau type de session Web qui améliorera considérablement la performance de vos applications Web : la session Web extensible.

Les sessions Web évolutives sont capables de gérer plusieurs process en mode préemptif. Cela signifie qu’ils peuvent traiter plusieurs demandes d’agent utilisateur en même temps et qu’ils peuvent également partager des données entre ces process. Lire la documentation

 

Les attributs SameSite et Secure pour les cookies blank

Les capacités des cookies se sont accrues et ont évolué au fil des ans, mais elles conservent quelques problèmes hérités. Pour gérer cela, les navigateurs (y compris Safari, Chrome, Firefox et Edge) modifient leur comportement concernant les attributs SameSite et Secure pour un modèle sécurisé par défaut pour les cookies. Pour cela, 4D v19 apporte quelques améliorations. Lire la documentation

 

Prise en charge de Cross-origin resource sharing(CORS)

Le protocole CORS empêche une page Web d’envoyer des requêtes à des domaines autres que le sien. Cependant, si vous devez autoriser d’autres sites à envoyer des requêtes HTTP à votre serveur afin d’obtenir ou d’envoyer des données… C’est désormais possible :

  • Par programmation : grâce aux commandes WEB FIXER OPTION et WEB Serveur. Elles prennent des paramètres de domaine pour permettre des actions spécifiques (GET, POST, HEAD, PUT)
  • Via les paramètres de la base : grâce aux options disponibles dans la fenêtre Paramètres > Web > Options (II). Lire la documentation

 

Explorateur de données (Aperçu)

4D v19 propose une version préliminaire de l’Explorateur de données de 4D. Les développeurs ou administrateurs 4D peuvent désormais explorer facilement les données de leurs applications dans un navigateur Web sans avoir besoin d’une licence de serveur Web. Visionnez cette vidéo pour voir le produit en action.

 

Dossier cache 4D personnalisé pour le 4D Server fusionné

Si votre machine héberge une application serveur fusionnée créée avec différentes versions de 4D, vous pouvez rencontrer des problèmes liés au dossier de structure 4D partagé. Afin d’éviter de partager ce dossier système entre des applications serveur fusionnées créées sous différentes versions de 4D, vous pouvez désormais définir le nom du dossier lors du processus de génération de l’application avec la nouvelle clé buildApp pour définir votre propre dossier de structure. Lire la documentation

 

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

La connexion de votre application distante à plusieurs serveurs peut parfois générer un large dossier de ressources locales dans le système, ce qui peut prendre du temps, du volume et du réseau. Vous avez maintenant la possibilité de partager le même dossier de ressources locales entre tous les serveurs identiques avec la nouvelle clé buildApp pour partager le dossier de ressources locales. Lire la documentation

 

Amélioration de l’intégration du journal

Lors de l’exécution d’un 4D Server en production, tout doit être entièrement automatique, sans administrateur. Ceci est particulièrement important avec la mise à jour automatique et le fonctionnement en mode headless. Après une coupure de courant ou une panne, des erreurs mineures dans le journal peuvent interrompre un serveur 4D redémarré automatiquement. Une nouvelle option permet désormais de supprimer les messages d’erreur non critiques (tout en les signalant dans un journal), réduisant ainsi les temps d’arrêt du système. Lire la documentation

 

Accorder dynamiquement des droits utilisateur 

Suite à l’utilisation possible de votre propre système de gestion des utilisateurs finaux et à la commande FIXER ALIAS UTILISATEUR, nous avons ajouté la possibilité de gérer les autorisations des utilisateurs finaux. La nouvelle commande FIXER ACCES GROUPE vous permet de définir dynamiquement les appartenances aux groupes. Lire la documentation

 

Stocker des alias utilisateur dans le journal

Le comportement de la commande FIXER ALIAS UTILISATEUR a été étendu dans 4D v19 en vous permettant de savoir qui a fait quoi. Désormais, lorsqu’un alias est défini, il est également stocké dans le journal. Cela vous permet de récupérer le bon utilisateur, même si plusieurs utilisateurs partagent le même ordinateur et/ou le même compte système. Le nom d’utilisateur s’affiche dans :

  • les onglets Analyse d’activité et Rollback du MSC,
  • la boîte de dialogue affichée avec la commande VERIFIER FICHIER HISTORIQUE,
  • et dans le fichier JSON généré par FICHIER HISTORIQUE VERS JSON. Lire la documentation

 

Suivre les opérations lentes 

Pour découvrir quelles opérations entraînent le ralentissement d’un serveur, 4D v19 propose une nouvelle commande : DEMARRER SUIVI DES ACTIVITES. Elle enregistre les opérations dépassant une durée spécifiée à l’aide de deux paramètres : la durée et l’opération à surveiller. En fonction des spécifications définies par cette commande, vous pouvez également obtenir toutes les activités enregistrées avec la commande Lire activités suivies. Une fois que vous avez décidé de stopper l’enregistrement de l’activité de votre application 4D ou de vider la liste des activités, appelez la commande ARRETER SUIVI DES ACTIVITESLire la documentation

 

Listbox

Gestion des clics dans les cellules modifiées

L’événement formulaire Sur clic est déclenché, qu’une cellule soit en cours de modification ou non, ce qui vous donne plus de contrôle et améliore l’interface. Cela peut être utile, par exemple, si vous souhaitez afficher des valeurs à l’aide d’un menu contextuel pour une cellule lors de sa modification. Une fois que la ligne est sélectionnée, vous pouvez proposer un choix de couleur pour cette ligne ou cellule particulière.

En matière de compatibilité, si vous avez déjà du code qui s’exécute pendant l’événement Sur clic, vous souhaiterez peut-être stopper l’exécution de ce code lorsqu’un clic se produit dans une cellule modifiée. Dans ce cas, testez simplement, en amont, l’état de cette cellule avec la fonction Texte en éditionLire la documentation

Colonnes d’heure et calculs de pieds de page blank

Si les nouvelles listbox utilisant des collections ou des sélections d’entités sont plus puissantes à bien des égards, elles présentaient jusqu’ici certaines limites par rapport aux listbox qui affichent des tableaux ou des enregistrements : l’affichage de l’heure et surtout les calculs automatiques dans le pied de page.

Désormais, tous les types de listbox peuvent afficher les heures dans leurs colonnes, et ont également la possibilité d’afficher les calculs au niveau de leur pied de page. Lire la documentation 

Amélioration de la saisie prédictive

Normalement, une listbox ne reçoit que les événements de frappe en mode édition. Cependant, cela l’empêche de filtrer automatiquement la liste ou de sélectionner une saisie lorsqu’un utilisateur utilisait le clavier et une listbox non saisissable.

Désormais, l’événement Sur avant frappe clavier est généré dès que la listbox a le focus et qu’une touche est saisie, même si aucune donnée n’est entrée dans une cellule. Cela permet à 4D de savoir quelles touches ont été enfoncées et permet (par programmation) de prendre des décisions telles que le lancement d’une nouvelle recherche ou la modification de la sélection courante.

La nouvelle commande Texte en édition a été ajoutée pour aider à déterminer s’il existe une entrée en cours lorsque l’événement Sur avant frappe clavier est généré. Par exemple, il permet à une listbox d’être modifiable – et prend toujours en charge les fonctionnalités de saisie prédictive. Sur avant frappe clavier et Sur après frappe clavier prennent désormais en charge les boîtes de dialogue d’aide du système pour sélectionner des signes 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. Lire la documentation

Fonctionnalités Pro Listbox gratuites

Vous n’avez plus besoin de licence 4D View Pro pour utiliser des fonctionnalités avancées telles que les list box. Elles sont désormais gratuites ! Plus rien ne peut vous empêcher de bénéficier des listbox qui permettent :

  • d’adapter automatiquement la hauteur de chaque ligne à son contenu (afin que le texte intégral ou l’image puisse s’afficher),
  • d’utiliser des tableaux objets dans les colonnes (vous pouvez donc saisir et afficher différents types de valeurs dans les lignes d’une seule colonne de listbox). Lire la documentation

 

Paramétrer des lignes déplaçables par code

Dans le cas des listbox basées sur des tableaux, vous pouvez définir (en mode Développement) si les utilisateurs finaux peuvent déplacer des lignes (par exemple, pour réorganiser ou regrouper des lignes, etc.). Les commandes LISTBOX FIXER PROPRIETE et LISTBOX Lire propriété ont été mises à jour pour prendre en charge une nouvelle propriété: lk lignes déplaçablesLire la documentation 

Sélection des lignes de listbox 

4D v19 propose une nouvelle commande qui facilite la sélection de lignes dans une sélection d’entité : LISTBOX SELECTIONNER LIGNES. Elle accepte une sélection d’entité comme paramètre et les lignes correspondant à la sélection d’entité peuvent être sélectionnées de manière intuitive (y compris les lignes ajoutées ou supprimées de la sélection). Quant aux listbox sous forme de collection, vous pouvez passer une collection contenant les références d’objet que vous souhaitez sélectionner. Lire la documentation

 

Prenez le contrôle de la zone 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 l’intégralité de la zone de travail disponible. Un paramètre optionnel de la commande COORDONNEES ECRAN a été ajouté : Zone de travail. Ainsi, vous avez la garantie que les fenêtres de votre application se trouvent dans une zone visible (en particulier en mode SDI sous Windows). Lire la documentation

 

XML : amélioration de la prise en charge de XPath

À partir de 4D v19, l’implémentation de XPath est plus conforme et simplifie vos recherches grâce à la prise en charge d’expressions telles que //, @, * et last(). Pour des raisons de compatibilité, l’implémentation non standard antérieure est conservée par défaut dans les bases de données converties. Pour tirer parti des fonctionnalités étendues de vos bases converties, sélectionnez l’option de compatibilité Utiliser le standard XPath dans la page Compatibilité. Lire la  documentation

 

Amélioration des objets et collections

La commande OB Copier et la méthode membre collection.copy() ont été améliorées. Elles vous permettent désormais d’ajouter un objet standard dans un objet ou une collection partagé(e) afin d’éviter que le code complexe ne copie le contenu de l’objet standard dans l’objet ou la collection partagé(e). De plus, de nouvelles commandes sont créées pour gérer les objets sous forme de cartes de hachage :

  • OB Clés : retourne les noms de propriétés d’un objet sous forme de collection.
  • OB Valeurs : retourne les valeurs de propriété d’un objet sous forme de collection
  • OB Entrées : retourne 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 Démarrer hors écran. Il crée une zone Web en mémoire et prend en paramètre 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

Et pour simplifier le débogage d’une zone Web hors écran, une nouvelle commande a été ajoutée: WA OUVRIR INSPECTEUR WEB. 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 par programmation aux valeurs des objets de formulaire

Deux nouvelles commandes sont disponibles pour vous aider à accéder aux valeurs des objets de formulaire, quelle que soit leur variable ou expression : OBJET Lire valeur et OBJET FIXER VALEUR. Pour lire la valeur d’un objet de formulaire, utilisez la commande OBJET Lire valeur et passez le nom de votre objet de formulaire en tant que paramètre. De la même manière, si vous devez fixer la valeur d’un objet de formulaire, utilisez la commande OBJET FIXER VALEUR et passez le nom et la nouvelle valeur en paramètres. Lire la documentation

 

Amélioration de la comparaison des chaînes

4D fournit des outils très polyvalents de recherche et de comparaison de chaînes adaptables aux contextes et aux situations rencontrés par les développeurs.

Avec 4D v19, des mises à jour ont été apportées à la commande Position et la nouvelle commande Comparer chaînes a été ajoutée :

  • Position : cette commande est maintenant dotée de plus de capacités de comparaison et d’options de recherche, telles que «sensible à la casse» ou «sensible à l’accent», la langue japonaise (Hiragana/Katagana), la largeur des caractères et «mot entier».
  • Comparer chaînes : cette nouvelle commande vous permet de comparer des chaînes avec les mêmes options que celles ajoutées à la commande
  • Position. Cette commande est fondée sur la langue définie dans les paramètres de la base. Cela peut être très utile pour effectuer des tris spécifiques par exemple. Lire la documentation

Amélioration du débogueur 4D

4D v19 inclut de nouvelles options ainsi que des informations supplémentaires qui faciliteront la traçabilité 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 le débogage 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’appels, vous pouvez choisir d’afficher (ou non) 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 le code de votre 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 headless (ou en tant que service Windows).

Deux nouveaux éléments de menu ont été ajoutés (des deux côtés) pour gérer la pièce jointe du débogueur :

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

A noter 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, un message d’erreur s’affiche avec des informations relatives au propriétaire du débogueur.

Et pour vous aider à identifier si le débogueur ou les fenêtres d’erreur proviennent du serveur ou du client, nous avons changé l’apparence de ces fenêtres. Lire la documentation

4D Write Pro

 

Conversion des 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 Importer document existante. A noter que 4D Write Pro importera la plupart du contenu du document MS Word, à l’exception de ce qui n’est pas pris en charge par 4D Write Pro (tel que mentionné dans le chapitre “Importer et exporter au format .docx” de la documentation). De plus, lors du processus d’importation, un journal d’importation est généré et intégré dans le document 4D Write Pro lui-même. Vous pourrez le consulter pour voir s’il existe d’éventuelles différences entre l’original et le document converti.  Lire la documentation

 

Export direct en PDF

Les documents 4D Write Pro peuvent être exportés directement au format PDF, sans installation de pilote d’impression préalable ni logiciel supplémentaire. Un export direct est non seulement plus rapide et plus fiable qu’un pilote d’impression, mais il vous donne également plus de contrôle sur le résultat. En plus de prendre en charge les liens hypertexte, il vous permet d’optimiser la taille de l’image et bien plus encore. La commande WP EXPORTER DOCUMENT a été mise à jour pour accepter une nouvelle constante : wk pdfLire la documentation

 

Chercher et remplacer blank

Trouver (et remplacer) du texte dans un document 4D Write Pro est déjà possible à l’aide de commandes basiques telles que WP Lire texte et WP Fixer texte. Mais la nouvelle commande WP Chercher tous vous permet d’aller plus vite que jamais, grâce à des critères optionnels. Lire la documentation

 

Localisation de tous les types de sauts blank

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

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

Vous devez parfois localiser un certain type de saut pour le remplacer par un autre, ou simplement supprimer toutes ses occurrences dans le document. Pour ce faire, nous avons développé une nouvelle fonction : WP Lire sautsLire la documentation

 

Formules : gérer le comportement du retour chariot

Une nouvelle propriété de document définissant le traitement d’un retour chariot est disponible : wk break paragraphs in formulas. Ses deux valeurs possibles sont :

  • 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élioration de l’UI

Un nouvel onglet est disponible dans le widget d’interface de 4D Write Pro, vous permettant ainsi d’importer et d’exporter des documents dans différents formats. Aussi, de nouvelles améliorations sont apportées à la barre d’outils et à la barre latérale. Vous pouvez désormais incrémenter ou décrémenter du texte, copier/coller la règle, changer la couleur d’arrière-plan d’un paragraphe, changer le style d’un mot (majuscules, minuscules, etc.) Lire la documentation

 

Sélectionner les pages widget à afficher

4D n’affiche que les pages mentionnées dans la collection, dans l’ordre de la collection. Cela permet de réduire l’ensemble de fonctionnalités pour le simplifier à l’utilisateur final. Si seules des options de style sont nécessaires, il est préférable de ne même pas afficher toutes les autres fonctionnalités. Désormais, le widget 4D Write Pro permet de sélectionner les pages à afficher, grâce à la nouvelle méthode de composant WP ShowTabPages. Passez simplement le nom du widget ainsi qu’une collection de pages à afficher lorsque vous appelez la méthode.  Lire la documentation

Sélectionner des caractères pour les tabulations décimales

Si certains de vos documents proviennent de différentes sources, les nombres contenus dans ces mêmes documents peuvent ne pas être formatés correctement. Désormais, 4D Write Pro vous permet de spécifier ce paramètre pour chaque document. Vous pouvez choisir d’aligner les nombres sur :

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

Afin de maximiser la compatibilité (avec MS Word en particulier), l’option n°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

L’insertion des traits d’union a été simplifiée, grâce à de nouvelles actions standard, ainsi que de nouveaux boutons dans les widgets de l’interface 4D Write Pro.

Deux nouvelles actions standards sont à votre disposition :

  • 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 le widget 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, et cible les tableaux, les lignes et les cellules. Ces actions vous permettent de définir le type de bordure d’un tableau, la couleur d’arrière-plan 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 de tableau. Quatre nouveaux boutons ont été ajoutés pour modifier l’apparence des tableaux, des lignes, des colonnes et des cellules. Lire la documentation

Dans 4D v19, certaines parties des documents 4D Write Pro (ou toutes les parties) peuvent être «non modifiables». Deux niveaux de protection sont disponibles. Tout d’abord, définissez quelle partie des documents sera protégée (par défaut, toutes les parties sont protégées). Puis, activez le marqueur de protection des documents pour que les paramètres que vous avez définis soient pris en compte. Pour cela, deux nouveaux attributs sont disponibles, pour être utilisés avec la commande WP FIXER ATTRIBUTS : wk protected (peut être défini sur presque n’importe quel type de cible d’un document), et wk protection enabled (active ou désactive la protection globale des documents). Lire la documentation

Gestion des formules dans les documents

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

  • WP Lire formules : récupère toutes les formules d’une cible spécifique (le document complet lui-même, ainsi que des parties plus spécifiques d’un document telles que le corps, la deuxième section, l’en-tête de gauche, etc.),
  • WP Insérer formule : insère une expression en tant qu’objet formule dans une plage donnée,
  • WP Calculer formules et WP Figer formules : peuvent être utilisées de manière très similaire (c’est-à-dire en utilisant une cible). Réévaluez toutes les expressions d’un document ou simplement figer uniquement les expressions appartenant aux pieds de page. Lire la documentation

Suppression des images

La suppression d’images en ligne ou ancrées peut désormais être effectuée avec la nouvelle commande WP SUPPRIMER IMAGE. Récupérez simplement l’image que vous souhaitez supprimer via son ID (à l’aide de WP Lire element par ID) ou par sa position (à l’aide de WP Lire element), puis appelez la commande. Lire la documentation

 

 4D View Pro

 

Améliorations avec SpreadJS v14blank

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

  • Prise en charge de l’accessibilité : elle fournit une prise en charge de l’accessibilité adéquate pour les utilisateurs handicapés qui utilisent des technologies d’assistance telles que les lecteurs d’écran. Pour plus d’informations, reportez-vous à la prise en charge de l’accessibilité.
  • Personnalisation de l’indicateur de commentaire : les utilisateurs peuvent désormais modifier la couleur et la taille de l’indicateur.
  • Copier des images à partir d’Excel : prend en charge la copie d’images à partir d’Excel et leur collage dans des feuilles. L’image collée aura la même taille, la même bordure et le même arrière-plan que dans Excel.
  • Effets de remplissage et motifs : améliorez l’apparence des cellules dans une feuille de calcul en appliquant aux cellules un motif ou bien des effets de dégradé. Pour plus d’informations, reportez-vous à Remplissage de motif et Remplissage en dégradé.

 

Six langues prises en charge

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 d’une version plus récente avec un système d’exploitation correspondant aux langues prises en charge, vous constaterez 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 vous permettent de savoir à quel moment vos calculs sont terminés : il s’agit de l’événement Sur VP Plage changée et Sur minuteur.

Cela peut être utile, par exemple, lors du chargement d’un document 4D View Pro assez lourd, contenant de nombreuses formules, où les calculs peuvent être très longs. Cela peut également être pratique si vous utilisez une zone hors écran et que vous souhaitez, par exemple, exporter le document au format PDF ou Excel… vous deviez alors attendre la fin de ces calculs avant de procéder. Lire la documentation

 

Trouver et remplacer 

Parfois, vous initialisez un document 4D View Pro dans lequel vous avez besoin de trouver des valeurs ou des balises et de les remplacer par des données issues de 4D. Grâce à la commande VP Find command, cela deviendra un jeu d’enfant. Vous pourrez ainsi trouver des données, des formules ou des balises et les remplacer dans toute la feuille 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 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 variable simple dans 4D View Pro. Il vous suffit de la passer en tant que paramètre dans votre Formule. De plus, la commande simplifie la saisie anticipée pour l’utilisateur final en fournissant un texte d’aide et des noms de paramètres. Dans les grandes structures, cette commande est beaucoup plus rapide que l’utilisation de la commande générique FIXER TITRES CHAMPS. Lire la documentation

Zone hors écran 

Une nouvelle commande pour manipuler les commandes et fonctions de 4D View Pro dans une zone hors écran est disponible : VP Run offscreen area. 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 lancé par la zone 4D View Pro). Lire la documentation

 

Fusionner et défusionner les 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.
  • Utilisez la commande VP Get spans pour récupérer toutes les cellules fusionnées.
  • Supprimez les cellules fractionnées de votre document avec la commande VP REMOVE SPAN

Lire la documentation

 

Formules : recalculer, suspendre, et reprendre

Trois nouvelles commandes sont disponibles pour vous permettre de déclencher les calculs de formules quand vous le souhaitez :

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

 

Plus d’options pour personnaliser les feuilles

Une nouvelle commande, VP SET SHEET OPTIONS, est disponible pour définir différentes options de feuille d’une zone 4D View Pro. Par exemple, cette commande vous permet :

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

 

Gérer les lignes et les colonnes

4D v19 inclut de nouvelles commandes de gestion des colonnes et des lignes. Ces commandes vous permettent de mieux adapter vos documents à vos besoins. Les colonnes et les lignes peuvent être ajoutées et supprimées, ou avoir leur taille, leur visibilité et leurs libellés d’en-tête définis avec les commandes suivantes :

  • VP INSERT ROWS ou VP INSERT COLUMNS : ajoutez des lignes ou des colonnes en passant une plage contenant la première colonne ou la première ligne comme paramètre ainsi que le nombre de lignes ou de colonnes à ajouter.
  • VP SET COLUMN COUNT et VP SET ROW COUNT : définissent le nombre de colonnes et de lignes affichées. Par défaut, une feuille 4D View Pro contient 100 colonnes et 1000 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écifiez la largeur de colonne ou la hauteur de ligne; ajoutez un saut de page pour l’impression; masquez ou affichez des colonnes ou des lignes; activez ou interdisez le redimensionnement des colonnes ou des lignes par les utilisateurs; changez les libellés d’en-tête de colonne ou de ligne. Lire la documentation

 

Verrouiller lignes et/ou colonnes

VP SET FROZEN PANES, une nouvelle commande pour vous aider à créer des volets. Si vous disposez d’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 jusqu’à 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

 

 Versions R-releases en détail