2.4Paramètres & invites (prompts)
L'essentiel en 30 secondes
- Paramètre = valeur demandée à l'exécution : nom, invite claire, type — le rapport s'adapte à la saisie.
- Usage n°1 = filtrer : le paramètre alimente la sélection — un seul modèle pour toutes les années et régions.
- Liste + défaut + serveur : menu de valeurs, valeur courante pré-remplie, filtre côté base — guidé, rapide, sans faute.
Mini-cas filé — Farès et les douze copies du même état
Farès maintient une copie de son état par année et par région : douze fichiers quasi identiques, chaque correction à reporter partout. Il crée un paramètre Année (invite « Sélectionnez l'année », type nombre, liste 2024-2026, défaut 2026) et un paramètre Région (liste de valeurs), puis les intègre à sa sélection : l'utilisateur choisit à l'exécution, un seul modèle sert tous les cas. Il affiche même l'année choisie dans le titre (« Ventes 2026 — Nord »). En 2.5, il ajoutera un paramètre « Afficher le détail ? » pour basculer synthèse/détail sans dupliquer le rapport.
Suite du fil rouge 2.3 : le filtre figé de Farès devient interactif — et continue en 2.5.
1. Une valeur demandée à l'exécution
Un paramètre (Parameter) est une valeur que Crystal Reports demande à l'utilisateur au moment d'exécuter le rapport (« Quelle année ? », « Quel client ? », « Montant minimum ? »). L'utilisateur saisit ou choisit une valeur, et le rapport s'adapte. On crée un paramètre dans l'explorateur de champs (« Champs de paramètre → Nouveau ») : on lui donne un nom, une invite (prompt) — le texte affiché : « Sélectionnez l'année » — un type (nombre, texte, date, booléen…) et des options (valeur unique ou multiple, liste de valeurs, valeur par défaut). Farès crée {?Annee} et {?Region} pour son état des ventes.
2. Usage n°1 : filtrer
Le plus courant : le paramètre alimente la sélection des enregistrements (2.3) — par exemple « Date de commande dans l'année {?Annee} » — pour n'afficher que les données choisies. Un seul rapport sert ainsi pour toutes les années, tous les clients, au lieu d'un rapport par cas. Autres usages : afficher la valeur choisie dans le rapport (« Ventes {?Annee} — {?Region} ») pour titrer selon la saisie, ou piloter des formules et la mise en forme (niveau 3). Farès remplace sa valeur 2026 en dur par {?Annee} : le rapport 2025, 2026 ou Nord, Sud sort du même modèle.
3. Options et bonnes pratiques
Options importantes : valeurs multiples (choisir plusieurs clients à la fois, filtre « dans la liste »), plage (entre deux dates), liste de valeurs (menu déroulant : statique, ou dynamique alimentée par la base — niveau 5), valeur par défaut, paramètre optionnel. Les paramètres se combinent (année ET région ET seuil). Bonnes pratiques : intégrer le paramètre au filtre en restant côté serveur (performance, 2.3) ; soigner l'invite (texte clair) ; proposer une liste de valeurs quand c'est possible (évite les fautes de saisie « nord » contre « Nord »). Farès liste les régions et pré-remplit l'année en cours.
🔎 Exemple concret — 🔎 Exemple concret — Un modèle pour toutes les années
L'état de Farès, de la valeur figée au paramètre :
Avant (en dur) : Year({Commandes.DateCommande}) = 2026 → un rapport par année.
Après (paramètre) : Year({Commandes.DateCommande}) = {?Annee}
and {Clients.Region} = {?Region} → l'utilisateur choisit ; un seul modèle.
Lecture : le paramètre remplace la valeur en dur dans la formule de sélection.
Leçon : proposer une liste de valeurs + une valeur par défaut pour guider la saisie.
Vocabulaire de la section
- Paramètre (Parameter)
- Une valeur DEMANDÉE à l'utilisateur à l'exécution (année, client, seuil) ; le rapport s'adapte à la saisie. Créé dans l'explorateur (Champs de paramètre).
Exemple simple : Farès crée {?Annee} : l'utilisateur choisit 2025 ou 2026 à l'exécution.
Ce que ce n'est pas : une valeur figée en dur dans le filtre.
Réflexe : cas multiples = paramètre, pas copie.
- Invite (prompt)
- Le texte affiché à l'utilisateur pour saisir le paramètre (« Sélectionnez l'année ») ; à rédiger clairement.
Exemple simple : L'invite de Farès dit « Sélectionnez l'année », pas « Param1 ».
Ce que ce n'est pas : le nom technique interne du paramètre.
Réflexe : invite = phrase claire d'action.
- Paramètre de filtrage
- L'usage le plus courant : le paramètre alimente la SÉLECTION des enregistrements pour n'afficher que les données choisies.
Exemple simple : La sélection de Farès utilise {?Annee} et {?Region} au lieu de valeurs fixes.
Ce que ce n'est pas : un paramètre créé mais jamais branché.
Réflexe : paramètre = branché sur la sélection.
- Options de paramètre
- Type, valeur unique/MULTIPLE, PLAGE, LISTE de valeurs (statique ou dynamique), valeur par DÉFAUT, optionnel.
Exemple simple : Farès autorise plusieurs régions et pré-remplit l'année en cours.
Ce que ce n'est pas : une saisie libre obscure sans guide.
Réflexe : liste + défaut d'abord.
En pratique — En pratique — Créer des paramètres interactifs
- Créez un paramètre (explorateur → Champs de paramètre → Nouveau) : nom, INVITE claire (« Sélectionnez l'année »), type, options (unique/multiple, plage, liste de valeurs, défaut).
- Intégrez-le à la SÉLECTION des enregistrements (« Date de commande dans l'année {?Annee} ») — de façon à rester côté serveur si possible.
- Affichez éventuellement la valeur choisie dans le rapport (titre « Ventes {?Annee} — {?Region} »).
- Testez à l'exécution : l'invite apparaît, vous saisissez/choisissez, le rapport s'adapte. Un seul modèle sert tous les cas.
Script prêt à dire — vendre le modèle unique (30 s)
« Fini les douze copies : un seul état des ventes, avec deux questions au lancement — l'année et la région. Vous choisissez, le rapport filtre et titre en conséquence. Moins de fichiers, une seule correction à faire, et pas de faute de saisie grâce aux listes. Testez : lancez-le pour 2025 Nord puis 2026 Sud. »
À dire en lançant l'état de Farès deux fois avec deux couples de valeurs, titres à l'appui.
Modèle copier-coller — sélection pilotée par paramètres
Year({Commandes.DateCommande}) = {?Annee}
Year({Commandes.DateCommande}) = {?Annee} and {Clients.Region} = {?Region}
{Commandes.DateCommande} in {?PlageDates}
{Clients.Ville} in {?Villes} // paramètre à valeurs multiples
Plage de dates
Farès propose une plage du 01/01 au 31/12 : l'utilisateur saisit deux bornes pour la période.
Plusieurs clients
Paramètre à valeurs multiples : Farès choisit trois clients d'un coup, filtre « dans la liste ».
Seuil de montant
Paramètre seuil avec défaut 1 000 : Farès ne garde que les commandes significatives, modifiable à l'exécution.
Invite obscure
Invite « Param1 : » : personne ne sait quoi saisir — Farès la réécrit « Sélectionnez la région ».
✓ Bonnes pratiques
- Proposez une liste de valeurs (menu déroulant) plutôt qu'une saisie libre.
- Fournissez une valeur par défaut sensée (l'année en cours).
- Intégrez le paramètre au filtre en restant côté serveur (performance).
✗ Pièges fréquents
- Saisie libre source de fautes (préférez une liste de valeurs).
- Un paramètre non intégré au filtre (le rapport ne s'adapte pas).
- Une invite obscure qui déroute l'utilisateur.
Points clés à retenir
- Un PARAMÈTRE est une valeur demandée à l'utilisateur à l'exécution via une INVITE ; le rapport s'adapte.
- Usage n°1 : FILTRER — le paramètre alimente la sélection. Un SEUL rapport sert tous les cas (générique, réutilisable).
- Options : valeurs MULTIPLES, PLAGE, LISTE de valeurs (statique/dynamique), valeur par DÉFAUT. Les paramètres se combinent.
- Bonnes pratiques : rester CÔTÉ SERVEUR, soigner l'INVITE, proposer une LISTE de valeurs. Peut aussi titrer le rapport.
Défi 48h — appliquez demain
Sur votre état filtré en dur : créez un paramètre (invite claire, liste, défaut), branchez-le sur la sélection, affichez-le dans le titre, puis testez 2 valeurs différentes à l'exécution.
- Je peux créer un paramètre (nom, invite, type, liste, défaut).
- Je sais le brancher sur la sélection (rapport qui s'adapte).
- Je teste à l'exécution avec plusieurs valeurs (réutilisable prouvé).
Questions fréquentes
Comment un paramètre rend-il un rapport réutilisable, et comment filtrer avec ?
Sans paramètre, un filtre en dur (Date dans 2026) oblige à modifier ou copier le rapport pour chaque cas. Un paramètre est une valeur demandée à l'exécution : l'utilisateur choisit, et le rapport s'adapte — un seul modèle sert tous les cas. Pour filtrer : (1) créez le paramètre (explorateur → Champs de paramètre → Nouveau : nom, invite, type, options) ; (2) intégrez-le à la sélection des enregistrements en remplaçant la valeur en dur : « Year({Commandes.DateCommande}) = {?Annee} ». À l'exécution, l'invite apparaît et le rapport n'affiche que l'année choisie. Bonnes pratiques : rester côté serveur, proposer une liste de valeurs, une valeur par défaut, et afficher la valeur choisie dans le titre.
Quelles options de paramètres pour une bonne expérience ?
Choisissez le bon type (Nombre, Date, Texte, Booléen). Valeur unique pour un seul choix ; valeurs multiples pour en choisir plusieurs (filtre « est dans la liste »). Plage pour un intervalle (« entre deux dates »). Liste de valeurs (statique ou dynamique — alimentée par la base) pour guider et éviter les fautes de frappe : c'est l'option qui améliore le plus l'expérience. Valeur par défaut pour le cas courant ; paramètre optionnel pour un filtre facultatif. Rédigez des invites claires. Préférez les listes de valeurs à la saisie libre, et couvrez les vrais besoins (multiples/plages) sans multiplier les exécutions.
À quoi sert principalement un paramètre ?