Les nouveautés de 4D v16 R4

Notation objet

Les objets – introduits comme objet de langage avec 4D v14, supportés par le moteur de base de données avec 4D v15, puis perfectionnés avec 4D v16 – verront une évolution majeure de leurs fonctionnalités dans les versions à venir, et ce dès 4D v16 R4. Nous avons voulu tout d’abord rendre le codage plus facile et plus rapide, et dans un futur pas très éloigné, nous vous proposerons une révolution dans la façon d’écrire votre code et dans l’utilisation du moteur de base de données.

Avec la notation objet, publiée en préversion avec 4D v16 R4, vous pouvez simplement écrire $myobject.attribute.subattribute:=5 ou accéder à un attribut avec $person.children[2].firstname. Juste pour rappel, le statut de préversion signifie que vous pouvez vous amuser avec ces nouvelles fonctionnalités et apprendre à les manipuler, mais elles ne sont pas prêtes à être mises en production.

En fait, vous pouvez utiliser la notation objet comme une expression. Par exemple, vous pouvez créer un objet de formulaire comme une variable de type Texte et lui attribuer directement l’attribut : [Person]relatives.grandfather.grandfather.firstname. Il n’est plus nécessaire d’utiliser OB Lire récursivement pour lire la valeur et l’assigner à une variable temporaire, juste pour l’afficher.

Pour utiliser la notation objet, vous devez l’activer dans la page Compatibilité de la boîte de dialogue Paramètres de la base . Cette action est irréversible.

Lorsque vous activez cette fonctionnalité, vous devez savoir qu’il n’est plus permis d’utiliser des caractères spéciaux tels que des points (.) et/ou des crochets ([ ]) dans les noms de variables, de tables, de champs ou de méthodes projet. Pour vérifier que votre application est conforme avec la notation objet, vous pouvez exécuter l’action Vérifier l’application dans le CSM. Les éléments contenant des caractères interdits seront alors répertoriés dans le journal du CSM, afin que vous puissiez les retrouver facilement dans votre application et les renommer.

La notation objet est supportée dans:

  • L’éditeur de méthodes: L’utilisation de la notation objet est plus élégante, plus simple et plus intuitive dans la manipulation d’objets que d’utiliser OB Lire et OB Fixer.
    Vous pouvez créer, lire ou modifier directement des attributs d’objet, et même créer de nouveaux éléments dans un attribut de tableau d’objets simplement en l’utilisant. Si, par exemple, un tableau dans un objet comporte 3 éléments et vous écrivez dans l’élément 10, le tableau est automatiquement agrandi et les éléments manquants sont créés.
  • L’éditeur de formulaires : Vous pouvez utiliser la notation objet comme source de données d’objet de formulaire dans l’éditeur de formulaire. Les objets complexes peuvent être affichés comme des champs de saisie. En utilisant le langage, vous pouvez même créer dynamiquement un formulaire et simplement lier les widgets de formulaire aux attributs d’objet.
  • Le débogueur et l’explorateur d’exécution : Vous pouvez utiliser la notation objet dans le débogueur afin de tester et vérifier votre code.

Nouveau type Collection

4D v16 R4 introduit un nouveau type Collection dans le langage 4D. A première vue, une collection ressemble à un tableau, mais alors qu’un tableau est une liste hautement optimisée d’éléments de même type (Tableau Entier Long, Tableau Texte, …), une collection est une sorte de conteneur stockant une liste d’éléments de tout type (un entier long, puis un texte, puis un réel, puis une image, un objet, voire même une autre collection, etc…). Une collection est donc très flexible. Alors qu’un tableau nécessite moins de mémoire et peut être plus rapide, une collection est plus flexible et accélère votre temps de développement.

Vous pouvez imaginer un objet comme une liste d’attributs nommés, alors qu’une collection est une liste d’attributs sans nom, accessible avec un index. La commande Creer collection crée une nouvelle collection vide ou pré-remplie. Et les collections sont accessibles via la notation objet

Commande Null

