Les nouveautés de 4D v17

Ce document est une compilation de toutes les fonctionnalités disponibles dans 4D v17, qui ont été introduites soit au cours du programme des versions R v16, soit dans la toute dernière étape de 4D v16R6 à 4D v17. Chaque section est associée à un article du blog pour vous guider à travers des exemples concrets. Ces articles de blog peuvent être consultés en cliquant sur le titre de la fonctionnalité.

Notez également que les sections avec l’étiquette blank sont liées aux toutes nouvelles fonctionnalités entre 4D v16R6 et 4Dv17.

Ce document est divisé en sept sections :

ORDA 

4D v17 introduit un concept innovant pour vous permettre de gérer votre base de données avec une approche orientée objet : ORDA (Object Relational Data Access).

Voici les fonctionnalités qui sont apparues avec cette version :

Créer, mettre à jour et supprimer des données blank

Avec ORDA, les opérations CRUD (Create, Read, Update and Delete) peuvent être effectuées sur votre base de données via une couche d’abstraction : le datastore, qui est un objet qui fournit une interface au modèle de base de données et aux données. Avec ORDA, les opérations CreateUpdate et Delete ne sont pas effectuées sur une sélection courante ou sur un enregistrement courant mais sur des entités :

  • Create : cela peut être réalisé en instanciant une nouvelle entité avec la méthode new(), puis en l’enregistrant avec la méthode save().
  • Update : effectué sur une entité en utilisant la même méthode save().
  • Delete : effectué sur une entité ou une sélection d’entités à l’aide de la méthode drop().

Lire la documentation

 

Query database blank

Avec ORDA, le datastore est un objet qui fournit une interface au modèle de base de données et aux données via les objets. De même, vous ne gérez plus la sélection courante et l’enregistrement courant pour chaque table mais plutôt des entités qui sont des objets. Vous pouvez facilement interroger plusieurs tables liées, gérer les relations récursives sur une même table et utiliser plusieurs opérateurs logiques dans une même requête. 4D v17 propose plusieurs méthodes pour interroger votre dataClass (i.e. table) : vous pouvez soit fournir la requête sous forme de chaîne unique ou fournir la requête et les valeurs séparément à l’aide d’espaces réservés ou fournir la requête et les valeurs séparément à l’aide d’une collection créée dynamiquement. Lire la documentation

 

Aller-retour entre la sélection courante et ORDA blank

ORDA peut être intégré avec votre code existant ! Il est possible de mettre à jour la sélection courante d’une table à partir d’une sélection d’entités ainsi que d’obtenir une sélection d’entités à partir de la sélection courante d’une table ! De nouvelles commandes sont ajoutées à cet effet : la commande UTILISER ENTITY SELECTION pour mettre à jour la sélection courante dans la table correspondante, et la commande Creer entity selection pour obtenir une sélection d’entités liées aux DataClass correspondantes. Lire la documentation

 

Convertir en entités, objets et collections blank

Avec ORDA, vous pouvez séparer les sélections d’entités et les entités de la base de données pour les traiter séparément. En outre, vous pouvez déplacer des objets et des collections existants vers la base de données. Donc, pour exporter une entité vers un objet, utilisez la méthode toObject() ; et la méthode toCollection() si vous souhaitez exporter une sélection d’entités vers une collection.  L’importation d’une entité via un objet peut être effectuée grâce à la méthode fromObject() et l’importation d’une sélection d’entités via une collection peut être réalisée avec la méthode  fromCollection()Lire la documentation

 

Gérer le verrouillage

Verrouillage optimiste blank

ORDA vous permet de travailler avec un verrouillage optimiste en fournissant un ensemble complet de méthodes pour gérer les erreurs pouvant survenir lors de l’enregistrement d’une entité dans la base de données. Le processus est simple. Après avoir rechargé l’entité à partir de la base de données avec la méthode reload(), la méthode touchedAttributes() vous permet de savoir quelles propriétés ont été modifiées depuis le dernier chargement ou à la sauvegarde, et enfin, vous pouvez comparer les deux entités en utilisant la méthode diff()Lire la documentation


Verrouillage pessimiste blank

Outre le verrouillage optimiste, ORDA vous permet également de travailler avec le verrouillage pessimiste en utilisant la méthode lock() qui verrouille une entité, de sorte que l’enregistrement d’une référence sur cette entité dans d’autres process échouera jusqu’à ce que l’entité soit déverrouillée. Donc désormais, il n’est pas nécessaire de vérifier si une entité est verrouillée avant de la charger, car lorsque vous essayez de la mettre à jour, la méthode save() retournera un état détaillé indiquant les raisons de verrouillage. Lire la documentation

 

Gérer les entités dans la sélection d’entités blank

