Aller au contenu principal

Relations, formules et cumuls

Jusqu'ici, vos objets vivaient chacun de leur côté. C'est en les reliant entre eux, puis en faisant calculer la plateforme à votre place, que votre application prend toute sa valeur. Cette page couvre quatre types de champs qui travaillent ensemble :

Type de champÀ quoi il sertExemple
Relation vers un objetLier une fiche à une autreUne facture → son client
Champ calculé (formule)Calculer une valeur à partir des autres champs de la ficheMontant = {quantite} * {prix_unitaire}
Cumul d'objets liésAgréger les fiches liées (somme, moyenne…)Total du devis = somme de ses lignes
Pré-remplissage automatiqueRecopier une valeur depuis la fiche liéeLe taux de TVA recopié depuis le client

Tous se créent au même endroit : dans le Studio, onglet Objets, ouvrez votre objet puis son onglet Champs, et cliquez sur + Ajouter un champ.

Studio, détail d'un objet, onglet Champs

Relier deux objets : le champ « Relation vers un objet »

Une relation crée un lien d'une fiche vers une fiche d'un autre objet. Exemple classique : chaque Facture est rattachée à un Client.

Créer la relation

  1. Ouvrir l'objet Facture dans le Studio (onglet Objets), puis son onglet Champs.
  2. Cliquer sur + Ajouter un champ.
  3. Saisir le Libellé (par exemple « Client »), le Code se remplit tout seul.
  4. Dans Type, choisir Relation vers un objet.
  5. Dans Objet cible, choisir l'objet à relier (ici Client).
  6. Cliquer sur Ajouter le champ.

Dans le formulaire de saisie d'une facture, ce champ devient un champ de recherche : tapez quelques lettres, choisissez la fiche dans la liste. L'option — Aucun — retire le lien. Si aucune fiche ne correspond à ce que vous avez tapé, une ligne Créer « … » vous propose de créer la fiche liée à la volée, sans quitter votre saisie.

Quel texte s'affiche pour la fiche liée ?

Chaque objet a un champ clé (libellé) : c'est le premier champ de type texte que vous avez ajouté à l'objet (par exemple « Nom » pour un client). C'est cette valeur qui représente la fiche partout : dans les listes, dans les champs relation, dans les documents. Ce champ est protégé : il n'est pas supprimable.

Cas particulier : les lignes d'un document (sous-objets)

Pour des « lignes » qui n'existent que sous une fiche parente, les lignes d'un devis, les jours d'un compte rendu, créez un sous-objet plutôt qu'un objet ordinaire :

  1. Dans l'onglet Objets, cliquer sur Nouvel objet.
  2. Renseigner le nom (par exemple « Ligne de devis »).
  3. Dans Sous-objet de (optionnel), choisir l'objet parent (par exple Devis).
  4. Cliquer sur Créer l'objet.

Comme l'indique la modale : un sous-objet est masqué du menu et édité en ligne sous chaque enregistrement parent (ex. lignes sous un devis) ; la relation vers le parent est créée automatiquement. Vous n'avez donc pas de champ relation à créer vous-même dans ce cas. Voir aussi Créer un objet.

Calculer une valeur : le champ « Champ calculé (formule) »

Un champ formule affiche un résultat calculé à partir des autres champs de la même fiche. Il n'est jamais saisi à la main.

Créer une formule

  1. Dans l'onglet Champs de l'objet, cliquer sur + Ajouter un champ.
  2. Choisir le Type : Champ calculé (formule).
  3. Écrire l'expression dans le champ Formule, puis cliquer sur Ajouter le champ.

Exemple, sur une ligne de devis avec les champs « Quantité » (quantite) et « Prix unitaire » (prix_unitaire) :

{quantite} * {prix_unitaire}

La syntaxe

  • On référence un champ par son code entre accolades : {prix_unitaire}, {tva}.
  • Opérateurs arithmétiques : +, -, *, / (et le reste de division %).
  • Parenthèses libres pour ordonner le calcul.

Fonctions disponibles :

FonctionEffetExemple
roundArrondit (2ᵉ argument : nombre de décimales)round({total} * 0.2, 2)
minLe plus petit des argumentsmin({remise}, 100)
maxLe plus grand des argumentsmax({stock} - {commande}, 0)
absValeur absolueabs({ecart})
intConvertit en nombre entierint({duree})
floatConvertit en nombre décimalfloat({code_postal})

Quelques formules types :

BesoinFormule
Montant d'une ligne{quantite} * {prix_unitaire}
Total TTC à partir du HT{total_ht} * (1 + {tva} / 100)
TVA arrondie au centimeround({total_ht} * 0.2, 2)
Remise plafonnée à 50 €min({remise}, 50)

Bon à savoir

  • Le résultat est calculé au moment de la lecture de la fiche : il est toujours à jour, sans rien enregistrer.
  • Un champ vide vaut 0 dans le calcul ; une division par zéro donne un résultat vide (affiché «, »), jamais une erreur.
  • Un champ formule n'est ni saisissable, ni triable, ni filtrable : c'est un affichage, pas une donnée saisie.
  • Un champ utilisé dans une formule est protégé : le Studio refuse sa suppression avec le message « Champ utilisé dans une formule, non supprimable ».
