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 31/01/2011, 16h46   #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 Somme d'une conversion entier en heures/minutes

Bonjour,

J'ai cherché sur ce forum et sur la forge Jasper sans succès une méthode pour convertir un nombre en heures + minutes (ex : 73 devient 1h13).
De ma requête initiale je récupère les valeurs suivantes :
Grp temps
A 1
A 17
A 68
B 51
B 34

Je groupe par Grp dans mon rapport et obtient donc
A 95
B 85

Je voudrais traduire 95 en 1 heure et 35 minutes et 85 en 1 heure et 25 minutes.

J'ai créé la variable temps_HMin dont le code est le suivant :

Code :
(int)Math.ceil($F{temps} / 60) + 'heures, '+ (int)$F{temps} % 60 + ' minutes'
Je l'ai positionnée en pied de groupe :
Calculation = Sum
Reset Type = Group
Reset Group = Grp
Increment Type = None

Le problème, c'est que mon expression n'est calculé que sur le dernier enregistrement du groupe.
Je ne sais pas si c'est dû mon calcul, ou au moment où est évaluée l'expression.

Quelqu'un a-t-il une idée?
jiladiarra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 17h13   #2
Nouveau Membre du Club
 
Inscription : janvier 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 37
Points : 26
Points : 26
Bonjour,

Il faudrait utiliser une variable dans le pied de groupe plutôt que le champ $F{temps}

Expression $F{temps}
Calculation = Sum
Reset Type = Group
Reset Group = Grp
Increment Type = None
mespub est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 31/01/2011, 18h04   #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
En effet!

Ne pas faire l'agrégation et la transformation du field, mais faire le calcul (somme du field), puis formater avec l'expression :

Code :
(int)Math.floor($V{temps_sum} / 60) + 'h '+ (int)$V{temps_sum} % 60 + ' mn'
Merci mespub et désolé pour l'erreur de "débutant".
jiladiarra 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 06h50.


 
 
 
 
Partenaires

Hébergement Web