ORDA fournit des méthodes simples pour créer et ajouter des sélections d’entités, ainsi que des méthodes pour se déplacer parmi les entités dans un objet sélection d’entités, ce qui vous permet de gérer plusieurs sélections d’entités en même temps et de les parcourir indépendamment. Une sélection d’entités est créée à l’aide de la méthode newSelection(), et les entités y sont ajoutées avec la méthode add(). Une sélection d’entités fournit des méthodes first() et last() pour obtenir la première et dernière entité, et une entité fournit les méthodes previous() et next() pour obtenir l’entité précédente et la suivante. Lire la documentation

 

Opérations logiques sur des sélection d’entités blank

Les opérateurs logiques peuvent être utilisés sur une sélection d’entités, vous permettant d’obtenir l’intersection, l’union ou la différence entre deux sélections d’entités comme avec les ensembles dans le langage classique.  Lire la documentation

 

Calcul sur les sélections d’entités blank

ORDA fournit une fonctionnalité intéressante pour canaliser les données à travers des filtres et obtenir des valeurs agrégées. Elle fournit un ensemble d’opérations d’agrégation qui examinent et effectuent des calculs sur les ensembles de données. Par exemple, les méthodes sum(), average(), count(), min() et max() sont utilisées pour effectuer des opérations que leurs noms décrivent ! Lire la documentation

Langage 4D

Voici les plus grandes améliorations que nous avons apportées au langage 4D pour rendre votre expérience de programmation beaucoup plus simple et intuitive :

Notation objet

La fonctionnalité permettant la notation objet modifie radicalement la façon dont vous écrivez du code et utilisez le moteur de base de données, votre codage est rendu plus rapide et plus facile à comprendre. Par exemple, vous pouvez simplement écrire $myobject.attribute.subattribute:=5 ou accéder à un attribut avec $person.children[2].firstname, vous pouvez également utiliser la notation objet en tant qu’expression. Par exemple, créez un objet de formulaire comme une variable texte et affectez directement l’attribut de l’objet, par exemple [person]relatives.grandfather.grandfather.firstname. Il n’est plus nécessaire d’utiliser OB Lire récursivement pour lire la valeur et l’affecter à une variable temporaire, juste pour l’afficher. L’un des avantages de la notation objet est l’utilisation de valeurs et propriétés indéfinies, car le langage 4D accepte maintenant des valeurs non définies n’importe où dans une expression. Et chaque fois que vous affectez une valeur indéfinie à une variable, elle sera définie sur une valeur par défaut en fonction de son type. Cela signifie que la lecture de la propriété d’un objet non existant ne générera pas d’erreur et n’arrêtera pas l’exécution du code. Lire la documentation 

 

Collections et objets partagés 

Les objets partagés et les collections partagées constituent un moyen simple et efficace de partager des informations entre des process préemptifs. Les objets partagés et les collections partagées se comportent comme les autres, sauf qu’ils doivent être déclarés comme “partagés” lors de leur instanciation avec les nouvelles commandes suivantes : Creer objet partage et Creer collection partagee. Une fois instanciés, ils peuvent être utilisées directement, comme n’importe quelle autre variable, pour la lecture. Et pour l’écriture ou la modification, ils doivent être entourés des mots-clés Utiliser et Fin utiliser. Lire la documentation

 

Nouvel itérateur : Pour chaque / Fin de chaque blank

Un nouvel itérateur a été ajouté dans le langage 4D : Pour chaque / Fin de chaque, pour vous permettre de boucler sur des types de données avancés tels que des collections, et il est nécessaire d’avoir une connaissance préalable du nombre d’éléments appartenant à la collection avant d’entrer dans la boucle. Il peut également être utilisé pour itérer sur les propriétés de l’objet. Cela est utile si vous voulez écrire du code générique, sans connaître à l’avance les noms des propriétés. Lire la documentation

 

Collections

La collection est un nouveau type ajouté au langage 4D. Les collections sont flexibles et peuvent accélérer votre temps de développement. A première vue, une collection ressemble à un tableau, mais si un tableau  est une liste très optimisée de valeurs de même type (Tableau Entier long, Tableau Texte…) une collection est une sorte de conteneur qui stocke une liste de valeurs de types différents (un Entier long, puis un Texte, puis un Numérique, puis une Image, un Objet, voire une autre Collection, etc) ; et elles peuvent être consultées avec la notation objet. La commande  Creer collection crée une nouvelle collection vide ou pré-remplie. Et afin de faciliter la manipulation des données, de nombreuses nouvelles méthodes, à utiliser avec la notation objet, sont fournies. Ces méthodes permettent, par exemple, d’ajouter ou de supprimer des éléments, de trier la collection, et bien plus encore. Plus de 40 nouvelles méthodes sont déjà disponibles. En voici quelques-unes : pop(), push(), concat(), resize(), query(), slice(), …  Lire la documentation

 

Commande Null

