IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Jasper Discussion :

Ratio GROUPE/TOTAL dans rapport


Sujet :

Jasper

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2009
    Messages : 26
    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,

  2. #2
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2007
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2007
    Messages : 293
    Par défaut
    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.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2009
    Messages : 26
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $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

  4. #4
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2007
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2007
    Messages : 293
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

Discussions similaires

  1. Group by dans un rapport
    Par zazu57 dans le forum Microstrategy
    Réponses: 7
    Dernier message: 02/06/2015, 19h11
  2. [AC-2010] trier par rapport à un total dans un etat
    Par nounous54 dans le forum Modélisation
    Réponses: 2
    Dernier message: 02/01/2014, 23h22
  3. Réponses: 7
    Dernier message: 15/12/2009, 17h43
  4. Réponses: 4
    Dernier message: 13/01/2009, 19h19
  5. Réponses: 4
    Dernier message: 28/03/2008, 16h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo