Les nouveautés de 4D v19 R4

langage 4D

“Return”, “CONTINUE”, “break”, ET bien PLUS encore !

Nous avons lu avec beaucoup d’attention vos besoins en matière d’améliorations du langage 4D sur le forum 4D, et nous les avons pris en compte !

  • Les instructions qui vous permettent de sauter un bloc de code :
    • Le mot-clé return termine l’exécution de la méthode ou de la fonction dans laquelle il apparaît et rend le contrôle à la méthode appelante. Il peut également retourner une valeur optionnelle.
    • Le mot-clé break met fin à la boucle qui le contient. L’instruction qui exécutée par la suite est celle qui suit immédiatement le corps de la boucle.
    • L’instruction continue met fin à l’exécution des instructions de l’itération courante de la boucle et poursuit l’exécution de la boucle à l’itération suivante.
  • Une évaluation en circuit court : dans une expression qui utilise un opérateur AND ou OR, une évaluation en circuit court signifie que le deuxième argument est exécuté ou évalué uniquement si le premier argument ne suffit pas à déterminer la valeur de l’expression. Pour ce faire, nous ajoutons deux nouveaux opérateurs :
    • && pour l’opérateur AND :
    • || pour l’opérateur OR
  • Un opérateur ternaire, qui est une condition suivie d’un point d’interrogation ( ? ), une expression à évaluer si la condition est vraie et suivie du caractère “deux-points” ( :), et une expression à évaluer si la condition est fausse : condition ? valeur Si vrai : valeur Si faux.

 

NOUVELLE COMMANDE POUR OBTENIR DES INFORMATIONS DÉTAILLÉES SUR LES LICENCES

Sous 4D v19 R4, une nouvelle commande fournit toutes les informations relatives à l’utilisation de votre licence : Lire utilisation licence. Nous avons également étendu nos journaux de log. Grâce à cette fonctionnalité, vous serez en mesure de suivre et d’optimiser l’utilisation des licences sur votre serveur et de planifier vos besoins futurs.

 

pLUS D’OPTIONS POUR LA COMMANDE saisissable

La commande OBJET FIXER SAISISSABLE a été améliorée, ce qui vous permet de mieux gérer un champ qui n’est pas modifiable. Comme troisième paramètre, la commande prend en charge un booléen ou un entier. 

  • Vous pouvez donc utiliser la commande comme avant, sans modifier votre code, en passant un booléen. Seule la propriété enterable est modifiée (False ou True).
  • Ou bien vous pouvez passer un entier. Vous pouvez ainsi définir les propriétés enterable et focusable de votre champ.

 

Interface utilisateur

DPI élevé SUR WINDOWS : prise en charge dES ÉCRANS HAUTE RÉSOLUTION

High DPI signifie High Dots Per Inch (points par pouce) et représente la densité des pixels ; plus le DPI est élevé, plus la densité des pixels est élevée. Sur les écrans 4K, la densité de pixels peut être si élevée que l’affichage rendrait toutes les icônes et commandes extrêmement petites. C’est pourquoi Windows vous permet de modifier l’échelle du texte, des icônes et des commandes. Sur les écrans 4K, cette fonction est activée par défaut. Nous avons d’abord pris en charge le DPI élevé sur Mac, mais il est désormais entièrement compatible avec Windows avec la v19 R4. Résultat ; vous obtenez une meilleure qualité de texte et d’image.

 
 

workers du systeme

lancer un process externe de maniere asynchrone

Une autre fonctionnalité très demandée est désormais disponible !
Vous avez parfois besoin d’exécuter des process en arrière-plan et d’effectuer des actions spécifiques basées sur son code de sortie dès qu’il est disponible, tout au long de l’exécution du process. Par exemple, pour afficher une barre de progression, 4D vous permet de lancer un process en arrière-plan avec la nouvelle classe 4D.SystemWorker et d’exécuter automatiquement des méthodes callback lorsque le process retourne des informations. Ainsi, si vous l’utilisez avec une interface, l’interface reste à l’écoute de votre utilisateur pendant que le process externe est en cours d’exécution, et vous pouvez afficher le résultat à votre client lorsque le process est terminé.

 

ORDA

Les alias

4D v19 R4 comporte un nouveau concept ORDA : les alias. Ils sont la suite logique et complémentaire des champs calculés. Comme son nom l’indique, un alias est un raccourci vers un objet existant du datastore. Ils sont définis dans l’entity dataclass comme les champs calculés. Si un champ calculé peut traiter n’importe quel calcul ou formule, un alias est quant à lui un simple raccourci, ce qui accélère et facilite le développement. Un exemple d’utilisation est de donner un accès facile aux champs liés (ce qui signifie cacher la complexité d’une base de données liée).

 

