Quoi de neuf dans 4D v18

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 blank 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 versionsblank

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.

Crypter via le MSC

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

Crypter avec les commandes 4D

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 :

Créer, modifier, supprimer

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

Formateurs de données

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

Recherche multi-critères

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

Requêtes restreintes

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

Gestion des relations blank

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

Utilisez vos propres icônes

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 :

Datastore à distance blank

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

Enregistrer les requêtes ORDA

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

Nouvelle méthode pour ordonner une sélection d’entités

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 blank

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é blank

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 blank

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 blank

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 blank

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 blank

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 blank

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

Plus de commandes thread-safe

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

Synchronisez vos processus

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 blank

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 blank

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

Instances multi-clients

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 4Dblank

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 SVGblank

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

Plus d’informations sur les processus web

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

Vous pouvez désormais définir le paramètre « methodName » dans la commande QR REPORT. Cette méthode est un callback qui s’exécute sur chaque événement géré :
  • 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 blank

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

4D Write Pro

Nouvelle barre d’outils

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 Problank

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).

Lire la documentation

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 blank

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 blank

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 blank

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

Règle verticale 4D Write Pro

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

Mise en page

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

Pagination des tableaux

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

Structure virtuelle

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

Gérer les propriétés des vues

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

Paramètres des onglets

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

Lire la documentation

4D View Pro

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

Impression et exportation PDF blank

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

Convertir en SVG blank

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 blank

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

Personnalisation du styleblank

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