3.1 · Éditeur de formules (syntaxe Crystal / Basic)

Niveau 3 · Avancé : formules & mise en forme conditionnelle

3.1Éditeur de formules (syntaxe Crystal / Basic)

Objectif : créer des champs de formule (calculs, concaténations) et comprendre les deux syntaxes (Crystal et Basic).
Temps estimé : 12 min

Le niveau 3 ouvre la vraie puissance de Crystal Reports : les FORMULES. Une formule est un CALCUL ou une logique que VOUS créez pour produire une valeur qui n'existe pas telle quelle dans la base — par exemple un montant TTC (prix HT × 1,2), une marge (vente − coût), un champ concaténé (nom + prénom), une catégorie calculée. On crée une formule dans l'ÉDITEUR DE FORMULES (Formula Workshop) ; le champ de formule apparaît alors dans l'explorateur de champs et se place dans une section comme n'importe quel champ. Crystal Reports propose DEUX SYNTAXES au choix : la syntaxe Crystal (historique, propre à l'outil) et la syntaxe Basic (proche de Visual Basic). On peut utiliser l'une ou l'autre (elles font la même chose) ; la syntaxe Crystal est la plus répandue dans la documentation. L'éditeur fournit une aide : la liste des CHAMPS (à insérer, notés {table.champ}), la liste des FONCTIONS (regroupées par catégorie : maths, chaînes, dates, conditions…) et les OPÉRATEURS. On écrit la formule, on la VÉRIFIE (bouton de contrôle de syntaxe), et on l'utilise.

Les briques de base d'une formule. (1) Les références de CHAMPS : entre accolades, {Commandes.Montant}. (2) Les OPÉRATEURS : arithmétiques (+ − × /), de comparaison (= <> > < >= <=), logiques (And, Or, Not), de concaténation de texte (+ ou &). (3) Les FONCTIONS intégrées (des centaines) : mathématiques (Round, Abs…), texte (UpperCase, Left, Trim…), dates (Year, Month, DateDiff…), conditionnelles (If…Then…Else). (4) Les littéraux : nombres (1.2), texte entre guillemets ("€"), dates (#2026-01-01#). Exemple de formule (syntaxe Crystal) : le TTC = {Commandes.MontantHT} * 1.20 ; un libellé = {Client.Nom} + " " + {Client.Prenom}. Points importants. (1) Une formule PRODUIT une valeur (nombre, texte, date, booléen) calculée à partir des champs et de la logique — on peut ensuite l'afficher, la totaliser, l'utiliser dans un filtre ou une mise en forme. (2) Deux SYNTAXES (Crystal / Basic) au choix — s'en tenir à une seule pour la cohérence ; la syntaxe Crystal domine. (3) TOUJOURS vérifier la syntaxe (le bouton de contrôle signale les erreurs) avant d'utiliser une formule. (4) Attention au TYPE : une formule renvoie un type précis ; mélanger des types (texte + nombre sans conversion) provoque des erreurs — on convertit avec ToText, ToNumber… (5) Les formules sont réutilisables et se combinent (une formule peut en utiliser une autre). Maîtriser l'éditeur de formules — champs, opérateurs, fonctions, syntaxe — débloque la personnalisation illimitée des rapports : calculs, textes composés, logique conditionnelle. C'est le cœur de la puissance de Crystal Reports.

Vocabulaire de la section

Formule
Un CALCUL ou une logique que vous créez pour produire une valeur absente de la base (TTC = HT × 1,2, marge, nom+prénom, catégorie calculée). Créée dans l'éditeur, placée comme un champ.
Éditeur de formules (Formula Workshop)
L'atelier où l'on écrit les formules : listes des champs ({table.champ}), des fonctions (par catégorie) et des opérateurs, avec vérification de syntaxe.
Syntaxe Crystal vs Basic
Deux langages au choix pour écrire les formules (même résultat) : Crystal (historique, la plus répandue) et Basic (proche de Visual Basic). S'en tenir à une seule pour la cohérence.
Briques d'une formule
Références de CHAMPS ({table.champ}), OPÉRATEURS (arithmétiques, comparaison, logiques And/Or/Not, concaténation), FONCTIONS intégrées (maths, texte, dates, conditions), littéraux (nombres, "texte", #dates#).
Type de la formule
Une formule renvoie un TYPE précis (nombre, texte, date, booléen). Mélanger des types sans conversion (texte + nombre) provoque des erreurs → convertir (ToText, ToNumber…).
Vérifiez votre compréhension

À quoi sert une FORMULE dans Crystal Reports ?

Tutoriel 3.1
Tutos « 3.1 » Crystal Reports éditeur formule syntaxe Crystal Basic (recherche)
Cliquer pour voir les résultats à jour ↗

En pratique — Écrire une première formule

  1. Ouvrez l'ÉDITEUR DE FORMULES et créez une formule simple : un calcul (ex. TTC = {Montant} * 1.20) en insérant le champ depuis la liste.
  2. Essayez une concaténation de texte (ex. {Client.Nom} + " " + {Client.Prenom}) et repérez les fonctions par catégorie (maths, texte, dates).
  3. VÉRIFIEZ la syntaxe (bouton de contrôle) : corrigez les erreurs signalées avant d'utiliser la formule.
  4. Placez le champ de formule (désormais dans l'explorateur) dans une section, comme un champ normal ; attention au TYPE (convertir si besoin avec ToText/ToNumber).
Vous créez des formules dans l'éditeur (champs, opérateurs, fonctions), en vérifiant la syntaxe et le type : vous débloquez la personnalisation par le calcul et la logique.

Points clés à retenir

  • Une FORMULE est un calcul/une logique que VOUS créez pour produire une valeur absente de la base (TTC, marge, nom+prénom, catégorie). Créée dans l'ÉDITEUR DE FORMULES, elle apparaît comme un champ à placer.
  • Deux SYNTAXES au choix (même résultat) : CRYSTAL (historique, la plus répandue) et BASIC (proche de VB). S'en tenir à une seule. Briques : champs {table.champ}, opérateurs, FONCTIONS (maths/texte/dates/conditions), littéraux.
  • TOUJOURS VÉRIFIER la syntaxe (bouton de contrôle) avant d'utiliser une formule. Attention au TYPE renvoyé : mélanger texte et nombre sans conversion (ToText/ToNumber) provoque des erreurs.
  • Une formule produit une valeur qu'on peut AFFICHER, TOTALISER, utiliser dans un FILTRE ou une MISE EN FORME. Les formules se combinent (l'une peut en utiliser une autre). C'est le cœur de la puissance de Crystal Reports.

Questions fréquentes

Syntaxe Crystal ou Basic : laquelle choisir, et comment débuter avec les formules ?

Les deux syntaxes (Crystal et Basic) permettent d'écrire les mêmes formules ; le choix est surtout une question de cohérence et de familiarité, et pour débuter il vaut mieux se concentrer sur les concepts que sur la syntaxe. Les deux syntaxes : (1) Syntaxe CRYSTAL : le langage historique, propre à Crystal Reports. C'est la plus RÉPANDUE — la majorité de la documentation, des exemples et des rapports existants l'utilisent. Elle a ses conventions (par exemple, la valeur d'une formule est la dernière expression évaluée). (2) Syntaxe BASIC : proche de Visual Basic, avec une structure plus « programmation classique » (on affecte le résultat à « formula = … »). Plus familière si vous connaissez VB/VBA. Elles produisent le MÊME résultat ; on choisit l'une par formule (indiquée en haut de l'éditeur). Comment choisir : (1) Par défaut, la syntaxe CRYSTAL : c'est la plus courante, donc vous trouverez plus d'exemples et d'aide, et vous lirez plus facilement les rapports des autres. Pour apprendre Crystal Reports, c'est le choix logique. (2) La syntaxe BASIC si vous êtes déjà à l'aise avec Visual Basic et préférez cette structure. (3) Restez COHÉRENT : dans un même rapport/une même organisation, tenez-vous à UNE syntaxe pour que tout le monde s'y retrouve. Comment DÉBUTER avec les formules : (1) Commencez SIMPLE : un calcul arithmétique (TTC = HT × 1,2), une concaténation de texte (nom + « » + prénom). Ces formules de base couvrent déjà beaucoup de besoins. (2) Utilisez l'AIDE de l'éditeur : insérez les champs depuis la liste (plutôt que de taper {table.champ} à la main — évite les fautes), parcourez les FONCTIONS par catégorie (maths, texte, dates, conditions) pour découvrir ce qui existe, et utilisez les opérateurs listés. (3) VÉRIFIEZ la syntaxe (bouton de contrôle) systématiquement : l'éditeur signale les erreurs (parenthèse manquante, type incompatible, champ mal écrit) — corrigez avant d'utiliser. (4) Attention aux TYPES : une formule renvoie un type (nombre, texte, date, booléen) ; pour combiner un nombre et du texte (afficher « Total : 1234 »), convertissez le nombre en texte (ToText). Les erreurs de type sont fréquentes au début. (5) Apprenez les grandes catégories de fonctions progressivement : d'abord les conditions (If…Then…Else — niveau 3-4), puis texte, dates, au fil des besoins. (6) Testez en APERÇU : placez la formule dans le rapport et vérifiez le résultat avec de vraies données. (7) RÉUTILISEZ : une formule peut en appeler une autre — décomposez les calculs complexes en plusieurs formules simples. En résumé : choisissez la syntaxe CRYSTAL par défaut (la plus répandue, plus d'exemples et de support) — ou Basic si vous venez de Visual Basic — et restez cohérent. Pour débuter, commencez par des formules SIMPLES (calculs, concaténations), appuyez-vous sur l'aide de l'éditeur (insérer les champs, explorer les fonctions), VÉRIFIEZ toujours la syntaxe, faites attention aux TYPES (convertir avec ToText/ToNumber), et testez en aperçu. Les formules sont le cœur de la puissance de Crystal Reports ; on les apprend efficacement en partant du simple et en enrichissant au fil des besoins réels.

