Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Jasper
Jasper Forum d'entraide sur Jasper Reports. Avant de poster --> FAQ Jasper, Tutoriels Jasper
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 09/02/2011, 09h36   #1
Futur Membre du Club
 
Inscription : juin 2009
Messages : 26
Détails du profil
Informations personnelles :
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juin 2009
Messages : 26
Points : 18
Points : 18
Par défaut Ratio GROUPE/TOTAL dans rapport

Bonjour,

J'ai un rapport qui utilise les enregistrements suivants :

METIER | TEMPS
A | 5
B | 2
B | 3

Dans mon rapport, je veux construire un tableau qui m'affiche

METIER | TEMPS | RATIO
A | 5 | 50%
B | 5 | 50%

Autrement dit, je somme les temps, ça je sais faire en utilisant un groupe METIER.

Ce que je ne sais pas faire, c'est calculer le ratio qui est :
somme des temps du groupe / Somme totale des temps

Ca fonctionne pour le dernier METIER, car ma variable temps total contient la somme totale à ce moment, mais pas sur le premier METIER soit :

METIER | TEMPS | RATIO
A | 5 | 100%
B | 5 | 50%

Quelqu'un aurait-il une idée ou astuce ?

Merci d'avance,
jiladiarra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 14h36   #2
Membre expérimenté
 
Homme Gabriel Entressangle
Consultant informatique
Inscription : août 2007
Messages : 293
Détails du profil
Informations personnelles :
Nom : Homme Gabriel Entressangle
Âge : 67
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Service public

Informations forums :
Inscription : août 2007
Messages : 293
Points : 567
Points : 567
Bonjour,
Il me semble qu'il faudrait que tu définisses une deuxième variable "somme des temps" mais que tu dis calculée à la fin du rapport. A ce moment là, dans le footer du groupe métier tu dois pouvoir faire le ratio en divisant ta variable somme du groupe par ta variable somme du rapport.
Gabriel.Entressangle est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/02/2011, 15h49   #3
Futur Membre du Club
 
Inscription : juin 2009
Messages : 26
Détails du profil
Informations personnelles :
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juin 2009
Messages : 26
Points : 18
Points : 18
Bonjour Gabriel,

C'est ce que j'ai tenté de faire dès le début.

Mon rapport est monté de cette manière :

GROUPE AGENT
GROUPE METIER

J'ai une variable TempsTotalMETIER qui est une somme réinitialisée à chaque changement de groupe METIER.
J'ai une variable TempsTotal qui est une somme réinitialisée à chaque chamgement de groupe AGENT

Dans le pied de groupe METIER, je veux calculer mon ratio par la formule :

Code :
$V{TempsTotalMETIER} / $V{TempsTotal}
Mon problème est que $V{TempsTotal} = $V{TempsTotalMETIER} sur le premier groupe, et non le temps total.

Pour reprendre mon exemple du premier post :
METIER | TEMPS | $V{TempsTotalMETIER} | $V{TempsTotal} | RATIO
A | 5 | 5 | 5 | 100
B | 5 | 5 | 10 | 50

Il me faudrait trouver la solution permettant d'avoir $V{TempsTotal}=10 dès le début. Il me semble que je me heurte à un problème de compréhension de la façon dont JasperReports évalue les variables.


Merci pour ton intérêt.

Jila
jiladiarra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 23h00   #4
Membre expérimenté
 
Homme Gabriel Entressangle
Consultant informatique
Inscription : août 2007
Messages : 293
Détails du profil
Informations personnelles :
Nom : Homme Gabriel Entressangle
Âge : 67
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Service public

Informations forums :
Inscription : août 2007
Messages : 293
Points : 567
Points : 567
Effectivement, je croyais naïvement que c'était plus simple. En fait, il faudrait que jasper autorise à utiliser une variable avec une valeur d'évaluation comme la fin du rapport par exemple. Mais ca ne doit pas être évident à faire en un seul passage.
Par contre ce que tu pourrais faire, c'est faire faire le boulot par sql : tu peux très bien obtenir le temps total dans ta requête , du style :
Code :
1
2
3
4
Select Metier, temps,
(select sum(temps) from... where...) as tempstotal
from...
where..
Là encore parfois c'est plus facile à dire qu'à faire si on veut que les critères de la requête principale et de la sous-requête de calcul du total soient identiques , mais avec des paramètres jasper on devrait pouvoir y arriver.

Bonne chance
Gabriel.Entressangle est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h13.


 
 
 
 
Partenaires

Hébergement Web