Desactivez la conversion par defaut de la  valeur null

Lorsque vous créez un nouveau champ dans votre base de données, 4D vous permet de choisir ou non de convertir les valeurs NULL en valeurs vides. Dans les nouveaux projets créés à partir de 4D v19 R4, 4D ne convertira plus par défaut la valeur NULL en données absentes.

Ceci est avantageux car ORDA est parfaitement conçu pour travailler avec des valeurs NULL, ce qui vous évitera de nombreux contournements.

 

 

gestion du verrouillage pessimiste via rest

Avec 4D v19 R4, vous pouvez utiliser l’API REST pour verrouiller ou déverrouiller une entité. Ceci est particulièrement utile pour :

  • Garder un code cohérent si vous avez l’habitude de travailler avec l’API REST. Il n’est pas nécessaire d’écrire une fonction dans les classes du modèle de données ORDA pour verrouiller/déverrouiller une entité.
  • Utiliser de manière fluide les verrouillages pessimistes avec l’API REST.

4D for Mobile

des Attributs d’objets pour des applications ameliorees

Vous pouvez actuellement utiliser quasiment tous les types d’attributs dans vos projets mobiles : texte, date, heure, nombres entiers. 4D v19 R4 en propose un autre : les attributs d’objet. Ils vous permettent d’afficher les champs d’objet dans votre application mobile à un format lisible par l’homme ou au format JSON. Les champs d’objet sont utilisés pour stocker diverses données dans votre application 4D ; désormais, ils sont facilement utilisables dans les applications mobiles. Qu’est-ce que cela signifie ? La création d’applications iOS et Android encore plus avancées est à portée de main.

 

AMELIORATIONS DANS LA GESTION DE DONNEES

Avec 4D v19 R4, la section Données a été améliorée pour vous fournir plus d’informations sur les données contenues dans votre application mobile. Vous obtiendrez par exemple le nombre exact d’entités et la taille des données pour chaque classe de données, ce qui vous évitera d’obtenir trop de données dans votre application mobile. Cette amélioration vous aidera également à vérifier la validité de votre requête en cliquant sur le bouton Valider. Vous obtiendrez un meilleur rendu visuel de la validation de vos requêtes, avec des messages d’erreur si la requête est incorrecte.

 

NOUVEAUTE CHEZ 4D for Android 

De nombreuses améliorations ont été apportées à 4D for Android, vous permettant de profiter de la même expérience premium que 4D for iOS. 4D v19 R4 vous fournit :

  • La prise en charge des relations 1 vers N : affichez les données relatives à un enregistrement dans le formulaire liste et le formulaire détaillé,
  • Actions en ligne : possibilité de modifier une entité ou une sélection d’entités en mode en ligne,
  • Et le formatage des champs objets : affichage des champs objets dans votre application mobile au format lisible par l’homme ou au format JSON.
 
 
 

4D Write Pro

Saut de page dans les lignes de tableau

4D v19 R4 est livré avec de nouveaux attributs permettant de mieux définir la mise en page des tableaux. Ils vous permettent de créer facilement des documents 4D Write Pro complexes, mais surtout des documents visuellement attrayants : dites bonjour aux sauts de page à l’intérieur des lignes de tableau. Ils vous sont utiles lorsque les cellules contiennent un texte plus long (ou plusieurs paragraphes). Il peut également être intéressant de diviser une cellule (et donc une ligne du tableau) en deux pour remplir l’espace disponible sur les pages des documents :

  • wk page break inside paragraph peut, bien entendu, être appliqué aux paragraphes, mais aussi à toute cible, telle que le document lui-même, une section, une plage de texte, etc. Dans tous les cas, l’attribut sera affecté aux paragraphes à l’intérieur de la cible. Il s’agit simplement d’une facilité de programmation.

 

  • wk page break inside table permet de diviser un tableau en deux parties (ou plus), la séparation se fait entre deux lignes du tableau (comme d’habitude).

 

  • wk page break inside row permet également de diviser un tableau, mais cette fois à l’intérieur des lignes. A noter que cette option est dépendante de la précédente. Si un tableau ne peut pas être divisé, ses lignes ne le peuvent pas non plus.

 

A noter que l’option de saut de page dans les lignes du tableau est disponible dans la barre d’outils et les widgets de la barre latérale.

prise en charge du mode sombre

Avec 4D v19 R4, 4D Write Pro passe en mode sombre. Vous pourrez enfin développer et déployer votre application en mode clair ou foncé sur macOS. Les derniers widgets de la bibliothèque sont compatibles en mode sombre (sur macOS) :

  • Barre d’outils de l’interface 4D Write Pro
  • Interface de 4D Write Pro
  • Zone de texte riche de la barre latérale

