Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Crystal Reports > Formules
Formules Forum sur l'utilisation des formules sous Crystal reports
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/09/2005, 15h25   #1
Invité de passage
 
Inscription : août 2002
Messages : 8
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 8
Points : 3
Points : 3
Par défaut [CR10] Formule et moment d'évaluation

Re-Bonjour,

Je décrit rapidement mon probléme :
Débutant, je doit faire un état capable d'imprimer X factures sur CR 10
Je veut mettre en pied de page le prix total de la facture.
En pied de page je ne peut pas mettre de champ "somme". Alors je fait le calcul moi méme de cette façon (simplifié) :


En-Téte du groupe "Facture" :
Code :
Global NumberVar TOTAL = 0;
Détail :
Code :
Global NumberVar TOTAL := TOTAL + {PRIX}
Pied de page :
Code :
1
2
WhileReadingRecords;
      global NumberVar TOTAL;
Cela marche bien si je ne fait qu'une facture. Mais si j'édite plusieurs factures dans l'état alors tout les totaux s'additionne. C'est à dire :
Total facture 1 = total Facture 1
Total facture 2 = total Facture 1 + total facture 2
Total facture 3 = total Facture 1 + total facture 2 + total facture 3
Etc...

Le probléme est donc au niveau de la remise à zéro.
Alors j'ai essayé de mettre WhilereadingRecords, mais alors la somme ne se fait plus car la remise à zéro s'éffectue à chaque ligne de détail, malgré que mon champ de formule est dans l'entéte de groupe...

Alors j'ai essayer de mettre mon champ en pied du groupe "Facture" de cette façon :
Code :
IF NextIsNull ({NUMFACTURE}) then TOTAL :=0;
[NUMFACTURE est obligatoire]

Mais NextIsNull ne prends pas en compte les groupes. il renvoie vrai uniquement en fin d'état, quand il n'y a plus du tout d'enregistrement à traiter pour l'état.

J'ai essayer plein d'autre chose mais je ne vais pas tout énumérer.

Avez-vous une iddée de comment je doit/peut faire ?

Ou, savez vous comment je peut détecter que je suis en début ou fin de groupe dans une telle formule ? Pour faire quelquechose du genre :

Si NouveauGroupe Alors TOTAL := 0;
J'en réve

Merci !

Balises [Code] ajoutées par l.nico
merci d'y penser à l'avenir
DukeMc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2005, 16h25   #2
Membre habitué
 
Inscription : février 2004
Messages : 260
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 260
Points : 114
Points : 114
salut,
je ne comprend pas why tu ne peux pas mettre une somme en pied de page.
Je me sers aussi de CR pr faire des factures et il me fait bien la somme sur chaque facture.

Sandrine
speed034 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2005, 16h39   #3
Invité de passage
 
Inscription : août 2002
Messages : 8
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 8
Points : 3
Points : 3
Je n'arrive pas à mettre un champ de type "somme" dans mon pied de page. J'ai un sigle interdit. Je peut en mettre en pied de groupe et en pied d'état, mais pas en pied de page.

C'est pour ça que j'utilise cette formule.

Et je suis obligé de mettre mon total en pied de page [a moins que quelqu'un sache comment répéter un pied de groupe sur chaque page ?]

Utilise tu une formule ou un champ de type "résumé-somme" dans ton pied de page ? Et si tu utilise une formule pourrait-tu m'en dire d'avantage stp ?

Merci
DukeMc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2005, 18h17   #4
Membre habitué
 
Inscription : février 2004
Messages : 260
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 260
Points : 114
Points : 114
En effet moi je passe par des sous report.
Arrfff, Pour le montant, moi je le met dans l'entete(page header) et c'est vrai que je n'y étais pas arrivée. J'ai une requete spécial afin de récuperer directement le montant total.

Désolé.
Sinon essaie de jouer avec les groupes, entete etc...
Pour détecter si tu changes de groupe, pourquoi ne jouerais-tu pas avec les variables partagées?
Tu te créés un formula fields dans un groupe, un autre pour l'autre groupe et tu incrementes ta variable si tu y passes.
(variable partagé : shared var as number)
Je ne sais pas trop quoi te conseiller.
Dis nous si tu trouves

Sandrine
speed034 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2005, 10h30   #5
Invité de passage
 
Inscription : août 2002
Messages : 8
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 8
Points : 3
Points : 3
Ma collégue de retour ma donner la solution pour savoir si je suis en fin de groupe :

Dans mon pied de page :

if next ({matable.cle1}) = {matable.cle1} then
// C'est la fin du groupe

Moi je pensais que le next aurait une valeur null ou quelquechose du genre, et non pas la méme...

PS : je sais pas d'où elle sort ça

De plus je n'utilise plus ma formule pour calculer mon total, mais je le calcul par avance et le passe par BDD à crystal report.

La formule pour savoir si je suis ou non en fin de groupe me sert pour cacher (supprimer mais avec "réservation de l'espace", <> de quand on coche la case supprimer, ou là l'espace n'est pas "remplit de vide") mon pied de page tant que je ne suis pas en fin de groupe. [Voir mon probléme du post précédent]


pioufffff...
DukeMc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2005, 10h59   #6
Membre habitué
 
Inscription : février 2004
Messages : 260
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 260
Points : 114
Points : 114
coool merci pour la soluc
bonne journée

++sandrine
speed034 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h23.


 
 
 
 
Partenaires

Hébergement Web