La nouvelle commande Null peut être utilisée pour vérifier si un attribut d’objet ou un élément de collection a une valeur inconnue ou manquante (attention à la différence entre la valeur  0 ou une chaîne vide “” avec une valeur non-définie). Il permet également de définir une valeur d’attribut  à “inconnu”. Cette commande peut être utilisée avec la notation objet. Lire la documentation 

 

Développer avec des objets

Dates à l’intérieur des Objets 

Les dates peuvent maintenant être définies comme des dates et non comme des chaînes dans un Objet, rendant l’utilisation des dates dans les objets plus facile et plus intuitive. Ainsi  OB FIXER et OB Lire peuvent être utilisées sans nécessiter la constante Est une date, et la notation objet peut leur être appliquée comme n’importe quel autre objet. Pour utiliser les dates dans les objets, cochez simplement l’option “Utiliser le type date au lieu du format date ISO dans les objets” de la page  Compatibilités dans les Propriétés de la Base.  Lire la documentation

Support des images dans les Objets

Les images peuvent désormais être stockées dans un champ Objet ou dans une variable Objet. Les commandes OB Lire  et OB FIXER prennent en charge le nouveau type Est une image et permettent de stocker une image dans un champ Objet. De plus la notation objet peut également être utilisée. Lire la documentation 

Valider un objet JSON

Une nouvelle option a été ajoutée pour vous aider à réduire votre temps de débogage lors de l’analyse des chaînes JSON. Le paramètre optionnel * de JSON Parse crée des informations de débogage supplémentaires (propriété __symbols) qui fournit le chemin, la position de la ligne et le décalage de ligne de chaque propriété et sous-propriété de l’objet. Même si un objet est bien formé, il peut ne pas remplir les spécifications demandées ou les normes de contenu. La nouvelle commande JSON Valider vous permet de vérifier si la structure de l’objet correspond à une spécification donnée. (JSON schema).  Lire la documentation

Un moyen facile d’initialiser un objet

La commande Creer objet vous permet de créer un objet vide ou de le créer avec des propriétés et valeurs initiales dans une seule ligne de code.  Lire la documentation

Interroger une liste d’éléments dans un seul objet

Il est maintenant possible de rechercher dans un tableau à l’intérieur d’un objet en utilisant des arguments liés. La commande CHERCHER PAR ATTRIBUT permet l’exécution de requêtes complexes dans une liste d’éléments dans un même objet. Lorsque vous recherchez dans les tableaux d’attributs plusieurs arguments de requête joints par l’opérateur ET, vous avez la possibilité  de choisir d’obtenir les enregistrements où les arguments correspondants se trouvent dans au moins un élément ou dans le même élément.  Lire la documentation

Trier les enregistrements par attribut d’objet

Il est désormais possible de trier les enregistrements en fonction d’un attribut d’objet spécifique lors de l’affichage d’une sélection par exemple dans une list box grâce à la nouvelle commande TRIER PAR ATTRIBUT. Lire la documentation

 

Multi-threading préemptif

Le multi-threading préemptif permet à votre application de tirer pleinement parti des ordinateurs multi-coeurs. Par conséquent, vos applications s’exécutent plus rapidement et peuvent prendre en charge plus d’utilisateurs connectés. Plus de vingt commandes existantes ont été améliorées afin qu’elles de pouvoir être utilisées dans des process préemptifs. Lire la documentation

 

Formulaires dynamiques

Il est maintenant possible de créer et d’utiliser des formulaires dynamiques. Stockés dans un format texte (JSON), ils ouvrent une large liste de nouvelles opportunités : créer des formulaires entièrement adaptés au contexte de l’utilisateur final, partager le même formulaire entre plusieurs bases de données. La description textuelle du formulaire peut être enregistrée dans un objet 4D ou un fichier. Ensuite, au moment de l’exécution, les formulaires peuvent être chargés. Les commandes suivantes ont été améliorées pour qu’un objet 4D ou un chemin d’accès à un fichier JSON puisse être passé : Creer fenetre formulaire, DIALOGUE, FORM FIXER ENTREE, FORM FIXER SORTIE, OBJET FIXER SOUS FORMULAIREOBJET LIRE SOUS FORMULAIRE, FORM CHARGER, Imprimer ligne. Lire la documentation

 

Communication simplifiée entre les formulaires

Débarrassez-vous de votre code complexe et des variables globales en liant un objet à un formulaire et utilisez-le en interne avec la nouvelle commande Form. Tout ce que vous avez à faire est de passer des paramètres dans un objet à un formulaire en utilisant la commande DIALOG. Toutes les propriétés de cet objet seront alors disponibles depuis le formulaire via la commande Form. Ceci est également valable pour les sous-formulaires. Lire la documentation

 

Nouvelles possibilités de programmation avec des actions standard