À quoi servent concrètement les formules dans un rapport, et quels calculs courants réaliser ?

Les formules servent à produire des valeurs et une logique qui n'existent pas dans la base — calculs, textes composés, catégorisations, conditions — et elles interviennent à de nombreux endroits d'un rapport. À quoi servent les formules (les usages) : (1) CALCULER des valeurs dérivées : produire un chiffre à partir d'autres champs. Exemples : montant TTC (HT × taux), marge (prix de vente − coût), remise (montant × taux), total ligne (quantité × prix unitaire), pourcentage (partie / total × 100), âge (à partir d'une date de naissance). Ces calculs sont omniprésents dans les états de gestion. (2) COMPOSER du TEXTE : assembler plusieurs champs et du texte fixe. Exemples : nom complet (nom + « » + prénom), adresse sur une ligne (rue + « , » + ville + « » + code postal), libellé (« Facture n° » + numéro + « du » + date), phrase conditionnelle. (3) CATÉGORISER / classer : créer une catégorie calculée avec de la logique conditionnelle (If…Then…Else) — par exemple classer un montant en « Petit / Moyen / Gros », un délai en « À temps / En retard », un client en « VIP / Standard » selon des seuils. Ces catégories peuvent ensuite servir à REGROUPER (niveau 3-5). (4) Alimenter des FILTRES : une formule peut faire partie de la sélection des enregistrements (attention à la performance côté serveur). (5) Piloter la MISE EN FORME CONDITIONNELLE (3-2) : une formule détermine une couleur, un affichage (négatifs en rouge, dépassements surlignés). (6) Piloter le MASQUAGE de sections (2-5) : afficher/cacher selon une condition. (7) Manipuler les DATES : extraire l'année/le mois (pour regrouper par période), calculer un écart de jours (délai), déterminer un trimestre. (8) Gérer les valeurs NULLES : remplacer un champ vide par une valeur par défaut, éviter les erreurs. Les calculs courants à connaître : (1) Arithmétique de gestion : TTC, HT, TVA, marge, remise, total ligne, pourcentages. (2) Concaténations de texte : noms, adresses, libellés composés. (3) Conditions (If…Then…Else) : catégories, statuts, affichages selon des seuils (le plus puissant — niveau 3-4). (4) Fonctions de DATE : Year, Month, DateDiff (délais), extraction de période. (5) Fonctions de TEXTE : UpperCase/LowerCase, Left/Right (extraire une partie), Trim (nettoyer), Replace. (6) Arrondis et formats numériques : Round. Pourquoi c'est central : les formules transforment un rapport qui se contente d'AFFICHER des champs bruts en un rapport qui CALCULE, INTERPRÈTE et PRÉSENTE l'information de façon utile (des marges, des catégories, des libellés clairs, des indicateurs). C'est ce qui fait passer d'un simple listing à un véritable état analytique. En résumé : les formules servent à CALCULER des valeurs dérivées (TTC, marge, pourcentages, total ligne), COMPOSER du texte (noms, adresses, libellés), CATÉGORISER avec de la logique conditionnelle (petit/moyen/gros, à temps/en retard), manipuler les DATES (année, délais), gérer les nuls, et alimenter filtres, mise en forme conditionnelle et masquage. Les calculs les plus courants sont l'arithmétique de gestion, les concaténations, les conditions If…Then…Else et les fonctions de date/texte. Maîtriser les formules débloque une personnalisation illimitée — c'est ce qui rend un rapport intelligent et réellement utile, au-delà du simple affichage des données brutes.

Autres ressources