La nouvelle commande Null peut être utilisée pour vérifier si un attribut d’objet ou un élément d’une collection a une valeur inconnue ou manquante (attention, une valeur non définie est différente d’une valeur 0 ou d’une chaîne vide “”). Elle permet également d’assigner une valeur inconnue à un attribut. Et bien sûr, elle peut aussi être utilisée avec la notation objet.

Support des images dans les objets

Les images peuvent être stockées dans un champ ou une variable objet. De nombreux développeurs utilisent un champ de type objet pour permettre à leurs utilisateurs d’améliorer la structure de la base de données avec des champs personnalisés, en y stockant alors toutes sortes d’informations. Il n’était pas possible d’y intégrer des images jusqu’à présent.

Les commandes OB Lire et OB FIXER ont été mises à jour pour supporter le nouveau type Est une image et pour permettre de stocker une image dans un champ objet. Et bien sûr, vous pouvez également utiliser la notation objet…

Valider les objets JSON

En travaillant avec des objets, vous allez tôt ou tard échanger des objets avec d’autres applications ou services – et pour ce faire, vous devez analyser des chaînes JSON. Tant que ces chaînes sont bien définies, tout se passe bien ; mais parfois elles ne le sont pas, et une nouvelle option peut réduire considérablement votre temps de débogage. Le paramètre * de la commande JSON Parse crée des informations additionnelles de débogage (propriété __symbols) qui fournissent le chemin d’accès, la position de la ligne et l’offset dans la ligne de chaque propriété et sous-propriété de l’objet. Ces informations peuvent être utiles à des fins de débogage.

Même si un objet est bien-formé, il pourrait ne pas répondre aux contraintes ou aux normes de contenu demandées. La nouvelle commande JSON Valider vous permet de vérifier si la structure de l’objet correspond à une spécification donnée (JSON schema).

4D Write Pro

Tableaux 4D Write Pro

Les tableaux arrivent dans 4D Write Pro. De vrais tableaux, avec des cellules individuelles. Si vous saisissez un long texte dans une cellule, les retours à la ligne se feront automatiquement et la largeur de la cellule restera la même. Vous pouvez créer un tableau à partir de zéro, ajouter du style pour le tableau dans son ensemble, ses colonnes, ses lignes, voire ses cellules individuellement, et tout cela par programmation.

La nouvelle commande WP Inserer tableau vous permet de créer un tableau en précisant le nombre de colonnes, de lignes, ou bien un tableau vide. Les commande suivantes ont été ajoutées pour vous permettre de gérer les tableaux dans votre document 4D Write Pro : WP Tableau ajouter ligne, WP Tableau lire lignes, WP Tableau lire colonnes, WP Tableau lire cellules. Toutes ces commandes sont thread-safe.

Hyperliens 4D Write Pro

Ajouter un lien vers le logo de votre entreprise ou le nom de votre entreprise est maintenant aussi facile que de mettre du texte en gras. Grâce au nouvel attribut wk link url , des hyperliens peuvent être ajoutés sur des images, du texte ou un mélange des deux, simplement en utilisant les commandes WP FIXER ATTRIBUTS et WP LIRE ATTRIBUTS.

Concevez votre propre barre d’outils avec des actions standards

Créez facilement votre barre d’outils 4D Write Pro personnalisée, sans aucune programmation. Le mécanisme des actions standards, simple mais très puissant, a été à nouveau étendu en 4D v16 R4. En effet, les actions standards peuvent maintenant être affectées aussi à des cases à cocher et des pop-ups/listes déroulantes.

L’utilisation d’actions standards vous permet de bénéficier de mécanismes automatiques qui économiseront votre temps : l’activation / désactivation de l’objet est gérée automatiquement par 4D selon le contexte et l’état courant (pour les cases à cocher) et aussi la valeur (pour les pop-ups/listes déroulantes) est automatiquement mise à jour par 4D en fonction de la sélection courante de texte.

Ligne 4D 64 bits Altura-free

