Les Formules

Une formule est une expression qui effectue des calculs sur des valeurs dans votre base de données. Elle peut être aussi simple que l'addition de deux nombres ou aussi complexe que la transformation de plusieurs champs de données selon des critères spécifiques.

La création d'une formule se fait depuis une page d'un Workflow ou d'un Suivi. Cela peut aussi se faire directement dans une table depuis la vue Data.

⬅️ Type de retour

Chaque formule a un type de retour, par exemple la formule UPPER("hello") renvoie un texte, et peut alors être utilisée partout où ce type le permet, que ce soit dans les filtres, les conditions ou dans des mises à jour de champs.

Vous devez choisir le type de retour la première fois que vous éditez votre formule et vous ne pourrez plus le changer par la suite.

Voici la liste exhaustive des types de retour pouvant être utilisés :

  • 🔤 Texte

  • 🔢 Nombre

  • 📆 Date & Date et heure

  • 🗓️ Plage de dates & Plages de dates avec heure

  • 🎨 Couleur

  • ⚖️ Booléen

  • Les retours de type “liaisons calculées” doivent retourner un identifiant, sélectionnable depuis les métadonnées :

    • 🔗 Liaison simple

    • 🔗🔗 Liaisons multiples

    • 🙏 Liaison utilisateur

À noter que pour les types de retour liaison simple et liaisons multiples, il vous sera demandé de spécifier la table liée à la formule ainsi que le champ à afficher dans la vue Data

🛑 Gestion des erreurs

  • Vérification de la syntaxe : L'éditeur des formules s'assure de la justesse syntaxique de votre expression. Si la formule est incorrecte, comme dans le cas d'une parenthèse manquante, cela vous sera signalé et elle ne sera pas sauvegardée.

  • Erreurs à l'exécution : Si une formule génère une erreur lors de son exécution (par exemple si on a 2 ^ "hello"), elle retournera une valeur nulle et sera traitée de cette manière.

≠ Différence avec les formules de texte

Contrairement aux formules de texte, les formules permettent de manipuler tout type de champs, il est alors nécessaire de placer les variables dans des fonctions ou d'utiliser des opérateurs.

Par exemple, Utilisateur : {Prénom} {Nom} dans une formule de texte devient "Utilisateur : " & {Prénom} & " " & {Nom} dans une formule.

🔗 🔗 Liaisons multiples dans les formules

Il est possible d'utiliser un champ issu d'une liaison multiple dans les formules. En passant par une liaisons multiple, on obtient la liste des valeurs des enregistrements liés pour le champ choisi, qui peut être manipulé avec les fonctions sur les listes.

Par exemple, {Liaisons multiples -> Nombre} peut donner [5,2,3,2,4] s'il y a 5 enregistrements dans la liaison, avec ces valeurs pour le champ Nombre. Donc SUM({Liaisons multiples -> Nombre}) donne ici 16, la somme des nombres des enregistrements qui sont dans cette liaison multiple.

Depuis une liaison multiple, il n’est pas possible d’aller sélectionner des variables au delà du premier niveau de liaison

🚧 Cas d’usage : Liaisons Calculées

Une table Élève contient une liaison simple vers les enregistrements d’une table Classe. Cette table Classe contient une liaison simple vers une table Niveau.

On voudrait conditionner l’affichage d’une ligne en fonction du Niveau auquel les enregistrements de notre table Élève appartiennent.

Pour ce faire, on ajoute un champ Formule de type Liaison Simple dans la table Élève. Cette formule passe par les deux niveaux de liaisons et vient récupérer l’identifiant de l’enregistrement lié :

On lie donc notre formule à la table Niveau et le champ à afficher au nom du Niveau.

Dans les conditions d’affichage de la ligne, il est maintenant possible d’aller chercher le nom du Niveau de l’enregistrement en cours de la table Élève.

📖 Fonctions disponibles dans les formules

Les opérateurs

OpérationDescription

{A} & {B}

Concaténation

{A} + {B}

Addition

{A} - {B}

Soustraction

{A} * {B}

Multiplication

{A} / {B}

Division

{A} % {B}

Modulo

{A} ^ {B}

Puissance

{A} = {B}, {A} == {B} ou {A} === {B}

Égalité

{A} != {B}, {A} !== {B} ou {A} <> {B}

Différence

{A} > {B}

Supérieur

{A} >= {B}

Supérieur ou égal

{A} < {B}

Inférieur

{A} <= {B}

Inférieur ou égal

{A} && {B}

Et

{A} || {B}

Ou

!{A}

Inverse

(paramètres) => (expression)

Lambda

Dernière mise à jour