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:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
WhilePrintingRecords;
numberVar Total;
Total := {TABLE_SOURCE.Nombre} - Total;
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

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'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
EvaluateAfter ({@Calcul_Cumul});
numberVar AncienneValeur := 0;
AncienneValeur := {TABLE_SOURCE.Nombre};
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
5
 
WhilePrintingRecords;
numberVar Total := 0;
numberVar AncienneValeur;
Total := {TABLE_SOURCE.Nombre}-AncienneValeur;
Je place le premier champ 'Montant' dans l'en-tête de groupe ainsi que dans le détail
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.....