Champs calculés et d'action
Quatre types de champs dans lesquels personne ne saisit de valeur. Trois sont dérivés — le moteur les calcule à partir d'autres données — et un est un contrôle qui déclenche quelque chose au clic. Tous partagent les propriétés de base des champs.
| Type | Stocke / fait |
|---|---|
formula |
Une valeur calculée à partir d'une expression de formule. |
count |
Un comptage d'enregistrements liés. |
autonumber |
Un entier auto-incrémenté attribué par la base de données. |
button |
Un bouton interactif déclenchant une URL ou une automatisation. |
Pour les types porteurs de valeur — json, array, color, code, geolocation, barcode — voir Champs structurés et média.
formula
Calcule une valeur à partir d'une expression référençant d'autres champs.
| Propriété | Description |
|---|---|
formula |
Obligatoire, non vide. Expression à calculer. Accepte références de champs et fonctions. |
resultType |
Type de données attendu du résultat (par ex. string, number, boolean, date). |
format |
Format d'affichage du résultat (par ex. currency, percentage, decimal, date). |
currency |
Code ISO 4217 dans lequel le montant s'affiche (EUR, GBP, …). USD par défaut. |
precision |
Nombre de décimales, 0–10. 2 par défaut. |
symbolPosition |
before (défaut) ou after le montant. |
negativeFormat |
minus (défaut) ou parentheses. |
thousandsSeparator |
comma (défaut), period, space ou none. |
- { id: 1, name: total_price, type: formula, formula: 'price * quantity', resultType: number }Un montant calculé par une formule
Une formule portant sur des champs monétaires reste de la monnaie, mais elle n'hérite pas de la devise des champs qu'elle référence : une expression peut en toucher plusieurs, ou aucun, et il n'y aurait donc rien à hériter sans deviner. Déclarez le code :
- id: 12
name: unit_price
type: currency
currency: EUR
precision: 2
- id: 27
name: stock_value
type: formula
formula: unit_price * stock_on_hand
resultType: number
format: currency
currency: EURSans currency, le montant s'affiche avec la valeur par défaut USD — c'est ainsi que stock_value affichait $224,430.90 dans la colonne voisine du €28.63 dont il était calculé.
Ces cinq propriétés d'affichage sont exactement celles qu'accepte un champ currency, avec un comportement identique.
resultType et format sont des chaînes libres, pas des énumérations. Les valeurs listées ci-dessus sont des conventions, pas un ensemble fermé — le schéma accepte n'importe quelle chaîne et ne valide rien : une faute de frappe passe donc sovrium validate et se révèle plutôt comme une surprise de rendu. Les cinq propriétés d'affichage monétaire font exception : elles sont validées, et une valeur invalide est rejetée par sovrium validate.
count
Compte les enregistrements liés par un champ de relation de la même table. Un rollup simplifié.
| Propriété | Description |
|---|---|
relationshipField |
Obligatoire, non vide. Nom du champ de relation de cette table dont il faut compter les liens. |
filters |
Expression de filtre optionnelle — ne compter que les enregistrements liés qui correspondent. |
- {
id: 2,
name: completed_task_count,
type: count,
relationshipField: tasks,
filters: { field: status, operator: equals, value: completed },
}autonumber
Un entier auto-incrémenté attribué par la base de données — le type de champ derrière les références de factures et de commandes. La colonne est une séquence : la valeur est allouée par la base à l'insertion et n'est jamais fournie par le client.
- { id: 3, name: invoice_number, type: autonumber }Cela produit 1, 2, 3, et ainsi de suite. autonumber n'accepte aucune option : pas de préfixe, pas de décalage de départ, pas de remplissage par zéros. Pour une référence lisible comme INV-01000, ajoutez un champ formula qui compose le nombre avec le préfixe et le remplissage souhaités — la présentation reste ainsi en un seul endroit et la séquence sous-jacente n'est pas touchée.
button
Un bouton interactif rendu sur les enregistrements.
| Propriété | Description |
|---|---|
label |
Obligatoire, non vide. Texte du bouton. |
action |
Obligatoire. Soit url, soit automation — rien d'autre n'est accepté. |
url |
URL à ouvrir. Obligatoire lorsque action vaut url. |
automation |
Nom de l'automatisation à exécuter. Obligatoire lorsque action vaut automation. |
visibleWhen |
N'affiche le bouton que sur les enregistrements correspondants. Omis : partout. |
- {
id: 4,
name: approve,
type: button,
label: Approve,
action: automation,
automation: approve_request,
}action est un vocabulaire fermé à deux valeurs. action: url exige url ; action: automation exige automation. Toute autre valeur — chaîne vide comprise — est refusée au démarrage : action est la clé de dispatch sur laquelle s'appuient à la fois le rendu et le point d'entrée d'invocation, et une valeur qu'aucun des deux ne reconnaît afficherait un bouton sans effet.
L'automation qu'il nomme doit avoir un déclencheur manual pour être invocable ainsi.
N'afficher un bouton que sur certains enregistrements
visibleWhen nomme un champ de l'enregistrement et lui applique le vocabulaire
de conditions partagé (eq, neq, in, notIn, contains, gt, lt,
gte, lte). Plusieurs opérateurs se cumulent : tous doivent être vrais. C'est
la grammaire qu'utilise déjà une action de data-table,
pour que « n'afficher ce contrôle que sur certains enregistrements » s'écrive
partout de la même façon.
- {
id: 5,
name: ship,
type: button,
label: Ship,
action: automation,
automation: ship_order,
visibleWhen: { field: status, eq: pending },
}json
Déplacé vers Champs structurés et média.
array
Déplacé vers Champs structurés et média.
color
Déplacé vers Champs structurés et média.
code
Déplacé vers Champs structurés et média.
geolocation
Déplacé vers Champs structurés et média.
barcode
Déplacé vers Champs structurés et média.
Les champs calculés se mettent à jour automatiquement. formula, count, ainsi que les rollup et lookup relationnels (voir Champs relationnels) sont dérivés — ils se recalculent quand leurs entrées changent et ne sont pas directement modifiables.
Pages connexes
- Champs structurés et média —
json,array,color,code,geolocation,barcode. - Présentation des types de champs — tous les types par catégorie.
- Champs relationnels — les relations que
countcompte, plusrollupetlookup. - Présentation des tables — les propriétés de base communes à tous les champs.
Dernière mise à jour 11 août 2026
Cette documentation a été rédigée avec de l'IA : des erreurs ou du contenu obsolète sont donc possibles. Sovrium est en bêta. Les contributions et corrections sont les bienvenues.