Les actions standard – telles que First Record  ou color?value=red  – peuvent être affectées à un bouton ou à un libellé de menu dans l’interface utilisateur ou par programmation. L’un des avantages est que 4D gère automatiquement le libellé de menu ou la désactivation du bouton lorsque l’action n’est pas applicable. En outre, deux nouvelles commandes ont été ajoutées au langage 4D pour gérer facilement les actions standard en programmant :

  • APPELER ACTION peut être utilisé pour déclencher n’importe quelle action standard, éventuellement dans le contexte cible (formulaire courant ou formulaire principal).
  • Pour savoir si une action standard est applicable et valide dans le contexte courant, vous pouvez utiliser la commande Lire info action.

Lire la documentation

 

Contrôle de priorité du gestionnaire de cache

4D 64-bit inclut un gestionnaire de cache entièrement optimisé basé sur un mécanisme de gestion de priorité automatique pour les objets de la mémoire cache. Un contrôle total sur la priorité est donné pour gérer les objets dans la mémoire cache, permettant un réglage précis.

Pour une utilisation avancée et des cas spécifiques, vous pouvez personnaliser les priorités du cache en utilisant deux ensembles de commandes 4D :

Lire la documentation

 

Sécurité

4D v17 fait un pas de géant en matière de sécurité avec les améliorations ci-dessous :

Pour plus de détails sur les outils et techniques intégrés impliqués dans la création d’un environnement sécurisé pour vos applications professionnelles, veuillez consulter notre Guide de sécurité.

Classement A+ pour les sites web 4D blank

Il est maintenant possible d’obtenir le classement A+ (taux le plus élevé) de SSL Labs pour vos sites web, en activant simplement la fonctionnalité HSTS (HTTP Strict Transport Security) sur votre serveur Web 4D ! HSTS permet aux serveurs web de déclarer que les navigateurs ne doivent interagir qu’avec des connexions HTTPS sécurisées. Une fois activé, le serveur Web 4D ajoute automatiquement des informations relatives à HSTS à tous vos en-têtes de réponse. Lorsqu’un navigateur reçoit la réponse initiale du serveur Web 4D avec les informations HSTS, il l’enregistre. A partir de ce moment, toutes les futures requêtes HTTP seront automatiquement transformées en HTTPS. Et vous pouvez spécifier la durée pendant laquelle le navigateur doit stocker ces informations avec l’option Web HSTS max ageLire la documentation 

 

Activation de Perfect Forward Secrecy sur le serveur web de 4D

La sécurité par défaut du Serveur web de 4D a été augmentée en prenant en charge Perfect Forward Secrecy (PFS). Cette implémentation fournit à votre application une meilleure conformité pour certaines fonctions de sécurité réseau, ainsi qu’un meilleur classement des tests d’audit de sécurité web. PFS est automatiquement activé lorsque TLS est activé sur le serveur. La commande WEB Lire infos serveur peut être utilisée pour s’assurer que PFS est activé. La valeur de l’attribut  perfectForwardSecrecy est “True” lorsque toutes les conditions requises pour utiliser PFS sont remplies. Gardez à l’esprit que l’algorithme RC4 est désormais obsolète dans le serveur web de 4D, suite à des problèmes de sécurité connus. Lire la documentation

 

Sécurité renforcée pour le serveur web 4D

4D prend en charge la sécurité de la couche réseau – Transport Layer Security (TLS v1.0, TLS v1.1, and TLS v1.2) pour activer les communications cryptées entre les clients et les serveurs. La version minimale prise en charge par défaut est TLS v1.2, les anciennes versions seront rejetées car elles ne pourraient pas être sécurisées. Mais si vous souhaitez prendre en charge les anciens navigateurs (ou outils) qui ne prennent pas en charge TLS v1.2, vous pouvez réduire le niveau de sécurité avec le nouveau sélecteur Min version TLS pour les commandes Lire parametre base et FIXER PARAMETRE BASELire la documentation

 

Vérification de hachage et de mot de passe

Le mécanisme de hachage est idéal pour stocker les mots de passe. Deux nouvelles commandes ont été créées pour générer et vérifier les mots de passe hachés : Generer hash mot de passe et Verifier hash mot de passe. Ces deux commandes sont basées sur l’algorithme bcrypt, qui est lent de par sa conception. Ainsi, les attaques par force brute sont plus lentes et les impacts sont minimisés. Lire la documentation

 

Support SHA-2

Les fonctions digest sont pratiques lorsqu’il s’agit de vérifier l’intégrité des données lors des échanges ou des comparaisons de données. La commande Generer digest a été améliorée pour prendre en charge SHA-2. Elle supporte désormais deux algorithmes de la famille SHA-2 : SHA-256 et SHA-512. La syntaxe reste la même et les constantes Digest SHA256 et Digest SHA512 ont été ajoutées. Lire la documentation

 

Restituer par défaut la dernière sauvegarde de la base de données

Pour protéger vos données contre les dommages, l’option Restituer la dernière sauvegarde si la base est endommagéede la page “Sauvegarde” des Propriétés de la base de données est cochée par défaut pour les nouvelles bases de données, vous offrant le meilleur niveau de protection. Lire la documentation

