2.1Tris & regroupements (groupes)
L'essentiel en 30 secondes
- Tri = ordonner, groupe = structurer : le tri ordonne les lignes, le regroupement crée des blocs avec en-tête et pied — regrouper inclut un tri, pas l'inverse.
- Group Expert = champ + ordre : on choisit le champ de regroupement, Crystal insère les sections En-tête/Pied — l'en-tête nomme, le pied totalisera.
- Imbriquer avec ordre : Région > Client > Commandes, du plus englobant au plus fin — 2-3 niveaux suffisent.
Mini-cas filé — Farès et l'état des ventes illisible
Farès, contrôleur de gestion à Alger, reçoit chaque mois une liste brute de 800 commandes dans l'ordre aléatoire de la base : introuvable pour la direction. Il commence par trier (Assistant de tri, par date), puis insère un groupe par client via le Group Expert : chaque client obtient son bloc avec son nom en en-tête. Il ajoute ensuite un second niveau — groupe Région au-dessus du groupe Client — et trie les commandes par date dans chaque client. La liste plate devient un état hiérarchisé Région > Client > Commandes. Cet état « ventes de Farès » revient en 2.2 (sous-total par client et par région), 2.3 (filtrer sur l'année en cours), 2.4 (paramètre année et région) et 2.5 (version synthèse pour la direction).
Fil conducteur du niveau 2 : l'état des ventes de Farès revient dans le cours, le schéma, le script et le défi 48h — et continue en 2.2, 2.3, 2.4 et 2.5.
1. Trier puis regrouper
Le tri ordonne les enregistrements selon un ou plusieurs champs (date croissante, montant décroissant, nom alphabétique), via l'Assistant de tri des enregistrements (Record Sort) : on choisit le(s) champ(s) et le sens. Un rapport trié est immédiatement plus lisible qu'une liste dans l'ordre aléatoire de la base. Le regroupement va plus loin : il ORGANISE les enregistrements en groupes selon la valeur d'un champ (par client, par région, par mois). Crystal Reports crée alors, pour chaque groupe, une section En-tête de groupe (Group Header) et une section Pied de groupe (Group Footer) autour des lignes de détail du groupe. Farès regroupe d'abord par client : toutes les commandes d'un même client se retrouvent ensemble, nommées en en-tête.
2. Comment regrouper (Group Expert)
On utilise l'Assistant de regroupement (Insert Group / Group Expert) : on choisit le champ de regroupement (par exemple le client) et l'ordre des groupes (croissant, décroissant). Crystal Reports insère les sections de groupe et trie automatiquement les enregistrements par ce champ — regrouper, c'est trier + structurer. On peut créer plusieurs niveaux de groupes imbriqués : grouper par région, puis dans chaque région par client — une hiérarchie (Région > Client > Commandes). L'ordre des groupes définit la hiérarchie : le groupe extérieur d'abord (Région avant Client). Farès vérifie l'ordre dans le Group Expert avant de valider.
3. Ce que le regroupement débloque
L'En-tête de groupe affiche généralement le nom du groupe (« Client : Haddad ») ; le Pied de groupe accueille les sous-totaux (section 2.2). On peut aussi trier les enregistrements dans chaque groupe (par date, par montant) en plus du tri de regroupement. Point de méthode : distinguer tri (ordonner les lignes) et regroupement (organiser en blocs avec en-têtes, pieds et sous-totaux). Le regroupement est un concept central du reporting : il transforme une liste plate en état organisé, hiérarchisé et prêt pour les totaux. Avec des groupes en place, Farès ajoutera les totaux et sous-totaux en 2.2.
🔎 Exemple concret — 🔎 Exemple concret — Grouper par client
L'état des ventes de Farès, de la liste plate aux blocs logiques :
Group Expert → grouper par Client.
En-tête de groupe : « Client : Haddad ».
Détails : ses commandes (triées par date).
Pied de groupe : total du client (voir 2.2).
Lecture : chaque client forme un bloc nommé, ses commandes sont ordonnées, le pied attend le sous-total.
Leçon : pour une hiérarchie, placer le groupe extérieur (Région) avant le groupe intérieur (Client).
Vocabulaire de la section
- Tri des enregistrements
- Ordonner les lignes selon un ou plusieurs champs (date croissante, montant décroissant) via l'Assistant de tri (Record Sort).
Exemple simple : Farès trie ses 800 commandes par date croissante.
Ce que ce n'est pas : un regroupement en blocs avec en-têtes et pieds.
Réflexe : liste à lire = trier d'abord.
- Regroupement (groupe)
- Organiser les enregistrements en BLOCS selon la valeur d'un champ (par client, région, mois), avec sections En-tête et Pied de groupe.
Exemple simple : Farès regroupe ses commandes par client, puis par région.
Ce que ce n'est pas : un simple ordre de lignes sans structure.
Réflexe : blocs + sous-totaux voulus = regrouper.
- En-tête / Pied de groupe
- Sections créées par le regroupement : l'En-tête affiche le nom du groupe, le Pied accueille ses sous-totaux (2.2).
Exemple simple : « Client : Haddad » en en-tête, total du client en pied.
Ce que ce n'est pas : l'en-tête et le pied de page du rapport.
Réflexe : nommer en haut, totaliser en bas.
- Groupes imbriqués
- Plusieurs niveaux de groupes emboîtés (Région > Client > Commandes) ; l'ordre définit la hiérarchie, extérieur d'abord.
Exemple simple : Farès place Région au-dessus de Client dans le Group Expert.
Ce que ce n'est pas : plusieurs tris indépendants sans hiérarchie.
Réflexe : englobant d'abord, limiter à 2-3 niveaux.
En pratique — En pratique — Trier et regrouper
- Triez les enregistrements (Assistant de tri) selon un champ pertinent (date, montant, nom) et le sens voulu.
- Insérez un GROUPE (Group Expert) sur un champ (par client, par mois) : vérifiez que Crystal crée les sections En-tête/Pied de groupe.
- Affichez le nom du groupe dans l'En-tête de groupe (« Client : … ») ; réservez le Pied de groupe aux sous-totaux (2.2).
- Créez des groupes IMBRIQUÉS (Région > Client) et triez les enregistrements DANS chaque groupe (par date/montant).
Script prêt à dire — expliquer le regroupement à la direction (30 s)
« Notre état des ventes n'est plus une liste de 800 lignes : il est regroupé par région puis par client, chaque bloc est nommé et trié par date. En pied de chaque bloc, on mettra le sous-total — c'est l'étape suivante. Même données, mais enfin lisibles : on voit chaque client, chaque région, sans chercher. »
À dire en montrant la liste brute puis l'état regroupé de Farès, un bloc client ouvert.
Modèle copier-coller — plan de regroupement
[Niveau 1] Groupe extérieur : {Commandes.Region} (croissant)
En-tête G1 : « Région : » + {Commandes.Region}
[Niveau 2] Groupe intérieur : {Commandes.Client} (croissant)
En-tête G2 : « Client : » + {Commandes.Client}
Détails : {Commandes.DateCommande}, {Commandes.Montant} (triés par date)
Pied G2 : sous-total client (voir 2.2)
Pied G1 : sous-total région (voir 2.2)
Ventes par mois
Farès regroupe les commandes par mois : chaque mois forme un bloc nommé, prêt pour le sous-total mensuel.
Clients par wilaya
Hiérarchie Région > Client : Farès place la région en groupe extérieur pour la synthèse par zone.
Produits par catégorie
Catalogue regroupé par catégorie : l'en-tête nomme la catégorie, les détails listent les produits triés par nom.
Trop de niveaux
Quatre niveaux imbriqués rendent l'état confus : Farès redescend à 2 niveaux et trie le détail.
✓ Bonnes pratiques
- Regroupez du plus englobant au plus fin (Région avant Client).
- Triez les lignes dans chaque groupe (par date/montant) pour la lisibilité.
- Limitez l'imbrication à 2-3 niveaux (au-delà, le rapport devient confus).
✗ Pièges fréquents
- Confondre tri (ordonner) et regroupement (structurer + sous-totaux).
- Un mauvais ordre de groupes qui inverse la hiérarchie.
- Trop de niveaux imbriqués (rapport confus et très long).
Points clés à retenir
- TRI = ordonner les lignes ; REGROUPEMENT = organiser en blocs (par client, mois…), créant En-tête et Pied de groupe.
- L'En-tête de groupe affiche le nom du groupe ; le Pied accueille les SOUS-TOTAUX (2.2).
- Groupes IMBRIQUÉS possibles (hiérarchie) — l'ordre compte (groupe extérieur d'abord).
- Le regroupement est central : il transforme une liste plate en état exploitable.
Défi 48h — appliquez demain
Prenez un vrai état plat (celui de Farès ou le vôtre) : triez-le par un champ pertinent, ajoutez un groupe via le Group Expert avec le nom en en-tête, puis testez une hiérarchie à 2 niveaux (extérieur d'abord).
- Je peux trier les enregistrements (champ + sens) via l'Assistant de tri.
- Je sais créer un groupe (Group Expert) avec en-tête nommé et pied réservé.
- Je peux imbriquer 2 niveaux dans le bon ordre (extérieur d'abord).
Questions fréquentes
Différence entre trier et regrouper, et quand utiliser chacun ?
Le tri ORDONNE les lignes (par date, montant, nom) : elles restent une liste continue, dans un ordre logique — pour une liste lisible sans blocs ni sous-totaux. Le regroupement les ORGANISE en groupes selon un champ (par client, région), créant une section En-tête (nom du groupe) et Pied (sous-totaux) autour des détails — pour structurer en catégories et calculer des sous-totaux. Le regroupement inclut un tri (sur le champ de groupe) mais ajoute la structure. Utilisez le tri seul pour une liste simple ; le regroupement dès que vous voulez des blocs ou des sous-totaux ; combinez-les (grouper par client, trier les lignes par date dans chaque groupe).
Comment créer une hiérarchie avec des groupes imbriqués ?
Insérez plusieurs groupes ; leur ordre définit la hiérarchie (le premier = niveau extérieur). Pour « Région > Client » : groupe 1 = Région, groupe 2 = Client (imbriqué dans chaque région). Crystal Reports crée En-tête groupe 1 (Région), En-tête groupe 2 (Client), Détails (commandes), Pied groupe 2 (total client), Pied groupe 1 (total région), Pied de rapport (total général) — une pyramide de sous-totaux. Respectez une hiérarchie logique (Région > Client, pas l'inverse), limitez à 2-3 niveaux, gérez la pagination (nouvelle page par groupe si besoin), et mettez un sous-total dans chaque Pied de groupe.
Que crée un regroupement autour des lignes de détail ?