Blogue

Formulaires

Jean-Robert Desbiens-Haddad
Vice-président Technologies
28/3/2024

Règles de validation des formulaires et champs calculés

Lors de l’utilisation de formulaires dans JMap pour la saisie de données, il arrive régulièrement qu’une certaine logique d’affaires soit nécessaire. Cette logique peut se traduire en règles plus ou moins complexes de validation des formulaires. Par exemple, dans le cas d’un formulaire d’inspection d’un actif, il est possible que la somme de 3 champs numériques ne doive pas dépasser un total de 100%. Avec les nouvelles règles de validation de formulaires dans JMap, il est maintenant possible d’implémenter ce genre de logique, et bien plus encore. Dans cet article, nous allons explorer les différentes possibilités offertes.

Règles de validation globale d’un formulaire

Ces règles sont définies au niveau du formulaire et sont évaluées avant la sauvegarde de celui-ci. Pour que la sauvegarde se fasse, toutes les règles doivent passer, c’est-à-dire être évaluées à VRAI. Chaque règle peut utiliser les valeurs d’un ou de plusieurs champs du formulaire. Enfin, il est possible de créer plusieurs règles distinctes pour un même formulaire.

Pour définir une règle, vous devez spécifier un nom, une expression logique et un message à afficher en cas de non-respect de la règle.

Quand l’utilisateur renseigne les champs du formulaire et qu’une règle n’est pas respectée, le message de non-respect de la règle s’affiche.

La syntaxe utilisée pour définir une règle logique est celle de JsonLogic. JsonLogic est un langage permettant de définir des expressions logiques et d’effectuer des opérations mathématiques et sur des chaînes de caractères. La syntaxe générale d’une règle est la suivante :

{"operateur" : ["valeurs" ... ]}.

Dans la définition des règles, l’accès aux valeurs des attributs des éléments des couches se fait en utilisant la syntaxe suivante :

"var" : "NOM DE L’ATTRIBUT".

Voici quelques exemples :

Dans cet exemple, la somme des valeurs des attributs A, B et C ne doit pas dépasser 100.es.

Dans cet exemple, si la valeur du champ STATUT est à Terminé, alors le champ MATERIAL ne peut pas être vide et le champ INSP_DATE ne peut pas avoir la valeur null.

Valeurs calculées automatiquement

En plus des règles de validation, il est possible d’utiliser des expressions JsonLogic pour calculer et renseigner automatiquement des champs du formulaire en utilisant les valeurs des autres champs. Par exemple, nous pourrions calculer la valeur du champ D en faisant la somme des champs A, B et C.

Voici quelques exemples de valeurs calculées :

Dans cet exemple, le champ aura automatiquement comme valeur calculée la somme des valeurs des champs A, B et C.

Dans cet exemple, le champ aura automatiquement comme valeur calculée 2 x PI x la valeur du champ DIAMETER divisée par 2. Cela correspond à la formule de la circonférence d’un cercle (2 x Pi x R, où R est le rayon).

Enfin, dans cet exemple, le champ aura automatiquement la valeur « gel » si la valeur du champ TEMP est inférieure à 0, sinon il aura la valeur « pas de gel ».

Règles définissant les propriétés des champs de formulaires

Les propriétés Lecture seule et Requis des champs des formulaires peuvent aussi être contrôlées par des règles logiques. Ces règles optionnelles sont définies au niveau de chaque champ du formulaire. Par exemple, nous pourrions déterminer que le champ B est requis seulement si le champ A est renseigné.

Comme on peut le constater, l’ajout des règles logiques et des champs calculés dans les formulaires de JMap permet de créer des formulaires plus intelligents et plus adaptés aux règles d’affaires qui sont souvent nécessaires. Ce qui peut être fait avec ces règles n’a de limite que l’imagination de la personne qui les écrit.

Depuis 1995, K2 Geospatial s’est engagée à mettre l’information et les outils d’analyse spatiale à la portée de tout le monde en développant des solutions logicielles qui fournissent des aides visuelles efficaces pour les décideurs.
CANADA

1440 Sainte-Catherine O.,
Bureau 522
Montreal, QC H3G 1R8
+1 866-967-1211

USA

One Boston Place,
Suite 2600
Boston, MA 02108
+1 617-933-7265
Inscrivez-vous à notre infolettre
Merci de votre inscription!
Oups ! Un problème est survenu.