4D Write Pro

 

Document à plusieurs colonnes blank

Vous pouvez maintenant créer des documents multi-colonnes avec 4D Write Pro et convertir vos documents 4D Write existants contenant plusieurs colonnes. Les commandes WP FIXER ATTRIBUTS et WP LIRE ATTRIBUTS ont été mises à jour pour prendre en charge de nouveaux attributs pour gérer les colonnes :

  • wk column count : définit le nombre de colonnes pour le document ou la sectiont
  • wk column spacing : définit l’espacement entre deux colonnes
  • wk column rule style, wk column rule color, wk column rule width : définit le style du séparateur de colonnes verticales (tirets, pointillés, etc.), la couleur ou la largeur.

Lire la documentation

 

Obtenir la position de n’importe quelle partie d’un document 4D Write Pro blank

Une nouvelle commande, dédiée à 4D Write Pro, est maintenant disponible : WP Lire position. Pour une plage, un élément ou une référence spécifique, cette commande renvoie une variable Objet avec cinq informations importantes sur les données : le numéro de section où la plage commence, le numéro de page, le numéro de colonne, le numéro de ligne et même la position dans la ligne du premier caractère de la plage. Lire la documentation

 

Accès par programmation aux éléments dans 4D Write Pro blank

La commande WP Lire elements renvoie une collection d’éléments de tout type (paragraphes, tableaux, images, etc.). Si une plage est passée, la commande retournera une collection contenant uniquement les éléments du type correspondant (sauf spécification dans le second paramètre). Sinon, la commande retourne une collection contenant tous les éléments disponibles, quel que soit leur type. Lire la documentation

 

Comment gérer facilement l’insertion de texte blank

La commande WP FIXER TEXTE vous permet d’écrire du texte à n’importe quelle position dans un document. Cette commande est utilisée de la même manière que la plupart des commandes “Insert” de 4D Write Pro. Elle prend trois arguments : l’objet plage (où le texte doit être inséré), le texte lui-même, puis une constante pour définir si le texte doit être placé avant, après ou remplacer la plage. Lire la documentation

 

Tableaux 4D Write Pro

Les tableaux arrivent dans 4D Write Pro ! De vrais tableaux, avec des cellules individuelles, si vous saisissez un texte volumineux dans une cellule, le texte sera automatiquement inséré et la largeur de la cellule restera la même. Vous pouvez créer un tableau à partir de zéro et modifier son style, ou ses colonnes, ses lignes et même ses cellules individuelles, tout cela par programmation.

La commande WP Inserer tableau vous permet de créer un tableau avec un certain nombre de cellules, de lignes, ou vide. Les commandes suivantes ont été créé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 nouvelles commandes sont thread-safe. Lire la documentation

 

Mécanisme d’actions standard étendu à 4D Write Pro

Plus de 80 nouvelles actions standard dédiées à 4D Write Pro ont été créées, vous permettant de gérer facilement les zones 4D Write Pro avec de nouvelles actions telles que Bold, Color, Spell Check, Freeze expression, Show System Font Picker Dialog… Plus de 80 actions sont disponibles. Il vous est maintenant possible de créer votre propre interface utilisateur 4D Write Pro sans écrire une ligne de code. Lire la documentation

 

Concevez votre propre barre d’outils en utilisant des actions standard

Créez facilement votre barre d’outils 4D Write Pro personnalisée, sans aucune programmation. Le mécanisme d’actions standard, simple mais très puissant, a été étendu de telle sorte qu’il peut également être affecté aux cases à cocher et aux menus contextuels.

L’utilisation d’actions standard vous fait bénéficier de mécanismes automatiques qui vous feront gagner du temps : l’activation / désactivation d’objet, automatiquement gérée par 4D en fonction du contexte et de l’état courant (pour les cases à cocher) ou de la valeur (pour les pop-up menus), est mise à jour en fonction de la sélection de texte en cours. Lire la documentation

 

Concevez votre propre menu contextuel pour 4D Write Pro

La commande Pop up menu dynamique a été mise à jour, ce qui vous permet de concevoir vos propres menus contextuels 4D Write Pro basés sur des actions standard. Lire la documentation

 

4D Write Pro et la manipulation des images

Images en position absolue

Un contrôle total sur l’insertion d’image à une position spécifique est fourni : devant ou derrière le texte, ancré à la page ou à des parties spécifiques du document (comme l’en-tête, le pied de page, la section). La commande WP Ajouter image ajoute l’image à la page, puis, pour définir sa position exacte ainsi que d’autres propriétés, vous pouvez soit utiliser des actions standard, soit utiliser l’ensemble de sélecteurs ajoutés aux commandes WP LIRE ATTRIBUTS et WP FIXER ATTRIBUTSLire la documentation

Prise en charge des expressions d’image