4D View Pro

options du Workbook

Lorsque vous créez un document avec 4D View Pro, vous avez souvent besoin d’affiner l’expérience utilisateur en masquant les onglets des feuilles, les barres de défilement, en désactivant le menu contextuel ou le glisser-déposer, etc. Toutes ces fonctionnalités et bien d’autres sont possibles avec la commande VP SET WORKBOOK OPTIONS.

 

Accelerez votre developpement avec les “templates”

La création de rapports ou de feuilles de calcul à partir de modèles existants accélère le développement. Tout comme un utilisateur final utilisant l’action de Copier-Coller, vous pouvez, en tant que développeur, avec 4D v19 R4, simplement “copier” une plage de cellules à partir d’un autre emplacement ou même d’une autre zone. La commande VP MOVE CELLS vous permet de copier/couper et coller une plage de cellules dans un autre emplacement, voire entre deux zones. Vous pouvez également copier une plage en la copiant dans un objet à l’aide de la commande VP Copy to object afin, par exemple, de l’enregistrer dans votre base de données. Vous pourrez ensuite coller cet objet lorsque vous en aurez besoin, à l’aide de la commande VP PASTE FROM OBJECT.

 
Editeur de code

PASSEZ RAPIDEMENT A DE NOUVELLES FONCTIONS DE CLASSE

Les classes, introduites avec 4D v18 R3, vous permettent d’organiser votre logique métier et de la séparer de l’interface utilisateur et ce, plus rapidement.

Les classes sont composées de plusieurs fonctions de différentes longueurs. Il n’est donc pas toujours facile de trouver la fonction à modifier ou de passer d’une fonction à l’autre. Il est possible d’utiliser l’explorateur, qui affiche les classes et les fonctions, mais lorsque vous êtes en train de coder dans la fenêtre de l’éditeur, vous souhaiteriez ne pas perdre de temps à changer de fenêtre.

Avec 4D v19 R4, la liste des fonctions de votre classe est affichée dans la barre d’outils de l’éditeur de code, ce qui vous permet de passer rapidement à une fonction spécifique. 

 

BaLISES de COMMENTAIRES

4D v19 R4 fait passer les commentaires à un niveau plus élevé, avec des balises de commentaires pour mieux organiser vos commentaires. Les balises sont utilisées pour classer les commentaires en plaçant simplement la balise au début de la ligne de commentaire. Nous avons mis trois balises à votre disposition :

  • MARK
  • TODO
  • FIXME

 

La balise MARK vous permet de diviser votre code en sections. Vous pouvez l’écrire de trois manières différentes. Les deux autres balises, TODO et FIXME, s’écrivent de la même manière. L’intérêt est qu’elles aient des icônes différentes dans la liste, ce qui vous permet d’organiser votre code pour prioriser vos actions futures.

 

 

une meilleure productivite avec le verificateur de syntaxe

L’auto-completion est disponible pour les classes depuis 4D v18 R4. Cette fonctionnalité simplifie l’écriture du code et limite les erreurs générées dans les noms de fonctions… mais elle ne les évite pas totalement ; il est facile d’inverser deux lettres, d’oublier une majuscule, puis de passer du temps à identifier les erreurs dans votre code. Alors quoi de mieux que de demander à 4D de vérifier si les classes ou fonctions existaient déjà auparavant ? À partir de 4D v19 R4, un avertissement s’affiche dans l’éditeur de code si vous appelez une fonction qui n’existe pas.

 

de nouvelles options pour personnaliser l’editeur de code

Outre la personnalisation de la fenêtre et de la zone de code, 4D v19 R4 apporte deux nouvelles options de personnalisation :

  • Afficher ou masquer les dix presse-papiers.
  • L’icône “afficher/masquer les listes” a été déplacée dans la partie inférieure droite des listes.

 

Deploiement 

UTILISER LES APPLICATIONS CLIENTES FUSIONNEES DUPLIQUEES

En tant qu’éditeur de logiciels, certains de vos clients disposent parfois de nombreuses instances de votre application serveur fusionnée, telle qu’une application serveur fusionnée pour chaque société d’un groupe, par exemple. Dans ce type d’architecture de déploiement, vos chargés de clientèle vous demandent souvent d’installer sur leur ordinateur une application cliente fusionnée pour chaque application serveur fusionnée car ils souhaitent utiliser le logiciel pour chaque société. Désormais, vous disposez d’une nouvelle clé buildApp pour faire en sorte que chaque application client fusionnée dupliquée utilise son propre dossier de préférences utilisateur (basé sur le chemin de l’application) : ClientUserPreferencesFolderByPath.

Vous souhaitez en savoir plus ? Consultez tous les articles de la version 4D v19 R4 sur notre blog.