Utiliser les formules dans les blocs répétables
Les formules peuvent être placées dans les blocs répétables pour calculer automatiquement des valeurs sur chaque ligne. C'est particulièrement utile pour les factures, les listes de produits, ou tout formulaire nécessitant des calculs sur plusieurs éléments.
Principe de fonctionnement
Une formule dans un bloc répétable peut référencer : - ✅ Les champs de la même ligne (qui la précèdent dans l'ordre) - ✅ Les champs globaux (situés hors du bloc répétable)
Important : Chaque ligne calcule indépendamment son résultat. Une formule ne peut pas accéder aux valeurs d'autres lignes.
Exemple 1 : Facture de produits
Structure du formulaire
Bloc répétable "Produits" :
1. Quantité (nombre entier)
2. Prix unitaire HT (nombre décimal)
3. Sous-total TTC (formule)
Formule
{Quantité} * {Prix unitaire HT} * 1.16
Résultat
| Quantité | Prix unitaire HT | Sous-total TTC |
|---|---|---|
| 10 | 50 | 580 |
| 5 | 100 | 580 |
| 2 | 250 | 580 |
Chaque ligne calcule son propre sous-total avec la TVA de 16%.
Exemple 2 : Référencer un champ global
Structure du formulaire
Champ global (hors du bloc) :
- Taux de remise global (nombre entier) : 10
Bloc répétable "Articles" :
1. Quantité (nombre entier)
2. Prix unitaire (nombre décimal)
3. Prix après remise (formule)
Formule
{Quantité} * {Prix unitaire} * (1 - {Taux de remise global} / 100)
Résultat
Le {Taux de remise global} sera le même pour toutes les lignes du bloc répétable.
| Quantité | Prix unitaire | Prix après remise |
|---|---|---|
| 10 | 50 | 450 (remise de 10%) |
| 5 | 100 | 450 (remise de 10%) |
Exemple 3 : Éligibilité conditionnelle
Structure du formulaire
Bloc répétable "Demandes" :
1. Montant demandé (nombre décimal)
2. Éligibilité (formule)
Formule
SI({Montant demandé} <= 5000, "OK", "Trop élevé")
Résultat
| Montant demandé | Éligibilité |
|---|---|
| 3000 | OK |
| 7000 | Trop élevé |
| 4500 | OK |
Chaque ligne affiche son propre statut d'éligibilité.
⚠️ Éviter les collisions de noms
Problème : Si un champ porte le même nom dans la ligne ET au niveau global, la formule utilisera la valeur de la ligne en priorité.
Exemple de collision
Champ global :
- Prix (nombre décimal) : 100
Bloc répétable "Produits" :
- Prix (nombre décimal)
- Total (formule) : {Prix} * 2
→ La formule utilisera le Prix de la ligne, pas le prix global !
Bonne pratique ✅
Nommer différemment les champs :
- Prix de référence (global)
- Prix du produit (dans la ligne)
Ainsi, vous pouvez référencer les deux sans ambiguïté :
{Prix du produit} * {Prix de référence}
Limitations
❌ Ce qui n'est PAS possible
Référencer d'autres lignes : Une formule ne peut pas accéder aux valeurs d'une autre ligne.
- Exemple impossible :
{Quantité de la ligne 1} + {Quantité de la ligne 2}
- Exemple impossible :
Agréger toutes les lignes : Les fonctions d'agrégation (SOMME, MOYENNE, etc.) seront bientôt disponibles.
- Pour l'instant, demandez à l'usager de saisir manuellement le total (voir ci-dessous).
Référencer des champs suivants : Une formule ne peut référencer que les champs qui la précèdent dans l'ordre de la ligne.
✅ Ce qui EST possible
- Référencer les champs précédents de la ligne
- Référencer tous les champs globaux (hors du bloc)
- Utiliser des fonctions :
SI(),SOMME(),MIN(),MAX(), etc.
Total général hors du bloc
📌 À venir : Des fonctions d'agrégation seront bientôt disponibles pour calculer automatiquement le total de toutes les lignes (SOMME, MOYENNE, etc.).
Solution de contournement actuelle : Demander à l'usager de saisir manuellement le total général dans un champ séparé (hors du bloc).
Exemple :
Structure :
1. Bloc répétable "Produits" (avec sous-totaux calculés)
2. Champ hors du bloc : Total général (nombre décimal, saisi manuellement)
L'usager devra additionner les sous-totaux et saisir le résultat dans "Total général".
Cas d'usage courants
Factures
- Calculer le sous-total de chaque ligne (quantité × prix)
- Appliquer une remise globale sur chaque ligne
- Calculer la TVA par ligne
Listes de bénéficiaires
- Vérifier l'éligibilité de chaque personne selon des critères
- Calculer le montant d'aide individuel
Inventaires
- Calculer la valeur de chaque article (quantité × valeur unitaire)
- Appliquer un coefficient de dépréciation
Demandes de remboursement
- Calculer le montant remboursable par ligne (avec plafond)
- Vérifier les montants par rapport à des seuils
Bonnes pratiques
✅ À faire
- Nommer clairement vos champs globaux (ex: "Taux de TVA global")
- Éviter les noms identiques entre champs globaux et champs de ligne
- Placer les formules en dernier dans l'ordre des champs de la ligne
- Tester avec plusieurs lignes pour vérifier le comportement
❌ À éviter
- Utiliser le même nom pour un champ global et un champ de ligne
- Essayer de référencer d'autres lignes du bloc
- Placer une formule avant les champs dont elle dépend