4D Write Pro prend désormais en charge les expressions renvoyant une image. La commande ST INSERER EXPRESSION a été améliorée pour prendre en charge toute expression renvoyant une image. Une expression peut être une variable 4D, un champ, une fonction ou une méthode définie par l’utilisateur. N’oubliez pas qu’avant d’utiliser une méthode 4D dans une expression, vous devez d’abord activer l’utilisation de cette méthode à l’aide de la commande FIXER METHODES AUTORISEES. Lire la documentation

Images d’arrière-plan en taille réelle

La création d’images d’arrière-plan remplissant toute la page est possible avec 4D Write Pro, grâce à l’attribut de background style pour le rognage de l’image et l’indication de son origine. Cet attribut peut être contrôlé via :

  • Le langage 4D : Vous pouvez utiliser la commande WP FIXER ATTRIBUTS et définir la nouvelle valeur de wk paper box pour le rognage et/ou l’origine de l’image d’arrière-plan.
  • Les actions standard : La commande APPELER ACTION peut être utilisée, ou en Mode Structure comme toute autre action standard.
  • Le widget 4D Write Pro : Lorsque vous sélectionnez l’option “Image d’arrière-plan” et “document”, les options de rognage et d’origine disposent d’une option supplémentaire : “Papier”.

Lire la documentation

 

Gérer les en-têtes et les pieds de page par programmation

Les en-têtes et les pieds de page de 4D Write Pro peuvent être gérés par programmation pour créer d’autres documents basés sur un modèle, grâce à de nouvelles commandes, divisées en deux catégories :

  • des commandes pour obtenir des références de n’importe quel en-tête, pied de page ou corps à l’intérieur des documents, qui peuvent être utilisées pour obtenir des plages associées, créer des documents pour une section spécifique : WP Lire entete, WP Lire corps et WP Lire pied.
  • des commandes pour déplacer le curseur à une position spécifique : WP Lire cadre est utilisé pour obtenir une référence au cadre où se trouve le curseur, tandis que WP FIXER CADRE place le curseur dans un cadre spécifique. 

Lire la documentation

 

Liens hypertexte 4D Write Pro

Vous pouvez ajouter un lien vers le logo de votre entreprise avec l’attribut wk link url. Des hyperliens peuvent être ajoutés sur des images, du texte ou une combinaison des deux, en utilisant simplement les commandes WP FIXER ATTRIBUTS et WP LIRE ATTRIBUTSLire la documentation

 

Utiliser les points de suite pour les tabulations

