Champs formule
Un champ formule calcule sa valeur à partir des autres champs de la ligne. Vous ne saisissez pas la valeur : TimeTonic la calcule et la met à jour automatiquement. Un champ formule est en lecture seule.

Écrire une formule
Section intitulée « Écrire une formule »- Référencez un champ avec son code entre accolades :
{employees}. - Les noms de fonctions sont en MAJUSCULES :
SUM,IF,CONCAT. La casse est obligatoire. - Séparez les arguments par des virgules. Écrivez les textes entre guillemets :
"actif". - Les booléens s’écrivent
trueetfalse, en minuscules. - Les opérateurs classiques fonctionnent :
+,-,*,/, comparaisons (==,!=,<,>).
Exemples réels de l’espace de démonstration :
DIVIDE({employees}, 1000) → effectif en milliersMULTIPLY({employees}, 100000) → estimation de revenuType de résultat
Section intitulée « Type de résultat »Vous choisissez le type de sortie de la formule : texte, nombre, booléen, date, date-heure ou devise. TimeTonic convertit le résultat vers ce type. Le champ se filtre et se trie ensuite comme un champ de ce type.
Recalcul
Section intitulée « Recalcul »- À chaque modification d’une ligne, TimeTonic recalcule les formules concernées dans la même écriture. Les formules qui dépendent d’autres formules se recalculent en cascade (10 niveaux maximum).
- Les formules qui utilisent
TODAY()ouNOW()se rafraîchissent chaque nuit. - Quand vous modifiez la définition d’une formule, TimeTonic recalcule toute la table en arrière-plan.
Fonctions disponibles
Section intitulée « Fonctions disponibles »Mathématiques
Section intitulée « Mathématiques »| Fonction | Rôle |
|---|---|
SUM(v1, v2, …) |
Additionne les arguments (vide = 0) |
MINUS(a, b) / MULTIPLY(v1, …) / DIVIDE(a, b) |
Opérations de base ; la division par zéro renvoie 0 |
MOD(a, b) |
Reste de la division |
ROUND(v, n) / FLOOR(v, n) / CEIL(v, n) |
Arrondis à n décimales |
ABS(v) / SQRT(v) / POWER(base, exp) |
Valeur absolue, racine, puissance |
MIN(…) / MAX(…) / AVG(…) |
Minimum, maximum, moyenne |
INT(v) |
Partie entière |
LOG(v) / LN(v) |
Logarithme décimal / naturel |
| Fonction | Rôle |
|---|---|
CONCAT(v1, v2, …) |
Assemble les valeurs en un texte |
LEFT(t, n) / RIGHT(t, n) / MID(t, début, n) |
Extraits de texte |
LEN(t) |
Longueur |
UPPER(t) / LOWER(t) / TRIM(t) |
Casse et espaces |
SUBSTITUTE(t, cherche, remplace) |
Remplace toutes les occurrences |
FIND(cherche, t, début) |
Position (0 si absent) |
REPLACE(t, début, n, remplace) |
Remplacement par position |
REPT(t, n) |
Répète le texte |
TEXT(v, format) / VALUE(t) |
Nombre → texte / texte → nombre |
EXACT(a, b) / T(v) |
Comparaison stricte / valeur si texte |
ENCODE_URL_COMPONENT(t) |
Encode pour une URL |
Les dates sont des horodatages. Le fuseau horaire de l’espace de travail s’applique.
| Fonction | Rôle |
|---|---|
TODAY() / NOW() |
Date / date-heure du moment |
DATE(année, mois, jour) |
Construit une date |
DATEADD(d, n, unité) |
Ajoute n jours/mois/années/heures/… |
DATE_DIFF(d1, d2, unité) |
Écart entre deux dates |
YEAR(d) MONTH(d) DAY(d) HOUR(d) MINUTE(d) SECOND(d) |
Extraient une composante |
WEEKDAY(d) / WEEKNUM(d) |
Jour de semaine (1 = lundi) / numéro de semaine ISO |
WORKDAY(d, n) |
Date après n jours ouvrés |
IS_AFTER(d1, d2) / IS_BEFORE(d1, d2) / IS_SAME(d1, d2, unité) |
Comparaisons |
DATESTR(d, format) / TIMESTR(d) |
Formatage en texte |
DATETIME_PARSE(t, format) / DATETIME_FORMAT(d, format) |
Texte ↔ date |
TOTIMESTAMP(v) / FROMTIMESTAMP(ts) |
Conversions d’horodatage |
FROMNOW(d) / TONOW(d) |
Temps relatif (« il y a 3 jours ») |
Logique et utilitaires
Section intitulée « Logique et utilitaires »| Fonction | Rôle |
|---|---|
IF(condition, siVrai, siFaux) |
Condition |
IFS(cond1, val1, cond2, val2, …) |
Première condition vraie |
SWITCH(expr, cas1, rés1, …, défaut) |
Sélection par cas |
AND(…) / OR(…) / NOT(v) |
Logique booléenne |
ISBLANK(v) / ISNUMBER(v) / ISTEXT(v) |
Tests |
COUNT(…) |
Compte les valeurs non vides |
COALESCE(…) |
Première valeur non vide |
BLANK() |
Valeur vide |
ERROR(message) |
Provoque une erreur de formule |
- Une formule contient au maximum 2 000 caractères.
- Les cascades de formules s’arrêtent après 10 niveaux.
- Un résultat texte est limité à 100 Ko.
- En cas d’erreur de calcul sur une ligne, la valeur devient vide ; les autres lignes ne sont pas affectées.
Par l’API
Section intitulée « Par l’API »Le type de champ est formula. L’API expose la validation d’une formule (POST …/tables/{tableCode}/formula/validate) et le recalcul à la demande (POST …/fields/{fieldCode}/formula/recompute). Consultez la référence API.