|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : avril 2007 Messages : 12 ![]() |
Bonjour,
Je viens de commencer des rapports avec Crystal Report. Je cherche a calculer l'evolution entre 2 notes de modules d'un cours. Mon rapport affiche les nom du module et le score. 2 modules specifiques d'un cours sont affiches avec leur scores. Pour calculer l'evolution, j'ai cree un "criteria" EVOLUTION_DECIDER. Pour le moment, je n'ai reussi qu'a faire l'affichage d'un resultat du module et non de l'evolution. Je n'arrive pas a creer une deuxieme boucle qui mettrait le score de l'autre module (Module 1 - Introduction) dans une variable locale pretest. Pour ensuite pouvoir faire le calcul de l'evolution a renvoyer dnas EVOLUTION_DECIDER : (posttest_score/pretest_score) -1 = % de l'evolution Code :
CNV_PUB_CMI_REGISTRATION.SCORE: correspond au score du module Si vous avez une idee... Merci d'avance pour votre aide. S'il faut tout reprendre, n'hesitez pas non plus a me proposer autre chose ! Christine. |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Nicolas LAURETChef de projet en SSII Inscription : novembre 2003 Messages : 1 024 ![]() |
Bonjour,
je n'ai pas bien compris votre problème mais s'il s'agit tout simplement d'afficher sous la forme d'un pourcentage l'evolution entre 2 valeurs, je vous donne un exemple (syntaxe basic) : Code :
Bonne continuation.
__________________
Modérateur Business Intelligence / Windev A lire avant de poster Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
|
||
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : avril 2007 Messages : 12 ![]() |
Merci bcp pour la reponse aussi rapide.
Je decouvre le code de Crystal Report. Je ne sais pas encore bien definir les variables et if>then (2 conditions). Est-ce que vous avez un "tutoriel" sur le code de Crystal Report XI (je n'ai pas reussi a trouver) ? J'ai essaye ca, mais sans trop de resultat: Code :
Christine. |
||
|
|
00
|
|
|
#4 |
![]() ![]() Nicolas LAURETChef de projet en SSII Inscription : novembre 2003 Messages : 1 024 ![]() |
Le meilleur tutoriel Crystal c'est la doc et le forum de DVP
.... Le code que j'ai donné en syntaxe basic fonctionne car je l'ai testé sur un etat. Pourquoi vouloir absolument ecrire la formule en syntaxe crystal alors que la syntaxe basic est plus claire à mon sens .... Dans ta formule en syntaxe Crystal, la seule chose qui me choque à priori, je crois que c'est PreviousValue en syntaxe Basic et Previous en syntaxe crystal. Bonne continuation. (dans le pire des cas j'essaierai ton code demain pour voir ce qui cloche mais là je n'ai pas CR sous la main) EDIT : il manque aussi le point virgule après le WhilePrintingRecords
__________________
Modérateur Business Intelligence / Windev A lire avant de poster Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
|
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : avril 2007 Messages : 12 ![]() |
Merci bcp pour les explications Syntaxe basic/crystal.
Apparemment, il manquait aussi un ; apres le then (). Seulement, je ne comprends pas bien comment fonctionne le "record number" et "previous", car j'ai l'impression que "Previous({CNV_PUB_CMI_REGISTRATION.SCORE})" ne prends que le record du dernier module et non pas celui d'avant. Par exemple, ce code me donne le resultat du dernier module ! Code :
Christine. |
||
|
|
00
|
|
|
#6 | ||
![]() ![]() Nicolas LAURETChef de projet en SSII Inscription : novembre 2003 Messages : 1 024 ![]() |
Bonjour Christine,
Il me faut un peu plus d'informations : Comment est construit ton etat ? Quels sont tes groupes ? Quels sont les elements en lignes détails ? Un petit jeu de test ne serait pas non plus de trop pour étayer ton exemple. Quel est exactement le résultat que tu veux obtenir !? Dans mon exemple, je testais simplement l'evolution du montant de la facture (niveau ligne détail) par rapport au montant de la ligne précédente uniquement si on etait au moins sur la deuxième ligne (deuxième enregistrement). ex donnée Code :
Peut-être aussi que j'ai tout simplement mal compris ton problème, dans ce cas n'hesite pas à le détailler.
__________________
Modérateur Business Intelligence / Windev A lire avant de poster Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
|
||
|
|
00
|
|
|
#7 | ||||
|
Invité de passage
![]() Inscription : avril 2007 Messages : 12 ![]() |
Je vais essaye de tt reprendre... Je pense que ton exemple est bon. J'ai juste pas encore compris ttes les subtilitees de CR
Je cherche a afficher 3 resultats pour un participant d'un cours. - note du test 1 - note du test 2 - evolution entre test 1 et 2 = ((test2/test1)-1) * 100; (test 1 et test 2 sont les meme tests mais fait avant et apres le cours par le participant) J'ai donc creer 2 groupes: - premier qui tri par personne - 2eme qui tri par module (les test sont dans des modules, dans module 1 et module 7) (je ne sais pas si cette info reponds a ta question) header le premier group contient: - nom du participant header du 2eme gour contient: - Titre du module - Score du module footer du 2eme ne contient rien footer du premier contient: - evolution de la note (= formula field EVOLUTION_DECIDER) le design ressemble a: Code :
Code :
Pour n'afficher que les modules dont j'ai besoin (module 1 et module 7), j'ai insere une ligne dans select expert "{CNV_PUB_CMI_REGISTRATION.TITLE} in ["Module 7 - Sommaire", "Module 1 - Introduction"]". Merc bcp d'etre aussi patient! Christine. |
||||
|
|
00
|
|
|
#8 |
![]() ![]() Nicolas LAURETChef de projet en SSII Inscription : novembre 2003 Messages : 1 024 ![]() |
es-tu certaine qu'il n'y aura jamais plus de 2 notes dans ton module !?
Pourquoi un groupe module puisque celui-ci est le niveau de detail le plus bas (et qu'apparemment un module = 1 note !? En tout cas comme ton exemple est présenté et s'il y a toujours 2 modules avec chacun une note, la formule devrait fonctionner aussi bien en footer participant qu'en footer module. encore une question, la note rattachée au module est dans la table module ou dans une table jointe !?
__________________
Modérateur Business Intelligence / Windev A lire avant de poster Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
|
|
|
00
|
|
|
#9 | ||||||||
|
Invité de passage
![]() Inscription : avril 2007 Messages : 12 ![]() |
Il y a 7 modules dans le cours, 5 modules contiennent des tests. Je n'ai besoin que des modules 1 et 7 (pretest, posttest). Il n'y a qu'un seul score par module (les participants ne peuvent faire qu'une seule fois le test du module 1 et qu'une seule fois celui du module 7).
La table module contient nom du module et score du module: {CNV_PUB_CMI_REGISTRATION.TITLE} {CNV_PUB_CMI_REGISTRATION.SCORE} Pour le choix du group module, j'avais repris un report existant. Si je met "Nom module: {TITLE} et [SCORE]" dans le group paricipant et non module: design: Code :
Code :
Design: Code :
Code :
|
||||||||
|
|
00
|
|
|
#10 |
![]() ![]() Nicolas LAURETChef de projet en SSII Inscription : novembre 2003 Messages : 1 024 ![]() |
Si tu mets le champ {CNV_PUB_CMI_REGISTRATION.SCORE} en section détail
que t'affiche-t-il !? Il doit y avoir une ligne par module, est-ce le cas !? J'aurai bien regardé directement ton etat mais je n'ai pas CR11, je ne dispose que de la V10.
__________________
Modérateur Business Intelligence / Windev A lire avant de poster Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
|
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 12 ![]() |
oups, il doit y avoir une erreur !
En mettant le score dans "details", j'ai 6 fois le score affiche par module (6 fois 67 et 6 fois 100) !! Il y a 6 questions dans les tests de ces modules. Est-ce qu'il y aurait un group ou autre chose que je n'aurai pas vu qui mettrais 6 fois les score des modules ? A l'origine, ce report montrait les reponses par questions de chaque participant. Merci encore pout tout. |
|
|
00
|
|
|
#12 | ||
![]() ![]() Nicolas LAURETChef de projet en SSII Inscription : novembre 2003 Messages : 1 024 ![]() |
Pour que ca fonctionne, il va falloir revoir la formule car ca ne peut pas coller avec les données que tu as.
je ne l'ai pas testé mais l'idée est là -> Formule à placer en fin de groupe module Si c'est la premiere rupture, on récupère la valeur et progression = 0 Si c'est la deuxième fois ou plus, on calcule progression, on écrase past et on affiche la progression ..... Code :
__________________
Modérateur Business Intelligence / Windev A lire avant de poster Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
|
||
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 12 ![]() |
Merci pour la nouvelle formule, mais j'obtiens encore 0.
Si je remplace "Formula = progression" par "formula=PastValue" dans la derniere ligne, j'obtiens le score du dernier module (si Formule est en fin de groupe personne). Si Formule est en fin de groupe module et "formula=PastValue", j'obtiens les scores des modules. Est-ce que ca viendrais du fait que le details affiche 6 fois les scores ? Merci encore de m'aider avec ce truc tordu ! |
|
|
00
|
|
|
#14 |
![]() ![]() Nicolas LAURETChef de projet en SSII Inscription : novembre 2003 Messages : 1 024 ![]() |
Vu que cette formule est placée en footer module, ca devrait marcher !
Je l'essaierai dans un vrai etat demain pour te dire si elle marche ou pas! @+
__________________
Modérateur Business Intelligence / Windev A lire avant de poster Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
|
|
|
00
|
|
|
#15 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 12 ![]() |
Bonjour,
As-tu eu le temps de regarder si cette formule marchait? Je ne sais pas ce que je peux essayer d'autre... Merci encore pour toute l'aide. |
|
|
00
|
|
|
#16 |
![]() ![]() Nicolas LAURETChef de projet en SSII Inscription : novembre 2003 Messages : 1 024 ![]() |
Je ne t'ai pas oublié.
Je suis un tout petit peu overbooké en ce moment. Je regarde ça entre midi et 14H avec un jeu de test en CR10. @+
__________________
Modérateur Business Intelligence / Windev A lire avant de poster Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
|
|
|
00
|
|
|
#17 | ||
|
Invité de passage
![]() Inscription : avril 2007 Messages : 12 ![]() |
J'ai trouve pourquoi j'avais 6 fois le resultats du score test1 et 6 fois le resultats test2 en mettant [SCORE] dans details.
Et la formule que tu m'avais donne au tout debut fonctionne tres bien ! Celle ci: Code :
Christine. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com