4D Write Pro fournit une fonctionnalité supplémentaire pour affiner votre gestion : les points de suite (les points répétés ou tout autre caractère dans une table des matières par exemple . Les points de suite peuvent être contrôlés soit à partir du menu contextuel lorsque vous cliquez sur une tabulation existante, soit par programmation grâce au nouveau sélecteur wk tab stop leadings et la commande  WP FIXER ATTRIBUTS. Lire la documentation

 

Règle horizontale 4D Write Pro

Utilisez la règle horizontale dans une zone 4D Write Pro pour ajuster les marges, mettre du texte en retrait ou aligner du texte, des graphiques, des tabulations et d’autres éléments dans vos documents. Lire la documentation

4D View Pro

 

Convertir des documents en 4D View Pro

La première étape vers la conversion de vos documents 4D View existants vers 4D View Pro est en cours. Grâce à la nouvelle commande VP Convert from 4D View, la plupart des propriétés et informations stockées dans les documents 4D View sont automatiquement converties, y compris la structure du document, les valeurs, les formats, les styles, les bordures et les formules ! Lire la documentation

 

Feuilles de calcul 4D View Pro

Grâce au nouvel objet de formulaire 4D View Pro, vous pouvez désormais créer des feuilles de calcul 4D View Pro. Créez un nouveau document avec VP NEW DOCUMENT, enregistrez-le sur disque avec VP EXPORT DOCUMENT ou dans la base de données en utilisant VP Export to object et en le ré-ouvrant avec VP IMPORT DOCUMENT ou VP IMPORT FROM OBJECTLire la documentation

 

Hauteur de ligne automatique dans une list box

4D View Pro prend en charge la hauteur de ligne variable automatique, ce qui signifie qu’une list box adapte la hauteur de chaque ligne à son contenu, afin que le texte ou l’image puisse être affiché en évitant tout problème d’encapsulation. Trois nouvelles propriétés sont disponibles dans la liste des propriétés : Hauteur de ligne automatiqueHauteur de ligne min et Hauteur de ligne max. Ces paramètres permettent aux développeur de définir si une list box utilise le mode de hauteur de ligne automatique, ainsi que la hauteur de ligne minimale et maximale autorisée. 
Ces paramètres peuvent également être gérés par programmation à l’aide de la commande LISTBOX FIXER PROPRIETE et de la nouvelle commande LISTBOX FIXER HAUTEUR LIGNE AUTOMATIQUELire la documentation

Plus de capacités de programmation

 

Obtenir des informations sur la machine blank

La commande Lire information systeme récupère tous les détails matériel et système de la machine en cours d’exécution, ainsi que les informations suivantes : quel système d’exploitation est utilisé, quel(s) processeur(s), la quantité de RAM disponible, etc. Lire la documentation 

 

Informations détaillées sur le serveur web de 4D

La commande WEB Lire infos serveur retourne les informations détaillées à propos de votre serveur web 4D. Cette commande possède un paramètre d’entrée facultatif, withCacheInfo, utile si les informations de cache du serveur web sont nécessaires. Cet attribut est fixé à “False” par défaut. Lire la documentation

 

Informations détaillées sur les utilisateurs et les process

La commande Lire activite process donne un instantané des sessions Utilisateur connectées, des process en cours associés et de tous les process en cours, y compris les process internes qui n’étaient pas accessibles par la commande  INFORMATIONS PROCESS. En outre, un attribut systemID est inclus pour identifier de façon unique tout process : process utilisateurs, process 4D ou process en attente. Vous pouvez également calculer, à partir des informations renvoyées sur les session/process, le temps CPU consommé par ce process depuis la connexion (en secondes) et le pourcentage d’activité (par exemple : 2 %). En plus de cela, la commande facilite l’analyse des résultatsLire la documentation

 

Informations détaillées sur les licences

La commande Lire information licence renvoie les informations détaillées sur les licences installées et les licences utilisées/disponibles. Lire la documentation

 

Meilleur gestion des extension de fichiers et de dossier

Deux commandes ont été créées pour faciliter la gestion des chemins d’accès aux fichiers et aux dossiers. La commande Chemin vers objet renvoie un objet contenant les propriétés spécifiques (dossier parent, nom de fichier ou de dossier, extension de fichier ou de dossier) du chemin que vous avez passé en paramètre. La commande Objet vers chemin crée un chemin à partir des attributs d’objet transmis dans le paramètre. Ainsi, pour composer un nouveau chemin, modifiez les attributs d’objet dont vous avez besoin et simplement recombinez-les.

Ces commandes doivent désormais être utilisée à la place des commandes obsolètes _o_Type document et _o_CHANGER TYPE DOCUMENTLire la documentation

 

Accès facilité aux fichiers de log

La commande Fichier 4D a été améliorée pour un meilleur accès aux fichiers de log. Maintenant, vous pouvez facilement trouver un fichier journal particulier plutôt que d’obtenir le dossier contenant tous les journaux. Un ensemble de nouveaux sélecteurs a été créé pour cette commande : Fichier log requêtesFichier log débogageFichier log sauvegardeFichier log vérificationFichier log compactageFichier log réparationFichier log débogage HTTP et Fichier log application généréeLire la documentation

 

Commande Timestamp

La commande Timestamp permet d’obtenir un horodatage UTC précis, incluant les millisecondes. Lire la documentation

 Expérience utilisateur

 

Saisie prédictive du code et suggestion pour les attributs d’objet

L’éditeur de méthode a été amélioré pour permettre la saisie prédictive du code pour les attributs d’objet. Une liste d’attributs suggérés est affichée, chaque fois qu’un caractère Point est tapé après un objet, pour améliorer la vitesse de codage et éviter les erreurs et les fautes de frappe. Le comportement de saisie semi-automatique peut être personnalisé à partir du panneau “Préférences 4D“, pour définir si la liste de suggestions sera automatiquement ouverte après avoir tapé un caractère Point (option cochée), ou seulement après avoir utilisé la touche tabulation (option décochée). Lire la documentation

 

Ligne de produits 4D Windows 64-bit altura-free

Toute la gamme de produits 4D Windows 64 bits ne dépend plus de la bibliothèque Mac2Win d’Altura. 4D Server Windows 64 bits était la dernière étape à finaliser et ceci est fait avec 4D v16 R4. Cela permet à 4D d’utiliser en interne des technologies modernes sur la plate-forme Windows et de vous faire bénéficier de nouvelles technologies telles que SDI. Lire la documentation

 

Prise en charge de SDI sous Windows

L’application 4D Windows utilisait une fenêtre principale grise (appelée MDI – Multiple Document Interface) avec toutes les fenêtres d’application affichées à l’intérieur (en tant que fenêtre enfants). Les applications SDI (Single Document Interface) ont une fenêtre principale qui peut ouvrir de nombreuses fenêtre supplémentaires indépendantes de la fenêtres principale. Elles peuvent ê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… C’est pourquoi 4D permet maintenant les deux modes sur Windows 64-bit pour les applications enginées. Lire la documentation

 

Messages d’aide sur les list box

Vous pouvez désactiver ou activer par programmation tous les messages d’aide dans une application 4D en utilisant la commande FIXER PARAMETRE BASE. Vous pouvez également définir le délai d’affichage et la durée maximale de l’affichage. Mais ce n’est pas tout, il est également possible de modifier dynamiquement le texte d’un message d’aide en utilisant la commande OBJET FIXER MESSAGE AIDE. En plus de cela, la commande LISTBOX LIRE POSITION CELLULE prend désormais en charge deux nouveaux paramètres optionnels (position x et y, en pixels) et renvoie les numéros de colonne et de ligne correspondants, pour vous aider à afficher des astuces sur une colonne, ligne ou cellule particulière d’une list box. Lire la documentation

 

Définir l’ordre de saisie par programmation

Définissez l’ordre de saisie des objets sur un formulaire par programmation, de sorte que vous puissiez contrôler quel sera le prochain objet du formulaire sur lequel sera mis le focus lorsque l’utilisateur appuie sur la touche TAB. Deux nouvelles commandes – FORM FIXER ORDRE SAISIE et FORM LIRE ORDRE SAISIE – vous permettent de définir dynamiquement et d’obtenir l’ordre de saisie des objets sur le formulaire courant pour le process en cours. Lire la documentation

 

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

L’interface a été amélioré pour une meilleure ergonomie pour les utilisateurs disposant de configurations réseau IPv6.  Lire la documentation

 

Exporter les résultats après un “Chercher dans le développement”

Le dialogue “Chercher dans le développement” a été doté de deux nouvelles fonctionnalités liées à la fenêtre de résultat. Un nouveau bouton a été ajouté pour permettre d’interrompre une recherche en cours. En outre, une nouvelle option de filtre est disponible afin que vous puissiez sélectionner les éléments de résultat que vous souhaitez conserver et supprimer tous les autres éléments à l’exception de cette sélection. De plus, les résultats d’une opération “Chercher dans le développement” sont affichés dans une liste hiérarchique. Vous pouvez également exporter les résultats de la recherche dans une fichier texte qui peut être ouvert plus tard dans une feuille de calcul par exemple, ce qui vous permet de partager ou de stocker facilement les résultats. Pour ce faire, il suffit de sélectionner la nouvelle option Exporter les résultats, disponible dans le menu d’options du dialogue.  Lire la documentation

 

Personnaliser la couleur de surbrillance pour une sélection dans une list box

Il est maintenant possible d’avoir un contrôle sur la couleur de surbrillance, pour chaque ligne ou même une cellule. Pour ce faire, une nouvelle option a été ajoutée à la liste des propriétés de la list box : Cacher surlignage sélection. Lorsque cette option est cochée, le développeur doit rendre les sélections des list box visibles à l’aide des options d’interface disponibles. Ensuite, il peut définir une couleur d’arrière-plan spécifique, des couleurs de police et/ou des styles de police par programmation pour personnaliser l’apparence des lignes sélectionnées. Cela peut être effectué à l’aide de tableaux ou d’expressions, selon le type de list box affichée (sélection ou tableau). Lire la documentation

 

Fenêtre à onglets en mode Développement 4D sur MacOS Sierra

Sur MacOS Sierra, les applications ont désormais la possibilité d’utiliser des fenêtres à onglets plutôt que plusieurs fenêtres. 4D Developer Edition 64-bit peut désormais profiter de la nouvelle fonctionnalité d’Apple dans l’environnement de développement grâce à la nouvelle option Fenêtre à onglets disponible dans les Préférences 4D. Lorsque cette nouvelle préférence est activée, les fenêtres de l’éditeur de méthodes et de formulaires peuvent être combinées en une seule fenêtre avec des onglets. Lire la documentation

 

Tableau croisé dans l’éditeur d’états rapides

L’éditeur d’états rapides 64-bit prend désormais en charge les tableaux croisés en plus des rapports en liste, permettant à vos utilisateurs finaux d’apprécier l’ergonomie lors de la conception d’états. Le choix du mode tableau croisé vous permet d’afficher votre état en tant que tableau croisé dynamique. Notez que la réouverture d’un état existant créé avec 4D 32-bit est toujours possible. Lire la documentation

 

Nouveau moteur de rendu pour les zones Web

Pour une meilleure expérience utilisateur et une meilleure prise en charge des nouvelles fonctionnalités HTML, 4D met à jour son composant interne pour les objets de la zone Web intégrée dans 4D 64-bit avec Blink (aussi utilisé par Google Chrome). Blink est le moteur de rendu existant le plus à jour et le mieux maintenu. Le passage au framework Blink ne nécessite aucun changement de code pour votre application et n’a strictement aucun impact sur les utilisations de la zone Web ; toutes les commandes et tous les événements des zones Web intégrées fonctionnent de la même manière que précédemment, à l’exception de quelques options qui ne sont pas prises en charge et qui sont ignorées. Lorsque l’option Utiliser le moteur de rendu Web intégré est cochée, 4D utilise WebKit dans les versions 32-bit et Blink dans les versions 64-bit.  Lire la documentation

 R-releases en profondeur

 
 
 

#s3gt_translate_tooltip_mini { display: none !important; }