Ce document est une compilation de toutes les nouvelles fonctionnalités disponibles dans 4D v18. 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 sont liées à toutes les nouvelles fonctionnalités publiées entre 4D v17 R6 et 4D v18.
Ce document est divisé en sept sections :
Base de données du projet – Contrôle des versions
Une solution livrée avec 4D v18 facilite le travail collaboratif des équipes distribuées en stockant le code source dans un système de contrôle des versions à l’aide de fichiers texte simples. Elle vous permet de profiter de la puissance combinée de la plate-forme de développement 4D avec la polyvalence des fichiers légers et distribués :
Architecture
Une base de données de projet contient l’ensemble du code source d’une application de base de données 4D, de la structure de la base de données à l’interface utilisateur, en passant par les formulaires, les menus, les paramètres utilisateur ou toute autre ressource requise. Les bases de données de projet étant constituées de fichiers texte, les projets contiennent plusieurs dossiers et fichiers stockés dans un seul dossier de base de données parent. Lorsque vous créez une base de données de projet, vous trouverez plusieurs des mêmes dossiers qu’une base de données binaire :
- Données
- Journaux
- Ressources
- Paramètres
- WebFolder
Il y a également deux nouveaux dossiers :
- Projet – Code source de l’application (équivalent au .4db)
- userPreferences.<name> – Contient des fichiers de configurations utilisateur mémorisées(par exemple, positions des points d’arrêt, positions des fenêtres, etc). Lire la documentation
Convertir une base de données binaire existante
Vous pouvez créer une base de données de projet soit en créant une nouvelle base de données de projet vierge, soit en exportant une base de données binaire existante (.4db) vers un dossier de projet. Pour convertir une base de données binaire existante, il suffit de cliquer sur l’élément de menu File > Export > Structure to project. Une fois cette opération effectuée, un message s’affiche pour vous informer de l’achèvement de la conversion. 4D vous fait également savoir si des erreurs nécessitant votre intervention ont été détectées. Par exemple, dans le cas d’anciens objets de formulaire qui ne sont plus pris en charge. Lisez la documentation
Post-conversion
En ce qui concerne la structure d’une base de données binaire, la description de votre application est stockée dans deux fichiers (.4DB et .4DIndx). Pour une base de données de projet, vous trouverez cette description dans les fichiers stockés dans le dossier « Project ». Après la conversion, vous pouvez supprimer les fichiers suivants du dossier « Project » (si vous le souhaitez) : <database>.4db et <database>.4dIndy. Les données des nouvelles bases de données du projet résident dans un dossier « Data » au même niveau que le dossier « Project ». Par conséquent, même pendant la phase de développement, un fichier situé à côté du dossier « Data » est différent d’un fichier situé à côté de la structure. Nous vous recommandons, après la conversion, de créer un dossier Data au même niveau que le dossier Project, et d’y déplacer les fichiers data.4dd et data.4DIndx. Enfin, pour garder les données séparées et faciliter le déploiement, 4D nomme désormais les fichiers avec le mot « preferences » pour les paramètres liés au développement, comme la configuration de l’éditeur de code, tandis qu’il utilise « settings » pour les paramètres liés au déploiement, comme les paramètres de mémoire ou de sauvegarde.
Gestion des utilisateurs et des groupes
Les bases de données des projets étant entièrement basées sur du texte, il n’y a plus de raison de gérer les utilisateurs et les groupes pour protéger le code. Ce rôle a été délégué au système de contrôle de version ou au système de droits d’accès aux fichiers/dossiers du système d’exploitation. Par conséquent, les utilisateurs et les groupes ne servent plus qu’à gérer l’accès aux données. Ils sont stockés dans un fichier texte nommé « directory.json » à côté du fichier de données.
Amélioration du déploiement
Il n’est plus nécessaire de différencier les développeurs des utilisateurs. Par conséquent, les deux ont maintenant le type « User ». Afin de simplifier le déploiement, les commandes Get 4D file et File acceptent désormais la nouvelle constante Directory file, ce qui vous permet de manipuler facilement et automatiquement le bon fichier. Lisez la documentation
Pendant la conversion et la migration
Le fichier de répertoire sera automatiquement généré lors du processus de conversion et placé à côté des paramètres du projet. Si vous avez jusqu’à présent utilisé la commande BLOB TO USERS pour restaurer vos utilisateurs et vos mots de passe, la commande générera désormais ce fichier répertoire afin que vous n’ayez pas à modifier votre code existant. Lire la documentation
Mode mono-utilisateur
En mode mono-utilisateur, les utilisateurs et les groupes sont complètement désactivés. L’utilisateur actuel est toujours le Designer et ne peut pas être changé. Les droits d’accès des utilisateurs et des groupes à l’application peuvent être délégués au système. Si vous souhaitez masquer le nom du Designer par le compte système ou votre propre nom d’utilisateur, il vous suffit d’appeler la commande SET USER ALIAS. Lire la documentation
Mode client/serveur
En mode client-serveur, les utilisateurs et les groupes sont totalement opérationnels. Vous pouvez changer l’utilisateur actuel, définir un alias, modifier un mot de passe, etc.
Boîte à outils
Les pages de la boîte à outils Utilisateurs et Groupes sont accessibles dans tous les modes : monoposte et client-serveur. Cependant, en mode mono-utilisateur, la boîte à outils ne peut être utilisée que pour modifier les utilisateurs et les groupes qui seront utilisés en mode client-serveur.
Déployer votre application
Le déploiement se fait en deux étapes : la compilation du code et la création de l’application. Vous pouvez compiler la base de données de votre projet de la même manière que vous compilez votre base de données binaire (.4db). Il n’y a aucune différence. L’interface est la même et le code machine produit est le même. La seule différence est que le résultat compilé est enregistré dans un fichier binaire (.4db) pour les bases de données binaires, et dans le dossier « Project/DerivedData/CompiledCode » pour les bases de données de projet. Vous n’avez aucune modification à apporter pour créer vos applications (base de données compilée, composant, application autonome, application client/serveur), vous pouvez utiliser le fichier de configuration de votre base de données binaire avec votre base de données de projet convertie. La différence réside dans les fichiers générés : les bases de données de projet ont un fichier avec l’extension « .4dz » au lieu d’un fichier « 4dc ». Lisez la documentation
Télécharger vers un système de contrôle des sources
Lorsque vous compilez votre base de données, 4D stocke le code compilé dans le dossier « Project/DerivedData ». Il est recommandé de télécharger le dossier « Resources », le dossier « WebFolder » et le dossier « Project » (sans le sous-dossier « DerivedData« ) vers un système de contrôle des sources. Lisez la documentation
Les feuilles de style deviennent des CSS
Les possibilités des feuilles de style ont été considérablement améliorées. 4D s’est inspiré de la grammaire et de la syntaxe des feuilles de style CSS pour les bases de données de projets, en les adaptant aux besoins spécifiques des formulaires 4D. Vous pouvez ainsi configurer les propriétés des objets de formulaire à l’aide de feuilles de style. Lire la documentation
Cryptage
Un nouveau système intégré de cryptage des données pour vos bases de données 4D est désormais à votre disposition. Les données peuvent être cryptées via le code ou l’interface utilisateur, pour toutes les tables ou seulement pour les tables sélectionnées. Les outils de cryptage de 4D sont basés sur une phrase de passe. Elle est composée d’une phrase ou d’une combinaison de mots qui est utilisée pour générer une clé de chiffrement binaire afin de crypter les données avec l’algorithme AES. Pour pouvoir travailler avec un fichier de données crypté, la phrase de passe ou la clé de cryptage binaire est obligatoire. 4D crypte les données au niveau du fichier, ce qui signifie que votre fichier de données (4DD), votre sauvegarde et votre journal sont cryptés. En plus de la sécurité sur votre propre ordinateur, cela rend la copie des sauvegardes sur le cloud ou sur des disques externes beaucoup plus sûre, puisque les données restent cryptées.
Un nouvel attribut Encryptable est disponible pour les tables en mode conception. Il définit le statut de chiffrement d’une table en désignant qu’elle peut être chiffrée. Une fois que vous êtes prêt à crypter vos données, la façon la plus simple de le faire est d’utiliser la nouvelle page Crypter du MSC. Cette page fournit toutes les fonctionnalités nécessaires pour contrôler le cryptage de vos données. Vous pouvez utiliser cette page pour crypter ou décrypter le fichier de données, ainsi que pour le re-crypter et/ou modifier votre phrase de passe. Lire la documentation
En plus du MSC, 4D v18 comprend un ensemble de commandes conçues pour prendre en charge la plupart des exigences de cryptage. Par exemple, vous pouvez gérer le cryptage avec la commande Encrypt data file(), ou utiliser la commande provideDataKey() pour fournir la clé de cryptage des données à un fichier de données ouvert. Vous pouvez même utiliser la commande encryptionStatus() pour vérifier si le fichier de données ouvert est crypté ou non et si une clé de cryptage des données valide a été fournie. La liste complète des commandes est disponible dans le centre de documentation. Lire la documentation
Pour plus de détails sur les outils et techniques intégrés permettant de créer un environnement sécurisé pour vos applications professionnelles, veuillez consulter notre Guide de sécurité.
4D pour iOS
4D for iOS est une solution qui vous permet d’étendre vos applications d’entreprise aux appareils mobiles. 4D for iOS est entièrement intégré à 4D. Il n’y a donc pas besoin d’installation supplémentaire (sauf Xcode) ni d’expertise préalable. Voici les fonctionnalités que nous livrons avec cette version :
La modification des données directement depuis votre application est désormais possible grâce aux actions. Cela signifie que vos utilisateurs peuvent modifier les données directement dans votre application iOS. Pour protéger votre logique métier, chaque « action » est envoyée à 4D et exécute vos méthodes 4D pour vérifier, calculer des données supplémentaires et enfin approuver ou rejeter la saisie de l’utilisateur. De plus, des actions prédéfinies ont été prévues pour gérer le contenu de votre application : Ajouter, Modifier et Supprimer. Lire la documentation
Les formateurs de données sont un nouveau concept qui vous permet de définir des types de données spécifiques pour vos champs afin que le contenu s’affiche dans le bon format. Vous pouvez rapidement remplacer le format par défaut de vos champs pour afficher le format de votre choix, tel que la devise, les booléens, les pourcentages, les dates, etc. Par exemple, imaginez que vous souhaitez afficher une image pour visualiser les factures « payées » et « impayées », mais qui s’adapterait bien mieux à l’iPhone qu’une simple case à cocher. Lire la documentation
4D pour iOS supporte désormais la recherche multicritères ! Après avoir sélectionné votre modèle de formulaire de liste, déposez plusieurs champs dans la zone de recherche pour activer la recherche multicritères. Lorsque vous spécifiez plusieurs valeurs pour le même champ, un opérateur OR est utilisé en coulisses. Par exemple, faites glisser le nom de la société, le nom de famille et la ville dans la zone de recherche pour permettre à votre utilisateur de saisir n’importe laquelle de ces informations pour rechercher un client. Lire la documentation
Un autre concept nouvellement introduit : Les requêtes restreintes. Elles vous permettent de filtrer les données à synchroniser avec votre application mobile. Limiter les données aux seules factures de l’année dernière, aux seuls clients actifs ou à la seule région sous la responsabilité d’un directeur commercial est incroyablement pratique et permet de gagner du temps dans la synchronisation des données et de gagner BEAUCOUP d’espace sur votre iPhone. Lire la documentation
Synchronisation incrémentielle des données
Un autre concept intéressant inclus dans 4D pour iOS est la synchronisation incrémentielle des données. Il répond à deux besoins différents : même des requêtes restreintes peuvent donner lieu à des ensembles de données volumineux. C’est pourquoi 4D garde automatiquement la trace des enregistrements mis à jour ou supprimés et ne met à jour que ces données sur l’appareil. De plus, vos données ne sont pas seulement mises à jour à chaque fois que vous lancez votre application, mais aussi à chaque fois que votre application passe au premier plan ou en réponse à une action de l’utilisateur. Lire la documentation
4D for iOS prend en charge les types de relations N to One et One to N. Pour les relations N to one, c’est simple, vous pouvez utiliser les champs liés dans un formulaire pour le téléphone comme des champs de la table principale. Pour les relations N à N, le formulaire contient un bouton qui permet de passer à une autre page affichant la liste des enregistrements liés, ce qui permet à l’utilisateur de revenir en arrière d’un simple glissement de doigt. Lire la documentation
Personnalisez votre application
Créez vos propres modèles de listes et de formulaires détaillés
4D pour iOS fournit déjà plusieurs modèles de listes et de formulaires détaillés pour couvrir la plupart de vos besoins. Mais vous pouvez également créer facilement vos propres modèles. En utilisant Xcode Storybuilder, vous (ou un collègue ayant des compétences en Xcode) pouvez créer de nouveaux modèles ou personnaliser les modèles existants en utilisant toutes les fonctionnalités offertes par iOS. Pour utiliser le modèle créé, aucune compétence particulière n’est nécessaire, vous pouvez les utiliser comme n’importe quel modèle intégré. Lire la documentation
4D pour iOS dispose d’une vaste bibliothèque d’icônes couvrant de nombreux domaines tels que le commerce, la finance, l’éducation, le gouvernement, la santé, l’industrie, l’immobilier, les services, etc. Lire la documentation
Créer un formateur de données personnalisé
4D for iOS comprend déjà des formateurs de données de base pour les dates, les pourcentages, l’heure, etc., mais vous pouvez également créer vos propres formateurs de données et les utiliser directement depuis l’éditeur de projet. Par exemple, vous pouvez créer un formateur integertoString, qui remplace les nombres internes par des noms, comme les codes d’expédition. Ou integerToImage, pour remplacer les codes tels que 1,2,3,4 par des badges colorés indiquant le statut du partenaire. Lisez la documentation
ORDA
4D v18 continue d’apporter des améliorations à ORDA avec les fonctionnalités suivantes :
Vous n’êtes plus limité à la base de données actuelle, vous pouvez désormais accéder à une ou plusieurs bases de données 4D distantes publiées sur un ou plusieurs serveurs 4D. Une base de données distante peut être publiée en tant que ressource REST et accessible depuis les clients 4D. Cette base de données distante est utilisable (lecture/écriture) directement avec les concepts ORDA (qui déclencheront des requêtes REST entre le client et le serveur). Les connexions TLS sont, bien entendu, supportées. Vous pouvez restreindre l’accès à des utilisateurs 4D ciblés ou développer vos propres contrôles d’accès sur les informations d’identification de l’utilisateur. Même si ce processus utilise le serveur Web pour accéder au serveur REST, une licence de serveur Web n’est pas nécessaire. Les licences standard de 4D Client sont utilisées pour les connexions. Lire la documentation
De nouvelles méthodes ORDA sont disponibles sur l’objet ds pour vous aider à déboguer et optimiser votre code ORDA afin de mieux comprendre les requêtes envoyées. La méthode startRequestLog() est très flexible puisque, lorsqu’elle est appelée avec un objet File, elle peut enregistrer les requêtes ORDA dans un fichier ou en mémoire. Pour arrêter la journalisation des requêtes ORDA, vous pouvez appeler la méthode stopRequestLog(). Lisez la documentation
A l’aide de formules, vous pouvez maintenant ordonner une sélection d’entités en utilisant des critères complexes dans une méthode de projet ou dans une expression 4D. La formule évalue les critères d’ordre qui peuvent être donnés sous la forme d’un String ou d’un objet Formula à la méthode orderByFormula() . Lire la documentation
Requêtes avancées utilisant des formules
La méthode query( ) a été mise à jour pour prendre en charge un objet Formula comme paramètre et retourner un nouvel objet de type EntitySelection contenant toutes les entités trouvées. Cela permet de créer des critères de recherche plus sophistiqués. Lire la documentation
Optimisation des performances en client/serveur
L’accès aux grandes tables (en particulier celles avec des relations) en mode Client/Serveur en utilisant ORDA a été grandement amélioré. Lorsque vous utilisez des sélections d’entités dans des boîtes de liste ou dans des boucles de code(par exemple, While ou For each), les champs utilisés seront automatiquement analysés pour optimiser le transfert réseau. Vous constaterez une amélioration de 2 à 3 fois des performances en LAN et jusqu’à 30 fois plus rapide en WAN (en fonction du réseau et de la taille des enregistrements). Et le meilleur de tous – il n’y a pas besoin de changer quoi que ce soit dans votre code, c’est tout automatique.
Méthodes pour obtenir les informations sur la structure
Il existe de nombreuses méthodes permettant d’obtenir des informations relatives à la structure(par exemple, des informations sur un numéro de table ou de champ). Cela peut être utile lorsque vous intégrez ORDA pas à pas dans votre code 4D classique. Cependant, l’objectif principal de ces méthodes est de vous donner un moyen d’écrire du code générique qui soit applicable quelle que soit la structure de la base de données. Lisez la documentation
Placeholders nommés pour les chemins d’attributs
Vous pouvez également utiliser des caractères de remplacement pour les chemins d’accès aux attributs (noms des champs dans les tables). Deux types sont disponibles : Indexés – insérés en tant que :paramIndex(par exemple :1, :2,… avec un incrément de 1) dans la chaîne de requête et leurs valeurs correspondantes sont fournies par la séquence de paramètre(s) de valeur, et Nommés – insérés en tant que :paramName et leurs valeurs sont fournies dans les objets attributs ou paramètres dans la chaîne de requête. Lisez la documentation
Titres de remplacement nommés pour les valeurs
Il est désormais plus facile d’écrire des requêtes ORDA génériques grâce aux caractères de remplacement nommés pour les valeurs. Ces caractères de remplacement sont fournis en tant que paramètres d’objet dans les paramètres de la requête et remplacés par une autre valeur lorsque la chaîne de requête est évaluée. Lire la documentation
Langage 4D et autres fonctionnalités de programmation
Envoi de courrier
Une nouvelle façon de créer et d’envoyer des courriers électroniques est disponible. La nouvelle fonctionnalité est facile à utiliser – et aussi plus puissante qu’auparavant (en utilisant les commandes Internet 4D). La nouvelle commande SMTP New transporter permet de configurer une nouvelle connexion SMTP. La création et l’envoi d’e-mails suivent trois étapes : la création de votre transporteur SMTP, la création d’un objet mail, puis l’envoi de l’e-mail. Un objet mail possède de multiples propriétés : from, cc, bc, to, sender,textBody, htmlBody, pour n’en citer que quelques-unes. En outre, une pièce jointe peut être ajoutée à l’aide de la commande MAIL New attachment. Une fois créé, l’objet mail peut être envoyé avec la commande transporter.send() .
Enregistrer les conversations SMTP
La commande SMTP New du transporteur crée une connexion entre un serveur SMTP (tel que Microsoft Exchange ou Gmail) et le client, et enregistre – en texte clair et non crypté – toutes leurs communications. Une nouvelle propriété logFile est disponible, contenant le chemin complet du fichier journal défini pour la connexion SMTP. Le fichier peut être produit en deux versions : Une version standard et une version étendue. Les deux versions peuvent être déclenchées par la commande SET DATABASE PARAMETER. Lire la documentation
Analyser un document MIME, le modifier et le renvoyer
Le nouveau parseur puissant, MAIL Convert from MIME, convertit un e-mail reçu ou un document MIME créé à partir de 4D Write Pro en un objet. Cela vous permet d’éditer ou de modifier l’objet si nécessaire, par exemple en changeant le sujet, en supprimant/ajoutant des destinataires, en modifiant le corps, en ajoutant des pièces jointes, etc… puis d’envoyer le document. Par exemple : Dans le cas où vous utilisez 4D Write Pro pour créer des e-mails HTML avec des images statiques dans le texte et que vous devez les envoyer, voici la procédure à suivre :
- Exportez votre document 4D Write Pro au format MIME,
- utilisez la commande MAIL Convert from MIME pour transformer le MIME en objet mail,
- puis envoyez-le via la commande SMTP New transporter. Lire la documentation
Activer le débogueur en modes compilé et fusionné
Vous pouvez désormais utiliser le débogueur 4D pour déboguer du code en mode production, pendant l’exécution de la commande PROCESS 4D TAGS via la commande TRACE dans le code inséré entre les balises <!–#4DCODE–>. Lire la documentation
Construisez votre propre dialogue de connexion pour sélectionner le serveur
Vous pouvez maintenant utiliser une application fusionnée mono-utilisateur pour construire votre propre dialogue de connexion pour un serveur fusionné. Lire la documentation
La commande d’événement de formulaire a été retravaillée
La commande d’ événement de formulaire a été renommée en code d’événement de formulaire pour plus de clarté. En effet, la commande ne renvoyait que le code de l’événement alors que la nouvelle commande FORM Event renvoie un objet. Il n’est pas nécessaire de modifier votre code. La nouvelle commande renvoie un objet contenant plusieurs éléments d’information. Outre l’événement lui-même, elle contient également des informations sur l’objet qui déclenche l’événement, comme son nom et des données supplémentaires en fonction du type d’objet. Lire la documentation
Notation des objets pour gérer les fichiers et les dossiers
Créer, modifier ou supprimer des fichiers et des dossiers sur votre disque est devenu beaucoup plus facile et intuitif. Une nouvelle commande Folder a été ajoutée qui vous permet de créer un objet dossier à partir d’une constante, d’un chemin POSIX ou d’un chemin de plate-forme. L’objet dossier possède des propriétés(par exemple, name, modificationDate, modificationTime) et des méthodes( par exemple, create(), moveTo(), rename(), delete()) qui permettent la création et la manipulation de dossiers. Comme pour les dossiers, la commande File est disponible pour manipuler les fichiers. Le nouvel objet file permet d’accéder aux attributs des fichiers et de les manipuler. Vous pouvez utiliser les méthodes file pour écrire et lire le contenu d’un fichier, le déplacer, le supprimer, etc. Lire la documentation
Commandes Zip
Vous pouvez compresser ou décompresser vos fichiers via le code, sans faire appel à des bibliothèques ou outils externes. La nouvelle commande Zip Create archive vous permet de créer une archive zip en passant en paramètre soit un fichier, soit un dossier, soit un objet. Et pour décompresser votre archive, utilisez la nouvelle commande ZIP Read archive qui renvoie un objet archive facilement manipulable pour obtenir la liste des fichiers, extraire un fichier particulier ou l’archive entière. L’utilisation ou la création d’une archive zippée fonctionne de la même manière que les nouvelles commandes File et Folder, ce qui permet de garder votre code simple et facile à lire. Lire la documentation
Récupérer la chaîne d’exécution actuelle
Une nouvelle commande Get call chain est disponible pour vous donner un aperçu du code exécuté. Cela vous permet de savoir où vous en êtes dans votre code, notamment lorsqu’une méthode appelle d’autres méthodes, qui peuvent ensuite appeler d’autres méthodes. La commande renvoie une collection d’objets, chaque objet représentant une étape d’exécution et décrivant sa base de données, le type de méthode, le nom de la méthode et la ligne d’appel. La commande peut être utilisée dans tous les contextes d’exécution du code, en mode interprété et compilé. Lire la documentation
Nouvel outil d’analyse des journaux de débogage
Un nouvel outil est disponible pour vous aider à analyser les journaux de débogage. Par exemple, vous pourrez voir quels sont les processus qui prennent le plus de temps, la chaîne d’appels avec son temps d’exécution correspondant, et bien plus encore. Cet outil est conçu pour vous aider à trouver des conflits dans votre code et à améliorer les performances de vos bases de données. Lire la documentation
Applications 4D sans tête
Vous pouvez désormais lancer une application 4D sans interface (aka headless) via la CLI (Command Line Interface) avec le nouveau paramètre headless. Disponible pour tous les types d’applications : 4D, 4D Server, applications autonomes, distantes, fusionnées. Les messages d’erreur ou autres dialogues sont automatiquement récupérés et redirigés vers un fichier journal, ce qui évite d’arrêter le serveur. Lire la documentation
Préemptif
Désactiver la vérification de la sécurité des threads au niveau local
Vous pouvez maintenant indiquer au compilateur qu’une partie du code ne doit pas être vérifiée pour la conformité non préemptive, sachant que cette partie du code ne sera pas exécutée parce qu’elle fait partie d’une instruction If ou Case of et n’est exécutée qu’en mode coopératif. Pour ce faire, vous devez entourer le code à exclure de la vérification de la thread-safety avec les directives spéciales %T- et %T+ en tant que commentaires. Le commentaire //%T- désactive la vérification de la sécurité des fils et //%T+ la réactive. Lire la documentation
Processus préemptifs sur 4D remote
Vos processus peuvent être exécutés de manière préemptive sur 4D Remote, en tirant pleinement parti de la puissance des ordinateurs multi-cœurs. Divisez une opération en plusieurs parties et exécutez-la sur tous les cœurs disponibles, en parallèle, pour obtenir vos résultats plus rapidement. Lire la documentation
Grâce à toutes les nouvelles commandes thread-safe, vos applications peuvent tirer pleinement parti des ordinateurs multicœurs. Il en résulte des réponses plus rapides aux demandes simultanées.
Les commandes 4D suivantes sont désormais à sécurité thread : COMPRESSER BLOB, EXPANDER BLOB, PROPRIÉTÉS BLOB, ENCRYPTER BLOB, DÉCRYPTER BLOB,GÉNÉRER LE PÉRIODE DE CLÉ D’ENCRYPTION, GÉNÉRER LA DEMANDE DE CERTIFICAT, RECEVOIR LE TAMPON, RÉGLER LE CENTENAIRE PAR DÉFAUT, OBTENIR L’ICÔNE DU DOCUMENT, TRANSFORMER L’IMAGE, EXPORTER LE SVG EN IMAGE, Obtenir le chemin du document localisé, Obtenir la localisation de la base de données, LOCKED BY, LOG EVENT, Authentification du client actuel, OBTENIR LES STATISTIQUES DE MÉMOIRE. Lire la documentation
Début/Fin SQL en mode préemptif
Begin SQL, End SQL, et les instructions SQL associées utilisées avec une base de données interne sont maintenant compatibles avec le mode préemptif. Vous pouvez désormais lancer toutes vos requêtes en parallèle et augmenter la vitesse de vos applications si ces commandes sont utilisées pour effectuer beaucoup d’activités asynchrones. Lire la documentation
Vous pouvez utiliser, Nouveau signal – par exemple – pour déléguer le travail à un processus coopératif afin d’utiliser une commande non préemptive. La commande crée un objet partagé et vous permet de gérer la progression du processus en cours avec deux nouvelles méthodes : trigger() et wait(). Lire la documentation
Appel de l’événement onResize sur les sous-formulaires
Lorsqu’un formulaire contient un ou plusieurs sous-formulaires, vous pouvez gérer directement l’événement on resize dans la méthode du sous-formulaire. Cet événement sera déclenché chaque fois que la taille de l’objet sous-formulaire sera modifiée dans le formulaire principal. Cela peut arriver :
- Lorsque le formulaire principal est redimensionné.
- Lorsqu’un splitter modifie la hauteur ou la largeur de l’objet sous-formulaire.
- Lorsque la taille d’un objet sous-formulaire est modifiée par programmation à l’aide des coordonnées OBJECT Set. Lire la documentation
Nouveau type de données variante
Une nouvelle commande est disponible pour convertir chaque variable spécifiée en variable Variant : C_VARIANT. Le type de données Variant peut être utilisé pour représenter tout autre type de données (BLOB, Boolean, Collection, Date, Longint, Object, Picture, Pointer, Real, Text, Time, Null, Undefined) à l’exception des tableaux. Vous pouvez utiliser la commande Type pour récupérer le type de la variable et Value type pour le type de la valeur. Le type de données Variant vous aide à écrire du code générique, par exemple en permettant à une méthode de recevoir un paramètre sous forme de texte ou de blob, sans avoir besoin d’utiliser un pointeur. Lire la documentation
Lire les champs des objets 4D avec le moteur SQL
Le moteur SQL a été mis à jour pour permettre la lecture des champs d’objets 4D. Pour parcourir le contenu d’un champ objet, la fonction SQL CAST a été étendue pour retourner une représentation JSON du champ. Lire la documentation
Amélioration des tests de base de données
Les produits 4D peuvent déjà être lancés à l’aide de paramètres de ligne de commande pour permettre un test ou un déploiement automatique. Cependant, de nouveaux paramètres ont été ajoutés pour vous donner encore plus de flexibilité lors de l’ouverture de vos bases de données :
-opening-mode: définira l’ouverture de votre base de données en mode interprété ou compilé.
-create-data: permettra de créer de nouvelles données si le fichier de données actuel n’ est pas trouvé ou avec un nom spécifique si -data est passé.
-user-param: enverra une chaîne de caractères qui pourra être lue après le lancement de la base de données en utilisant la commande GET DATABASE PARAMETER . Lire la documentation
Définir un nom alternatif pour le compte utilisateur 4D
Une nouvelle commande est disponible pour définir un nom personnalisé à utiliser à la place du nom actuel du compte utilisateur 4D : SET USER ALIAS. Elle accepte une chaîne de caractères comme paramètre. Cette chaîne (alias) remplacera le nom d’utilisateur 4D dans l’environnement 4D. Un alias permet d’utiliser votre propre système d’utilisateur/mot de passe, ou un répertoire d’utilisateurs externe tel que Active Directory ou LDAP, tout en bénéficiant de tous les concepts d’identification d’utilisateur intégrés à 4D. Lire la documentation
Exporter un formulaire 4D classique vers un formulaire dynamique
La nouvelle commande FORM Convert to dynamic vous permet d’exporter un formulaire 4D classique (stocké dans un fichier .4DB) vers un formulaire dynamique. Vous passez le nom du formulaire et recevez un objet décrivant le formulaire. Ensuite, en fonction de vos besoins, vous pouvez modifier les options du formulaire telles que la taille de la police ou la position des objets à l’écran ou même ajouter des objets supplémentaires avant de l’afficher. Lire la documentation
Amélioration du journal de débogage
La commande SET DATABASE PARAMETER est améliorée afin de permettre la journalisation de processus spécifiques, ainsi que des appels aux méthodes membres (méthodes de collection ou d’objet). Un nouveau sélecteur est disponible(Current process debug log recording) qui lance la journalisation de débogage du processus en cours. Lire la documentation
Les formulaires dynamiques et l’ordre de saisie
Vous pouvez désormais définir un ordre de saisie qui n’est pas nécessairement associé à l’ordre z. Pour chaque page de votre définition de formulaire, l’attribut « objects » contient une liste d’éléments de formulaire qui sont disposés en suivant l’ordre z. Un nouvel attribut a été ajouté à cette liste : « entryOrder ». Il vous permet de spécifier votre propre ordre d’entrée personnalisé. Si cet attribut n’est pas défini, 4D utilise l’ordre z (c‘est-à-dire l’ordre défini dans l’attribut « objects »). Lire la documentation
Il est désormais possible d’exécuter plusieurs clients sur le même ordinateur et de les connecter simultanément au même serveur 4D. Chaque connexion client comprend désormais un dossier de cache distinct contenant l’adresse IP, le port et le code de hachage de la connexion. Grâce à cela, vous pouvez également connecter plusieurs clients d’une même machine à plusieurs serveurs sur des machines différentes. Aucune configuration n’est nécessaire. Lire la documentation
Ecrivez vos propres méthodes pour les objets
La commande Nouvelle formule est étendue pour vous permettre de créer des formules en tant qu’objets. Vous pouvez passer des paramètres ou accéder au contenu de l’objet formule. Les formules en tant qu’objets peuvent effectuer des calculs pour les attributs de l’objet à transmettre à une méthode. Les objets peuvent maintenant avoir leur propre callback ou gestionnaire d’erreur. Si vous utilisez déjà ORDA ou si vous faites du codage classique basé sur la sélection, les objets viennent de devenir beaucoup plus puissants. Lisez la documentation
Blocs de commentaires 4D
Les commentaires peuvent se trouver sur une seule ligne ou sur plusieurs. Maintenant, au lieu d’avoir plusieurs lignes préfixées par //, vous pouvez simplement utiliser /* au début d’un commentaire et */ à la fin pour commenter un bloc entier. Vous pouvez également les réduire et les développer. En outre, les commentaires peuvent être ajoutés à n’importe quelle partie d’une ligne, même à l’intérieur d’une condition if ou d’une boucle. Lire la documentation
Prise en charge de l’attribut « non-scaling-stroke » de SVG
Dans la norme SVG, l’attribut « non-scaling-stroke » indique que la largeur du trait ne dépend pas du zoom ou de la mise à l’échelle. En d’autres termes, les traits d’un objet ne sont pas affectés par les transformations et le zoom. Maintenant, nous avons ajouté de nouvelles commandes au thème « 4D SVG ». Vous pouvez définir l’attribut « non-scaling-stroke » aux objets de dessin avec la méthode VG_SET_STROKE_VECTOR_EFFECT. Lisez la documentation
Commandes d’administration de 4D Server
La liste des commandes qui vous donnent la possibilité de créer vos propres interfaces d’administration sous forme de dialogues sur le serveur, le client, ou même sous forme de pages HTML pour un accès web, est complétée :
- SEND MESSAGE TO REMOTE USER pour envoyer un message du serveur à un utilisateur distant.
- Get process activity pour récupérer une liste des sessions utilisateur.
- DROP REMOTE USER pour terminer une session utilisateur.
- ABORTER PROCESSUS PAR ID pour arrêter un processus spécifique en utilisant son numéro de processus unique.
- Obtenir l’activité du processus ou les propriétés du processus pour récupérer le numéro unique du processus.
- REJECT NEW REMOTE CONNECTION pour bloquer les nouvelles connexions à distance.
- Obtenez des informations sur l’application pour savoir si les connexions ont été acceptées ou refusées.
- SOAP REJECT NEW REQUESTS pour bloquer les requêtes SOAP.
- WEB Obtenir des informations sur le serveur pour savoir si les connexions ont été acceptées ou refusées.
- Refresh license pour mettre à jour une licence. Lire la documentation
De nouvelles informations sur l’URL utilisée par les processus web sont disponibles. Ces informations peuvent être récupérées de deux manières : via la fenêtre d’administration du serveur 4D ou via le langage 4D avec la commande Get process activity ; un nouvel attribut « url » est ajouté à l’objet process lorsque le type de process est un process web. Lire la documentation
La nouvelle commande Get application info permet de récupérer des informations détaillées sur l’activité et la configuration réseau de votre base de données active. Cette commande peut être appelée aussi bien sur un client distant que sur le serveur 4D. Lire la documentation
Rapport rapide
Gestion des méthodes de callback
- qr cmd open
- qr cmd save
- qr cmd save as
- commande qr cmd generate
- Commande de mise en page
- cmd qr aperçu avant impression
Dans la méthode de rappel, vous pouvez intercepter tous les événements gérés, faire quelque chose et exécuter l’événement avec la commande QR EXECUTE COMMAND. Lire la documentation
Gérer l’espacement des sous-totaux
Maintenant, pour chaque rupture (sous-total), vous pouvez définir soit un saut de page, soit une hauteur de ligne différente. Dans le cas d’une hauteur de ligne différente, la différence peut être exprimée en points (pt) ou en pourcentage (%). Lire la documentation
Gestion des bordures
Vous pouvez modifier l’apparence du cadre d’une cellule, d’une colonne ou d’une ligne de votre rapport en changeant sa couleur ou l’épaisseur du trait. Placez la souris sur l’élément que vous souhaitez configurer, cliquez dessus, puis choisissez le paramètre approprié (la configuration de la bordure, l’épaisseur du trait et la couleur) dans la fenêtre contextuelle. Lire la documentation
Améliorations de l’interface utilisateur
La première amélioration est un nouveau bouton « Enregistrer / Enregistrer sous ». Le choix de « Enregistrer » permet de sauvegarder votre travail en mettant à jour la dernière version enregistrée du fichier pour qu’elle corresponde à la version sur votre écran. En choisissant « Enregistrer sous », vous êtes invité à enregistrer votre travail dans un fichier portant un nom différent. La deuxième amélioration concerne les infobulles (petits messages affichés lorsque vous survolez une zone). Elles ont été ajoutées aux lignes de sous-totaux pour vous aider à voir facilement le sens du tri : ascendant ou descendant. Lire la documentation
Une nouvelle barre d’outils est disponible dans 4D Write Pro pour vous aider dans le processus de création de documents. En glissant et déposant simplement un nouvel élément de la bibliothèque d’objets, vous avez accès à une barre d’outils complète avec sept onglets différents, ce qui vous permet de passer rapidement d’une action à l’autre. Lire la documentation
Feuilles de style 4D Write Pro
Vous pouvez désormais gérer vos propres feuilles de style pour les paragraphes ou les caractères grâce à quelques nouvelles commandes qui vous permettent de créer, supprimer et importer des feuilles de style. Une feuille de style de caractère vous permet de définir la façon dont un caractère (ou un mot) est affiché et imprimé, tandis qu’une feuille de style de paragraphe vous permet de définir les couleurs des marges, le remplissage, les onglets, les bordures, et bien plus encore. Une feuille de style est un objet appartenant à un document. Elle est créée à l’aide de la commande WP New style sheet. Une fois créé, vous pouvez utiliser cet objet comme paramètre pour les attributs WP Set. Vous trouverez ci-dessous la liste des nouvelles commandes qui vous aideront à manipuler les feuilles de style :
- WP New style sheet : permet de créer une feuille de style
- WP DELETE STYLE SHEET : permet de supprimer une feuille de style.
- WP Get style sheet : permet de récupérer une seule feuille de style par son nom,
- WP Get style sheets: permet de remplir une collection de feuilles de style d’un type donné, et enfin,
- WP IMPORT STYLE SHEETS : permet d’importer des feuilles de style existantes créées dans un autre document 4D Write Pro (comme modèle, par exemple).
Convertissez vos documents au format .docx
Les documents 4D Write Pro peuvent désormais être exportés au format .docx. Pour ce faire, utilisez la nouvelle constante wk docx avec la commande WP EXPORT DOCUMENT existante, ou utilisez la commande WP EXPORT VARIABLE. Lire la documentation
Redimensionnement de la largeur des colonnes
Une fonctionnalité prête à l’emploi est fournie pour permettre aux utilisateurs finaux de redimensionner la largeur des colonnes. Passez la souris sur les séparateurs de ligne et le curseur se transformera en une double flèche indiquant que la colonne peut être redimensionnée. En cliquant et en faisant glisser ces séparateurs, les colonnes de gauche et de droite seront redimensionnées. Si vous appuyez sur la touche « shift » pendant le déplacement, seules les colonnes de gauche seront redimensionnées et toutes les colonnes de droite seront déplacées. Lire la documentation
Ajout et suppression de lignes et de colonnes
La gestion de l’insertion et de la suppression de lignes et de colonnes est désormais possible grâce à quatre nouvelles commandes : Afin d’insérer des lignes et des colonnes, deux nouvelles commandes ont été créées : WP Table insert rows et WP Table insert columns. Ces deux commandes renvoient des plages qui correspondent aux parties créées à l’intérieur du tableau. Et pour supprimer des lignes et des colonnes, deux nouvelles commandes sont disponibles : WP TABLE DELETE ROWS et WP TABLE DELETE COLUMNS. Lisez la documentation
Hauteur fixe pour les en-têtes et les pieds de page
Un nouvel attribut de document : wk header and footer autofit est disponible pour déterminer si les en-têtes et les pieds de page doivent être redimensionnés automatiquement pour éviter de tronquer leur contenu. Cet attribut peut prendre la valeur True ou False. Dans le cas de documents nouvellement créés, ce paramètre sera défini sur True (le redimensionnement automatique des en-têtes et des pieds de page sera activé), et sur False si vous importez un document 4D Write Pro. Lire la documentation
Créer des en-têtes et des pieds de page avec du code
Deux nouvelles commandes ont été ajoutées : WP New header et WP New footer pour permettre la création programmatique d’en-têtes et de pieds de page. Vous pouvez également utiliser du code pour supprimer un en-tête et un pied de page avec les commandes WP DELETE HEADER et WP DELETE FOOTER. Lire la documentation
Une nouvelle règle verticale est ajoutée. Elle permet aux utilisateurs de gérer graphiquement les marges verticales. Si votre document contient des en-têtes ou des pieds de page, les espaces entre eux et le corps de votre document peuvent également être modifiés avec la règle verticale. La nouvelle propriété Afficher la règle verticale est disponible dans la liste des propriétés, ce qui vous permet d’activer l’affichage de la règle. Lire la documentation
Vous pouvez définir la taille, l’orientation et les marges des pages de votre document avec du code. De nouveaux attributs utilisables avec les commandes WP SET ATTRIBUTES et WP GET ATTRIBUTES sont à votre disposition. Vous pouvez définir les propriétés d’un document 4D Write Pro entier. Les valeurs suivantes sont utilisées par défaut pour toutes les sections du document, que vous pouvez ensuite modifier pour une section donnée :
- wk page width, wk page height – pour la taille de la page
- wk page orientation – pour l’orientation de la page
- wk page margin, wk page margin left, wk page margin right, wk page margin top, wk page margin bottom – pour les marges des pages. Lire la documentation
Nouveaux attributs pour éviter les veuves, les orphelines et les sauts de page
De nouvelles options ont été ajoutées à 4D Write Pro pour vous aider à éviter les veuves et les orphelines pour les paragraphes ou les tableaux, et les sauts de page à l’intérieur des paragraphes ou des tableaux.
Les veuves et les orphelins sont les lignes au début ou à la fin d’un paragraphe qui sont laissées toutes seules en haut ou en bas d’une page. Afin de les éviter, vous disposez d’un nouvel attribut à utiliser avec la commande WP SET ATTRIBUTES : wk avoid widows and orphans. Les valeurs disponibles pour cet attribut sont wk true ou wk false. Lorsque cet attribut est défini pour un paragraphe ou un tableau, 4D Write Pro empêche ce paragraphe ou ce tableau d’avoir une seule ligne séparée sur une autre page.
Quant aux sauts de page à l’intérieur des paragraphes ou des tableaux, un nouvel attribut est disponible : wk page break inside. Les valeurs disponibles sont wk avoid ou wk auto. Cette option est utile lorsque vous ne souhaitez pas qu’un paragraphe, plusieurs paragraphes ou un tableau soient séparés sur deux pages. Lire la documentation
Gérer les sections avec du code
Une section vous permet d’obtenir différentes mises en page au sein d’un même document. Par exemple, pour chaque section, vous pouvez définir un format et une orientation de papier différents, des marges différentes, des en-têtes et des pieds de page différents, etc. Il en résulte des documents complexes et magnifiquement conçus. Les sections peuvent être manipulées par code avec la commande WP Get sections, qui permet de récupérer une collection de sections dans votre document. La commande WP Get section peut être utilisée pour récupérer la section en cours. Pour modifier les attributs d’une section spécifique, vous pouvez transmettre la référence de la section aux commandes WP SET ATTRIBUTES et WP GET ATTRIBUTES. Vous pouvez également créer des sous-sections avec du code en utilisant la nouvelle commande WP Create subsection. Lire la documentation
Les tableaux volumineux sont désormais automatiquement affichés sur plusieurs pages. Il n’est plus nécessaire de compter les lignes pour vérifier la taille d’une page ou son orientation, car les tableaux sont divisés dynamiquement lorsqu’un saut de page ou de colonne se produit. La commande WP INSERT BREAK a été mise à jour pour prendre en charge une nouvelle constante : wk paragraph break. Lire la documentation
Support des expressions 4D dans les images ancrées
Une expression 4D valide peut être associée à une image ancrée grâce au nouvel attribut wk expression image, ce qui offre encore plus de souplesse. Il suffit de définir cette constante pour toute image ancrée afin de définir une méthode qui renvoie une image. Lire la documentation
Obtenir des coordonnées dans un document 4D Write Pro
Vous pouvez désormais obtenir des coordonnées dans un document 4D Write Pro. La commande WP Get position renvoie plus d’informations concernant la position actuelle d’une plage ou d’une référence d’élément à l’aide de deux nouveaux attributs : bounds et rangeHeight. Le premier attribut décrit le rectangle entourant une plage en fonction de son type (soit « type par défaut » (caractères), « type paragraphe », « type tableau » ou « type image »). Il possède également ses propres attributs : haut, bas, gauche et droite. Le second attribut décrit la hauteur du rectangle de délimitation de l’objet. Lire la documentation
Les expressions de tables et de champs insérées dans les documents 4D Write Pro prennent désormais en charge la définition de la structure virtuelle de la base de données. Ceci est réalisé grâce aux commandes SET TABLE TITLES(…;*) et SET FIELD TITLES(…;*). L’éditeur de formules prend également en charge la structure virtuelle, et comme 4D définit automatiquement l’interface utilisateur en fonction des paramètres du système, l’éditeur de formules s’affiche dans la langue de l’utilisateur. Lire la documentation
Liens dans un document 4D Write Pro
WP SET LINK vous permet de définir des URL et vous donne également la possibilité d’invoquer une méthode depuis votre application 4D (avec des paramètres) ou de cibler des signets depuis votre document. La nouvelle commande WP Get links renvoie une collection de tous les liens d’un document, en un seul appel. Chaque lien de la collection est un objet avec une description du lien dans ses attributs. Lire la documentation
Les propriétés des vues peuvent être manipulées par programmation. La commande WP SET VIEW PROPERTIES permet de définir dynamiquement une ou plusieurs propriétés d’affichage de la zone 4D Write Pro. Les paramètres peuvent être retournés dans un objet avec toutes les propriétés de la vue via la commande WP Get view properties. Lire la documentation
Les onglets peuvent être définis avec une collection de chaînes de caractères, des valeurs numériques ou même une collection d’objets ! Si vous avez seulement besoin de modifier les valeurs par défaut des onglets, vous pouvez utiliser un objet avec la nouvelle constante wk tab default (ajoutée spécifiquement dans ce but). Lire la documentation
Plus de cibles et de commandes renommées
Les commandes listées ci-dessous ont été étendues pour accepter n’importe quel type de cible comme premier paramètre. Elles peuvent toujours utiliser une plage, mais maintenant elles peuvent aussi utiliser une référence (en-tête, corps, pied de page), un élément (image, paragraphe), ou le document entier comme cible :
- WP SET TEXT
- WP INSERT BREAK
- WP INSERT DOCUMENT
- WP INSERT PICTURE
- WP Insert table
- WP SET ATTRIBUTES
- WP GET ATTRIBUTES
En outre, plusieurs commandes ont été renommées :
Ancien nom | Nouveau nom |
WP Create Paragraph range | WP Paragraph range |
WP Create Picture range | Gamme d’images WP |
WP Create range | Gamme de texte WP |
WP Create Table range | Gamme WP Table |
Gamme WP Get bookmark | WP Bookmark range |
WP Get selection | WP Plage de sélection |
Travailler avec des documents .xlsx à l’aide de 4D View Pro
Les commandes existantes de 4D View Pro , VP IMPORT DOCUMENT et VP EXPORT DOCUMENT, ont été améliorées. Elles prennent désormais en charge les fichiers utilisant l’extension .xlsx (Microsoft Excel). Il vous suffit de passer le chemin de votre fichier aux commandes pour être opérationnel. Lire la documentation
Une barre d’outils de style ruban riche en fonctionnalités
Une puissante barre d’outils de style ruban est fournie pour améliorer l’interface utilisateur de 4D View Pro. Elle vous permet d’organiser les fonctionnalités de 4D View Pro en un ensemble d’onglets, afin d’améliorer la découverte des fonctions et d’accéder rapidement aux différentes commandes. Il convient de mentionner que cette barre d’outils introduit également de nouvelles fonctions telles que les options d’exportation PDF et CSV. Lire la documentation
Utilisation de méthodes et de champs de base de données
La sécurité de votre base de données est renforcée car vous avez désormais encore plus de contrôle sur les données que vous choisissez de mettre (ou non) à la disposition de vos utilisateurs finaux, ainsi que sur les champs ou les méthodes qui permettent d’y accéder.
Les commandes et les variables ne peuvent pas être appelées directement à partir d’une cellule pour des raisons de sécurité, mais on peut y accéder par des méthodes autorisées qui renvoient la valeur de la commande ou de la variable. Les méthodes peuvent être autorisées avec la commande SET ALLOWED METHODS, les tableaux ou les champs pouvant être déclarés comme structures virtuelles avec les commandes SET TABLE TITLES et SET FIELD TITLES. Les variables, ainsi que les commandes 4D, doivent être contenues dans une méthode autorisée. Lisez la documentation
Contrôlez les paramètres de votre méthode 4D
VP SET ALLOWED METHODS est une nouvelle commande qui vous permet de spécifier les paramètres d’une méthode 4D, son nom, son type, et d’inclure un résumé. Vos méthodes peuvent désormais être plus informatives et descriptives pour les utilisateurs finaux. Lire la documentation
Vous pouvez désormais définir des options d’impression spécifiques pour chaque feuille avec la commandeVPSET PRINT INFO . Ces options sont utilisées pour préparer le document avant une exportation PDF ou une impression. Pour exporter un document au format PDF, vous pouvez utiliser la commande VP EXPORT DOCUMENT . Les informations de VP PRINT INFO seront utilisées pour incorporer automatiquement toutes les polices utilisées dans votre document, dans le fichier PDF généré. Pour l’impression, la commande VP PRINT peut être utilisée. Lire la documentation
La commande VP Convert to picture vous permet de convertir une feuille ou une partie de feuille en SVG. Le SVG peut ensuite être utilisé à l’intérieur d’un formulaire 4D pour être imprimé dans le cadre d’une tâche d’impression 4D, avec d’autres formulaires ou données. Lire la documentation
Ajout de nouveaux événements à la liste des propriétés
Un nouvel ensemble d’événements de formulaire 4D View Pro est disponible et répertorié dans la liste des propriétés. Ils renvoient des informations spéciales auxquelles on peut accéder avec la commande FORM Event: « On Column Resize », « On Row Resize », « On Clicked », « On Double Clicked », « On Header Click », « On Selection Change », et « On After Edit ». Lorsque l’événement se produit, toutes les informations associées peuvent être récupérées dans l’objet renvoyé par la commande FORM Event. Lire la documentation
Coder une plage dans 4D View Pro
La création de plages via le code est désormais possible. De nouvelles commandes sont disponibles pour vous permettre de définir un objet de plage pour manipuler vos cellules : VP Cell, VP Cells, VP Column, VP Row, VP All, VP Combine ranges, et VP Name. Lire la documentation
Obtenir et définir le contenu des cellules
Un nouvel ensemble de commandes pour remplir vos documents par programmation est disponible : VP SET VALUE, VP SET BOOLEAN VALUE, VP SET DATE TIME VALUE, VP SET DATE VALUE, VP SET TIME VALUE, VP SET NUM VALUE, VP SET TEXT VALUE, VP SET FORMULA, VP SET FIELD, VP Get value, VP Get formula. Lire la documentation
Nommez vos plages et vos formules
Un nouveau concept est introduit : les plages et les formules nommées. Vous pouvez créer deux types de noms avec la programmation :
Le premier fait référence à une plage de cellules où vous pouvez appliquer un nom lisible aux cellules qui vous intéressent avec la commande VP ADD RANGE NAME.
Le second fait référence à une formule avec la commande VP ADD FORMULA NAME pour remplacer les calculs par des noms lisibles dans vos feuilles de calcul. Elle crée également une constante et simplifie la lecture des calculs dans votre feuille de calcul. Lire la documentation
Gérer les sélections et la cellule active
Un ensemble de commandes est inclus pour vous aider à définir et obtenir la cellule active ou la ou les sélections dans vos documents :
- VP Obtenir la cellule active
- VP Get selection
- VP SET ACTIVE CELL
- VP SET SELECTION
- VP ADD SELECTION
- VP RESET SELECTION
Si vous souhaitez visualiser une cellule à un endroit précis de votre zone 4D View Pro(par exemple, en haut à gauche ou en bas à droite), vous pouvez utiliser la commande VP SHOW CELL . Lire la documentation
Utiliser les collections pour lire et écrire dans 4D View Pro
Quatre nouvelles commandes sont disponibles pour vous permettre de lire un grand nombre de valeurs ou de formules différentes plus facilement, plus rapidement et en même temps via des collections : VP SET VALUES, VP Get values, VP SET FORMULAS et VP Get formulas. Pour définir des valeurs ou des formules dans des cellules, il suffit de créer une collection dont chaque élément représente une ligne. Chaque ligne est une collection de valeurs de cellules à définir dans les colonnes. Pour la lecture, vous pouvez passer une plage de cellules aux valeurs VP Get. La commande renvoie les valeurs dans les collections correspondantes. Lire la documentation
Vous pouvez personnaliser de manière programmatique le style de vos documents 4D View Pro. Trois options différentes sont disponibles. Vous pouvez utiliser les commandes :
- les commandes de style par défaut pour définir le style général d’une feuille avec les commandes VP SET DEFAULT STYLE et VP Get default style, ou bien
- les commandes de feuille de style pour définir les styles personnalisés fréquemment utilisés avec les commandes VP ADD STYLESHEET, VP REMOVE STYLESHEET, VP Get stylesheet, et VP Get stylesheets, ou
- des commandes de style de cellule pour définir le style de cellules spécifiques avec les commandes VP SET CELL STYLE et VP Get cell style.
En outre, la nouvelle commande VP SET BORDER a été ajoutée pour vous permettre de gérer les bordures d’une plage. Lire la documentation
Les versions R en profondeur