Toute la ligne de produits 4D 64 bits ne dépend maintenant plus du tout de la librairie Mac2Win d’Altura. 4D Server Windows 64 bits était la dernière étape et c’est désormais chose faite avec 4D v16 R4. Ceci permet à 4D d’utiliser en interne des technologies modernes sur la plate-forme Windows et ainsi de vous faire bénéficier de nouvelles fonctionnalités telles que le mode SDI.

Support mode SDI sous Windows

Sous Windows, 4D utilisait une fenêtre principale (appelée fenêtre MDI) dans laquelle toutes les fenêtres de l’application étaient affichées (comme des fenêtres “enfant”). Les applications en mode SDI, comme Microsoft Outlook par exemple, ont une fenêtre principale mais permettent d’ouvrir de nombreuses fenêtres supplémentaires indépendantes de la fenêtre principale. Elles peuvent ainsi être déplacées sur d’autres écrans ; elles restent visibles même si la fenêtre principale est cachée, et ainsi de suite…

D’autre part, la fenêtre MDI a également des avantages pour certaines applications métiers, car toutes les fenêtres appartiennent à un même ensemble qui contitue alors l’application. Un bon exemple est Photoshop d’Adobe . C’est pourquoi 4D autorise les deux modes pour les applications fusionnées.

Feuille de calcul 4D View Pro

4D v16 R4 introduit la toute première étape pour la partie feuille de calcul de 4D View Pro en pré-version. Découvrez le nouvel objet de formulaire 4D View Pro, et les nouvelles commandes 4D View Pro associées. Créez un nouveau document avec VP NEW DOCUMENT, sauvegardez-le sur disque avec VP EXPORT DOCUMENT ou dans la base de données en utilisant VP Export to object. Ré-ouvrez-le ensuite avec VP IMPORT DOCUMENT ou VP IMPORT FROM OBJECT.

Fenêtre d’administration personnalisée du serveur

Une série de fonctionnalités en développement vous permettra de créer votre propre fenêtre d’administration du serveur, et ce afin de vous donner le contrôle sur les informations à afficher ou à laisser modifier à l’Administrateur.

Informations sur les process et les utilisateurs

Comme première étape, la nouvelle commande Lire activite process donne un instantané des sessions des utilisateurs connectés, des process liés en cours d’éxécution ainsi que de l’ensemble des process courants, y compris les process internes qui n’étaient pas accessibles via INFORMATIONS PROCESS. Vous pouvez également calculer, à partir de l’information de session/process renvoyée, le temps de CPU consommé par ce process depuis la connexion (en secondes) et le pourcentage d’activité (par exemple : 2%).

Informations détaillées sur les licences

La nouvelle commande Lire information licence retourne des informations détaillées sur les licences installées et les licences utilisées/disponibles.

Contrôle amélioré de l’affichage des messages d’aide

Tout simplement, vous pouvez par programmation désactiver ou activer tous les messages d’aide dans une application 4D avec la commande FIXER PARAMETRE BASE. Pour un usage plus avancé, vous pouvez également définir le délai avant l’affichage et la durée maximum de l’affichage, avec cette même commande. Mais ce n’est pas tout, il est aussi possible de modifier dynamiquement le texte d’un message d’aide en utilisant la commande OBJET FIXER MESSAGE AIDE.

Définissez par programmation l’ordre de saisie sur un formulaire

Cette fonctionnalité vous permet de définir sur un formulaire l’ordre de saisie par programmation, pour vous permettre de contrôler quel objet prendra le focus lorsque l’utilisateur appuiera sur la touche TAB. Deux nouvelles commandes – FORM FIXER ORDRE SAISIE et FORM LIRE ORDRE SAISIE – vous permettent respectivement de fixer et lire dynamiquement l’ordre de saisie des objets du formulaire courant dans le process en cours. Cette fonctionnalité est particulièrement utile lorsque vous créez les formulaires dynamiquement.

Amélioration de l’interface utilisateur liée à IPv6

4D v16 R4 fournit certaines améliorations d’interface pour les utilisateurs des configurations réseau IPv6.

Vous voulez en savoir plus ? Lisez tous les blog posts 4D v16 R4!