Donnez du poids à votre processus de développement grâce à vos formulaires

Pendant la phase de développement, la détection précoce des erreurs de syntaxe est importante pour produire un code de qualité. La vérification du code en temps réel est une aide précieuse pour les développeurs. Il permet non seulement d’améliorer l’efficacité, mais aussi la qualité et la productivité. En corrigeant les erreurs immédiatement, vous pouvez vous concentrer sur le développement fonctionnel de votre application, plutôt que sur les bogues gênants qui apparaissent lors de la compilation.

Avec 4D 20 R8, nous sommes ravis d’introduire deux nouvelles fonctionnalités qui transformeront votre façon de travailler.

  • La première est la possibilité d’associer une classe à un formulaire, ce qui permet de vérifier la syntaxe d’expressions telles que Form.myProperty.
  • La seconde est une vérification en temps réel des expressions dans la liste des propriétés, avec une description de l’erreur ou de l’avertissement affiché.

Associer une classe à un formulaire

Il est désormais possible d’associer une classe d’utilisateurs à un formulaire grâce au nouvel attribut « Form class« . Cet attribut permet de typer l’objet retourné par la commande Form ce qui permet d’utiliser des expressions telles que Form.myProperty. La classe utilisateur peut provenir du projet hôte ou d’un composant.

Instanciation automatique au moment de l’exécution

Lors de l’ouverture d’un formulaire, vous pouvez passer un objet à la commande DIALOG un objet. Cet objet devient alors accessible dans le formulaire via la commande Form.

L’objet passé à la commande DIALOG peut être une instance de classe. Voici comment procéder :

var $h : Integer
var $o : cs.Person
$o:=cs.Person.new()
$h:=Open form window("FormWithClass")
DIALOG ("FormWithClass" ; $o)

A partir de la version 4D 20 R8, si vous définissez la propriété « Form class » dans le formulaire sans passer d’objet à la commande DIALOG, 4D gère automatiquement l’instanciation. Il suffit d’écrire :

var $h : Integer
$h:=Open form window("FormWithClass")
DIALOG ("FormWithClass")

La commande Form renvoie un objet qui est une instance de la classe « Personne ». Vous pouvez le vérifier dans le formulaire avec la commande OB Instance of.

$n:=OB Instance of(Form; cs.Person)

Maintenant, vous pouvez appeler une fonction de classe en écrivant simplement : « Form.message() ».

Avantages pour l’éditeur de code

Fonctionnalité d’autocomplétion

La commande Form bénéficie de l’auto-complétion dans l’éditeur de code. En tapant « Form. », 4D vous proposera toutes les propriétés et fonctions déclarées dans la classe associée. Plus de risque d’inverser deux lettres dans le nom d’une propriété ou d’utiliser une minuscule au lieu d’une majuscule dans le nom d’une fonction.

Par exemple, avec notre simple classe « Personne » définie comme suit :

property firstname : Text
property lastname : Text
property email : Text

Class constructor
This.firstname:=""
This.lastname:=""
This.email:=""

Function get fullname () : Text
return This.firstname+""+This.lastname

Lorsque l’on utilise la commande Form dans une méthode de formulaire, l’éditeur de code vous propose une liste précise pour compléter votre code :

blank

Vérifier la syntaxe

Lorsque vous utilisez des expressions du type « Form.myProperty » dans la méthode de formulaire, ou dans les méthodes des objets de formulaire, vous bénéficiez de la puissance du vérificateur de syntaxe.

Reprenons l’exemple de la classe précédente. Dans le code de la méthode formulaire, nous :

  • forçons un entier dans un attribut texte,
  • utilisons un attribut inconnu,
  • assignons un entier à un attribut calculé de type texte.

 

Dans l’image suivante, vous pouvez voir que l’éditeur de code a effectivement identifié des erreurs ou des avertissements.

blank

Avantages pour l’éditeur de formulaires

Contrôle syntaxique intégré à la liste des propriétés

Le contrôle syntaxique n’est plus limité à l’éditeur de code. Cette fonctionnalité est étendue aux expressions de la liste des propriétés (telles que« Datasource » ou« Meta info expression« ). Ainsi, vous recevrez immédiatement des notifications d’erreurs et d’avertissements.

blank

Il n’est pas nécessaire d’attendre les résultats de la compilation pour découvrir les erreurs. Grâce à cette fonctionnalité, vous serez informé dès la phase d’édition.

Compilation

Bien entendu, si vous n’avez pas résolu les nouvelles erreurs directement, le compilateur les détectera lors du processus de compilation.

Dialogue du compilateur

Tous les avertissements et erreurs seront affichés dans la fenêtre de compilation. Si vous double-cliquez sur l’expression d’un objet de formulaire, le formulaire correspondant s’ouvrira, mettant en évidence l’objet problématique et sa propriété dans la liste des propriétés.

blank

Commande Compile projet

En cas d’échec de la compilation, la commande Compile project renvoie un objet contenant des avertissements et des erreurs. La commande a également été étendue pour renvoyer les avertissements ou les erreurs détectés dans les expressions d’objet de formulaire.

{
    "success":false,
    "errors" :[{
        "message" : "Propriété non déclarée 'firstName' utilisée. (550.26)",
        "isError":false,
        "code":{
            "type" : "formObjectExpression",
            "formName" : "Personne",
            "objectName" : "InputFirstname",
            "propertyName" : "dataSource",
            "file" :"[objet File]"
            }
        }]
}

Prochaines étapes

Ces nouvelles fonctionnalités rendront l’écriture de code plus facile et plus efficace.

N’hésitez pas à nous faire part de vos expériences avec ces améliorations. Vos commentaires sont précieux pour nous aider à comprendre comment ces outils vous aident au quotidien et à mieux les adapter à vos besoins.

Vanessa Talbot
- Product Owner -Vanessa Talbot a rejoint l'équipe du programme 4D en juin 2014. En tant que Product Owner, elle est chargée de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation des fonctionnalités livrées répond aux besoins des clients.Depuis son arrivée, elle a travaillé à la définition des fonctionnalités clés de 4D. Elle a travaillé sur la plupart des nouvelles fonctionnalités de multithreading préemptif et aussi sur un sujet très complexe : la nouvelle architecture pour les applications enginées. Vanessa est diplômée de Telecom Saint-Etienne. Elle a commencé sa carrière à l'Institut de Recherche Criminelle en tant que développeur pour le département audiovisuel. Elle a également travaillé dans les domaines des médias et du médical en tant qu'experte en support technique, en production ainsi qu'en documentation de nouvelles fonctionnalités.