Bonjour à tous,
Débutant sous Crystal, je m'en remet à vous pour résoudre mon problème.
Je ne sais pas si cela est possible, j'y parviens presque mais je pense manquer d'expérience pour aboutir à un résultat fiable. Je m'explique:
Je récupère des données depuis une source ODBC dans un rapport crystal.
Les données sont du type:
Temps | Valeur
(Date | Nombre )
exemple:
04/05/2006 14:35:52 | 112450
04/05/2006 14:36:52 | 112460
Dans les nombres on récupère un cumul des valeurs, seulement je souhaiterais ajouter une colonne avec comme valeur la différence avec la valeur précédente.
Comme ceci:
ColA | ColB | ColC
x1 | y1 | 0
x2 | y2 | y2-y1
J'imagines que c'est possible car Crystal me semble un outil performant, en revanche je ne sais pas du tout vers quoi m'orienter.
Pour le moment j'ai créer le champ avec formule comme ceci:
Le seul problème c'est qu'il se réinitialise mal, 1 coup sur 2 et la première valeur est égal à celle de y1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 WhilePrintingRecords; numberVar Total; Total := {TABLE_SOURCE.Nombre} - Total;
Quelqu'un a-t-il un conseil pour moi?
Bon et bien ce n'était pas sans mal mais j'ai trouvé la solution:
Pour faire ce que je souhaites, il m'a fallu passer par 2 champs calculé
Le premier est un champ qui initialise une variable avec l'ancienne valeur:
Le champ s'appel 'Montant'
Un deuxième champ qui s'appel lui 'Calcul_Cumul' réalise le calcul
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 EvaluateAfter ({@Calcul_Cumul}); numberVar AncienneValeur := 0; AncienneValeur := {TABLE_SOURCE.Nombre};
Je place le premier champ 'Montant' dans l'en-tête de groupe ainsi que dans le détail
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 WhilePrintingRecords; numberVar Total := 0; numberVar AncienneValeur; Total := {TABLE_SOURCE.Nombre}-AncienneValeur;
Et je place le champ 'Calcul_Cumul' dans ma 3ème colonne.
Le résultat est sans appel: ça marche!!!
J'espere que ça aidera quelqu'un d'autre...
Bye, à bientôt pour de nouveaux problèmes.....
Partager