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 sert | Exemple |
|---|---|---|
| Relation vers un objet | Lier une fiche à une autre | Une facture → son client |
| Champ calculé (formule) | Calculer une valeur à partir des autres champs de la fiche | Montant = {quantite} * {prix_unitaire} |
| Cumul d'objets liés | Agréger les fiches liées (somme, moyenne…) | Total du devis = somme de ses lignes |
| Pré-remplissage automatique | Recopier une valeur depuis la fiche liée | Le 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.

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
- Ouvrir l'objet Facture dans le Studio (onglet Objets), puis son onglet Champs.
- Cliquer sur + Ajouter un champ.
- Saisir le Libellé (par exemple « Client »), le Code se remplit tout seul.
- Dans Type, choisir Relation vers un objet.
- Dans Objet cible, choisir l'objet à relier (ici Client).
- 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.
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 :
- Dans l'onglet Objets, cliquer sur Nouvel objet.
- Renseigner le nom (par exemple « Ligne de devis »).
- Dans Sous-objet de (optionnel), choisir l'objet parent (par exple Devis).
- 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
- Dans l'onglet Champs de l'objet, cliquer sur + Ajouter un champ.
- Choisir le Type : Champ calculé (formule).
- É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 :
| Fonction | Effet | Exemple |
|---|---|---|
round | Arrondit (2ᵉ argument : nombre de décimales) | round({total} * 0.2, 2) |
min | Le plus petit des arguments | min({remise}, 100) |
max | Le plus grand des arguments | max({stock} - {commande}, 0) |
abs | Valeur absolue | abs({ecart}) |
int | Convertit en nombre entier | int({duree}) |
float | Convertit en nombre décimal | float({code_postal}) |
Quelques formules types :
| Besoin | Formule |
|---|---|
| Montant d'une ligne | {quantite} * {prix_unitaire} |
| Total TTC à partir du HT | {total_ht} * (1 + {tva} / 100) |
| TVA arrondie au centime | round({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 ».
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.
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.
- Ouvrir l'objet Devis, onglet Champs, puis + Ajouter un champ.
- Libellé : « Total HT ». Type : Cumul d'objets liés.
- Dans Objets liés à cumuler, choisir la relation qui pointe ici (par exemple « Ligne de devis · Devis »).
- Dans Opération, choisir l'agrégation :
| Opération | Résultat |
|---|---|
| Somme | Additionne le champ choisi sur toutes les fiches liées |
| Nombre | Compte les fiches liées (aucun champ à choisir) |
| Moyenne | Moyenne du champ choisi |
| Minimum | La plus petite valeur |
| Maximum | La plus grande valeur |
- Dans Champ à cumuler, choisir le champ des fiches liées à agréger (ici « Montant »), sauf pour Nombre, qui s'en passe.
- Cliquer sur Ajouter le champ.
Désormais, chaque devis affiche son total, recalculé à chaque lecture. Ajoutez une ligne, le total suit.
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 :
- 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.
- Dans l'onglet Champs, cliquer sur l'icône crayon (Modifier le champ) de ce champ.
- 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é).
- Cliquer sur Enregistrer.
Deux comportements, selon la case Verrouiller :
| Mode | Comportement |
|---|---|
| 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. |
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 champ | Réglages clés |
|---|---|---|
| Rattacher une facture à son client | Relation vers un objet | Objet cible |
| Des lignes sous un devis | Sous-objet | Sous-objet de (optionnel) à la création de l'objet |
| Montant = quantité × prix | Champ calculé (formule) | Formule : {quantite} * {prix_unitaire} |
| Total du devis = somme des lignes | Cumul d'objets liés | Objets liés à cumuler, Opération, Champ à cumuler |
| Recopier le commercial du client | Pré-remplissage automatique | D'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