Champs chiffrés

Une formule ne peut pas référencer un champ marqué Sensible / PII (chiffré au repos) : le résultat du calcul, lui, ne serait pas chiffré et exposerait la valeur. Le Studio refuse l'enregistrement d'une telle formule.

Format d'affichage

Pour un champ formule (comme pour tout champ numérique), le sélecteur Format d'affichage propose Standard, Montant (€), Pourcentage ou Barre de progression (0–100). Un montant s'affichera par exemple « 17 976,00 € ».

Agréger les fiches liées : le champ « Cumul d'objets liés »

Le cumul (ou rollup) regarde toutes les fiches liées à la fiche courante et en tire un chiffre : le total des lignes d'un devis, le nombre de commandes d'un client, la date de la dernière activité…

Prérequis : il faut d'abord qu'une relation pointe vers votre objet. Pour un total de devis, l'objet Ligne de devis doit avoir un champ relation vers Devis (créé automatiquement si c'est un sous-objet). Sans cela, le Studio vous préviendra : « Aucun objet ne pointe vers … par une relation. Crée d'abord un champ relation sur l'objet enfant. »

Créer un cumul

Exemple : le champ « Total HT » d'un Devis, somme du champ « Montant » de ses lignes.

  1. Ouvrir l'objet Devis, onglet Champs, puis + Ajouter un champ.
  2. Libellé : « Total HT ». Type : Cumul d'objets liés.
  3. Dans Objets liés à cumuler, choisir la relation qui pointe ici (par exemple « Ligne de devis · Devis »).
  4. Dans Opération, choisir l'agrégation :
OpérationRésultat
SommeAdditionne le champ choisi sur toutes les fiches liées
NombreCompte les fiches liées (aucun champ à choisir)
MoyenneMoyenne du champ choisi
MinimumLa plus petite valeur
MaximumLa plus grande valeur
  1. Dans Champ à cumuler, choisir le champ des fiches liées à agréger (ici « Montant »), sauf pour Nombre, qui s'en passe.
  2. Cliquer sur Ajouter le champ.

Désormais, chaque devis affiche son total, recalculé à chaque lecture. Ajoutez une ligne, le total suit.

Formule + cumul = devis complet

Les deux se combinent naturellement : sur la Ligne de devis, un champ formule {quantite} * {prix_unitaire} calcule le montant de la ligne ; sur le Devis, un cumul Somme de ce montant donne le total. Avec 3 lignes à 120,00 €, 250,00 € et 80,00 €, le devis affiche 450,00 €.

  • Comme la formule, le cumul est en lecture seule, ni triable ni filtrable.
  • Un champ chiffré ne peut pas être cumulé.
  • La relation utilisée par un cumul est protégée : « Relation utilisée par un cumul, non supprimable ».

Recopier une valeur : le pré-remplissage automatique

Le pré-remplissage recopie une valeur depuis la fiche liée vers la fiche en cours. Exemple : sur un Devis, recopier le champ « Commercial » du Client choisi.

Contrairement aux autres, ce réglage se fait sur un champ existant :

  1. Créer d'abord un champ ordinaire sur l'objet (par exemple « Commercial », de type Texte court), du même type que le champ à recopier.
  2. Dans l'onglet Champs, cliquer sur l'icône crayon (Modifier le champ) de ce champ.
  3. Dans la section Pré-remplissage automatique :
    • D'après la relation : choisir le champ relation de l'objet qui sert de source (par exemple « Client »), l'option — Aucun (saisie manuelle) — désactive le pré-remplissage ;
    • Recopier le champ : choisir le champ de la fiche liée à recopier (seuls les champs du même type sont proposés) ;
    • cocher ou non Verrouiller (lecture seule, toujours synchronisé).
  4. Cliquer sur Enregistrer.

Deux comportements, selon la case Verrouiller :

ModeComportement
Verrouillé (case cochée)Le champ est rempli automatiquement et non modifiable : il reste toujours synchronisé avec la fiche liée.
Modifiable (case décochée)Le champ est pré-rempli au choix de la fiche liée, mais vous pouvez ensuite corriger la valeur au cas par cas.
Quand utiliser quoi ?

Un pré-remplissage copie une valeur unitaire depuis la fiche liée (verrouillé = miroir, modifiable = simple suggestion). Un cumul agrège plusieurs fiches liées en un chiffre. Une formule calcule à partir des champs de la fiche elle-même. Les champs calculés (formule, cumul) ne peuvent pas être pré-remplis, ils se calculent déjà tout seuls.

En résumé

Je veux…Type de champRéglages clés
Rattacher une facture à son clientRelation vers un objetObjet cible
Des lignes sous un devisSous-objetSous-objet de (optionnel) à la création de l'objet
Montant = quantité × prixChamp calculé (formule)Formule : {quantite} * {prix_unitaire}
Total du devis = somme des lignesCumul d'objets liésObjets liés à cumuler, Opération, Champ à cumuler
Recopier le commercial du clientPré-remplissage automatiqueD'après la relation, Recopier le champ, Verrouiller

Pour aller plus loin : Types de champs · Créer un objet · Mise en page et vues · Automatisations · Documents PDF