3.3Cumuls en cours d'exécution (running totals)
Un besoin fréquent que les résumés classiques ne couvrent pas bien : le CUMUL EN COURS D'EXÉCUTION (Running Total) — une somme (ou un compte) qui s'ACCUMULE ligne après ligne, affichant le total « à cette ligne ». Exemples : un solde progressif dans un relevé de compte (chaque ligne montre le solde cumulé) ; un classement où l'on additionne au fur et à mesure ; un « total à ce jour ». Là où un résumé (niveau 2-2) donne UN total à la fin d'un groupe ou du rapport, le cumul en cours d'exécution donne le total INTERMÉDIAIRE à CHAQUE ligne, en progressant. Crystal Reports fournit un outil dédié : les champs de cumul en cours d'exécution (Running Total Fields), créés dans l'explorateur de champs. On y définit trois choses : (1) le CHAMP à cumuler et l'OPÉRATION (Somme, Nombre…) ; (2) la CONDITION d'évaluation (pour chaque enregistrement, sous condition…) ; (3) surtout la condition de RÉINITIALISATION (Reset) — quand remettre le cumul à zéro : jamais (cumul global), à chaque changement de groupe (cumul qui repart par groupe), ou sur une formule.
La clé du cumul en cours d'exécution est la RÉINITIALISATION. (1) Ne jamais réinitialiser : le cumul court sur tout le rapport (un total qui monte du début à la fin — un solde global progressif). (2) Réinitialiser à chaque changement de GROUPE : le cumul repart de zéro pour chaque groupe (un solde progressif PAR client, PAR compte) — très utile pour les relevés par entité. (3) Réinitialiser sur une FORMULE : condition personnalisée. Comprendre et bien régler la réinitialisation est ce qui fait la différence entre un cumul correct et un total incohérent. Points importants. (1) Un cumul en cours d'exécution affiche le total À CHAQUE ligne (progressif), contrairement au résumé qui donne un total à la fin. (2) Le RESET (réinitialisation) est le réglage crucial : jamais (global), par groupe, ou par formule — il détermine le sens du cumul. (3) On peut cumuler conditionnellement (n'ajouter que si une condition est remplie). (4) Les cumuls en cours d'exécution évitent des calculs manuels complexes (on n'a pas à programmer un compteur) — l'outil gère l'accumulation. (5) Ils s'affichent dans la section Détails (le cumul à chaque ligne) ou dans un pied (le cumul final). Attention à l'ORDRE des lignes : un cumul progressif dépend de l'ordre (trier avant). Maîtriser les cumuls en cours d'exécution permet de produire des relevés, soldes progressifs et totaux courants — des états très demandés en comptabilité et gestion, difficiles à faire autrement. C'est un outil spécialisé mais précieux.
Vocabulaire de la section
- Cumul en cours d'exécution (Running Total)
- Une somme/un compte qui s'ACCUMULE ligne après ligne, affichant le total « à cette ligne » (solde progressif, total à ce jour). Différent d'un résumé (total à la fin).
- Champ de cumul (Running Total Field)
- Objet dédié créé dans l'explorateur : on définit le champ à cumuler, l'opération (Somme, Nombre…), la condition d'évaluation et la RÉINITIALISATION.
- Réinitialisation (Reset)
- Le réglage CRUCIAL : quand remettre le cumul à zéro — JAMAIS (cumul global sur tout le rapport), à chaque changement de GROUPE (repart par groupe), ou sur une FORMULE.
- Cumul vs résumé
- Le RÉSUMÉ (2-2) donne UN total à la fin d'un groupe/du rapport ; le CUMUL donne le total INTERMÉDIAIRE à CHAQUE ligne, en progressant.
- Dépendance à l'ordre
- Un cumul progressif dépend de l'ORDRE des lignes : trier correctement les enregistrements AVANT, sinon le cumul n'a pas de sens.
Quel réglage est CRUCIAL pour un cumul en cours d'exécution (solde progressif) ?
En pratique — Créer un cumul en cours d'exécution
- Créez un champ de cumul (explorateur → Running Total Fields → Nouveau) : choisissez le champ à cumuler et l'opération (Somme).
- Réglez la RÉINITIALISATION selon le besoin : jamais (solde global progressif) ou à chaque changement de GROUPE (solde par client/compte).
- Placez le cumul dans la section Détails (le total à chaque ligne) ; assurez-vous que les lignes sont bien TRIÉES (le cumul dépend de l'ordre).
- Vérifiez en aperçu : le total progresse ligne après ligne et se réinitialise (ou non) comme prévu.
Points clés à retenir
- Le CUMUL EN COURS D'EXÉCUTION (Running Total) accumule ligne après ligne et affiche le total « à cette ligne » (solde progressif, total à ce jour) — contrairement au RÉSUMÉ qui donne un total à la fin.
- Outil dédié : les CHAMPS DE CUMUL (Running Total Fields) — on définit le champ, l'opération (Somme, Nombre…), la condition d'évaluation et surtout la RÉINITIALISATION.
- Réglage CRUCIAL : la RÉINITIALISATION (Reset) — JAMAIS (cumul global sur tout le rapport), à chaque changement de GROUPE (repart par groupe : solde par client/compte), ou sur une FORMULE. Elle détermine le sens du cumul.
- Un cumul progressif DÉPEND DE L'ORDRE des lignes (trier avant). Les cumuls évitent des calculs manuels complexes — précieux pour relevés et soldes progressifs (comptabilité, gestion).
Questions fréquentes
Quand utiliser un cumul en cours d'exécution plutôt qu'un résumé classique, et comment régler la réinitialisation ?
Le cumul en cours d'exécution et le résumé répondent à des besoins différents : le résumé donne UN total final, le cumul donne le total PROGRESSIF à chaque ligne — et le réglage de la RÉINITIALISATION est ce qui rend le cumul correct. Résumé vs cumul en cours d'exécution : (1) Le RÉSUMÉ (niveau 2-2) donne UN total à la fin d'un groupe (sous-total) ou du rapport (total général) — une seule valeur qui synthétise. Utilisez-le quand vous voulez juste le total d'un groupe ou global (le total des ventes par client, le total général). (2) Le CUMUL EN COURS D'EXÉCUTION donne le total INTERMÉDIAIRE à CHAQUE ligne, en s'accumulant. Utilisez-le quand vous voulez voir le total PROGRESSER ligne après ligne — typiquement : un SOLDE progressif (relevé de compte où chaque ligne montre le solde après l'opération), un total « à ce jour », un cumul de classement, une part cumulée. Le résumé ne peut pas faire cela (il ne donne qu'un total final, pas la progression). Quand choisir le cumul : (1) Vous voulez un SOLDE ou un total qui se met à jour LIGNE PAR LIGNE (relevé bancaire, suivi cumulé). (2) Vous voulez montrer la PROGRESSION d'un total (combien atteint à chaque étape). (3) Vous voulez un cumul qui repart par catégorie (solde progressif PAR client). Dans tous ces cas, le résumé ne suffit pas — le cumul en cours d'exécution est l'outil. Comment régler la RÉINITIALISATION (le point crucial) : la réinitialisation détermine QUAND le cumul repart de zéro, donc le SENS du cumul. (1) « Ne jamais réinitialiser » : le cumul court sur TOUT le rapport, du début à la fin, sans jamais repartir de zéro. Résultat : un total GLOBAL progressif (un solde qui monte continûment). À utiliser pour un cumul global (total à ce jour sur tout le rapport). (2) « Réinitialiser à chaque changement de GROUPE » : le cumul repart de zéro au début de chaque groupe. Résultat : un solde/total progressif PAR GROUPE (par client, par compte, par mois). C'est le cas le plus fréquent pour les relevés par entité (chaque client a son solde progressif indépendant). (3) « Réinitialiser sur une FORMULE » : condition personnalisée (repartir quand une condition change) — pour des cas particuliers. Comment choisir le reset : (1) Cumul global sur tout le rapport → NE JAMAIS réinitialiser. (2) Cumul qui repart par catégorie (par client, par mois) → réinitialiser au changement de GROUPE (choisissez le bon groupe). (3) Condition spécifique → formule. Points d'attention : (1) L'ORDRE des lignes : un cumul progressif dépend de l'ordre — TRIEZ correctement les enregistrements avant (par date pour un relevé), sinon le cumul progresse dans le désordre et n'a aucun sens. (2) Le bon GROUPE de réinitialisation : si vous réinitialisez au mauvais niveau de groupe (avec des groupes imbriqués), le cumul repart au mauvais moment. (3) Vérifiez en aperçu que le cumul progresse et se réinitialise comme prévu. En résumé : utilisez un CUMUL EN COURS D'EXÉCUTION (et non un résumé) quand vous voulez un total PROGRESSIF ligne par ligne — solde progressif, total à ce jour, cumul par groupe. Le réglage clé est la RÉINITIALISATION : « ne jamais » pour un cumul global, « au changement de groupe » pour un cumul qui repart par catégorie (relevé par client), ou une formule pour un cas spécifique. Veillez à trier les lignes (le cumul dépend de l'ordre) et à choisir le bon niveau de reset. Les cumuls en cours d'exécution produisent des relevés et soldes progressifs très demandés, impossibles avec de simples résumés — un outil spécialisé mais précieux.
Mon solde progressif ou cumul donne des résultats incohérents : quelles sont les causes fréquentes ?
Un cumul incohérent vient presque toujours d'un problème d'ORDRE des lignes, de RÉINITIALISATION mal réglée, ou d'une condition d'évaluation inadaptée — voici les causes fréquentes et leurs remèdes. (1) Les lignes ne sont pas dans le bon ORDRE (cause n°1). Un cumul progressif ADDITIONNE dans l'ordre où les lignes apparaissent. Si les enregistrements ne sont pas triés correctement (par date pour un relevé, par séquence logique), le cumul progresse dans le désordre : les soldes intermédiaires n'ont aucun sens (le solde « après une opération » suppose que les opérations sont dans l'ordre chronologique). Remède : TRIEZ les enregistrements dans l'ordre attendu (généralement par date/séquence) AVANT le cumul. C'est l'erreur la plus fréquente et la plus déroutante (le total final peut être bon, mais les intermédiaires faux). (2) La RÉINITIALISATION est mal réglée. Si vous vouliez un solde par client mais que le reset est « ne jamais réinitialiser », le cumul ne repart pas entre clients (il continue de monter d'un client à l'autre) — les soldes par client sont faux. Inversement, un reset au mauvais groupe fait repartir le cumul au mauvais moment. Remède : réglez la réinitialisation selon l'intention (jamais pour un cumul global ; au changement du BON groupe pour un cumul par catégorie). (3) La CONDITION D'ÉVALUATION est inadaptée. Un cumul peut être conditionnel (n'ajouter que pour certaines lignes). Si la condition d'évaluation (« évaluer pour chaque enregistrement » vs « sous condition ») ne correspond pas au besoin, le cumul ajoute trop ou pas assez de lignes. Remède : vérifiez la condition d'évaluation (par défaut « pour chaque enregistrement » ; ajustez si vous ne voulez cumuler que sous condition). (4) DOUBLONS de jointure. Comme pour les résumés, si une jointure multiplie les lignes, le cumul additionne des valeurs dupliquées → il gonfle. Remède : vérifiez les jointures et le grain des données (niveau 0). (5) Cumul placé dans la mauvaise SECTION. Le cumul s'affiche généralement dans la section Détails (le total à chaque ligne) ; placé ailleurs, il peut ne montrer qu'une valeur (le cumul final) ou se comporter autrement que voulu. Remède : placez le cumul dans Détails pour voir la progression, ou dans un pied pour le total final. (6) Interaction avec les GROUPES imbriqués : avec plusieurs niveaux de groupes, le reset doit viser le bon niveau ; une erreur de niveau fausse la logique. La méthode de diagnostic : (1) Vérifiez d'ABORD l'ORDRE des lignes (trié comme attendu ?) — la cause la plus fréquente. (2) Vérifiez la RÉINITIALISATION (jamais / bon groupe / formule) selon l'intention. (3) Vérifiez la CONDITION d'évaluation. (4) Vérifiez l'absence de DOUBLONS (jointures). (5) Vérifiez la SECTION d'affichage. (6) Recoupez le total final avec une valeur connue, et suivez quelques lignes à la main pour valider la progression. En résumé : un cumul incohérent vient surtout d'un mauvais ORDRE des lignes (trier avant — cause n°1), d'une RÉINITIALISATION inadaptée (jamais vs par groupe), d'une condition d'évaluation inadaptée, de DOUBLONS de jointure, ou d'un mauvais placement/niveau. Diagnostiquez en vérifiant d'abord l'ordre, puis le reset, la condition, les jointures et la section. Un cumul correct exige des lignes bien triées et une réinitialisation qui correspond exactement à l'intention — c'est ce qui garantit des soldes progressifs justes.