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

BIRT Discussion :

informations sur les groupes dans un rapport


Sujet :

BIRT

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 129
    Points : 52
    Points
    52
    Par défaut informations sur les groupes dans un rapport
    Bonjour à tous

    je travail actuellement sur les rapports BIRT avec l'élément "Table"
    Dans cette table j'ai des données et des groupes de données.

    j'utilise un template qui me permet de changer de couleur pour chaque ligne.

    Mon monblème est le suivant :

    Quand le nombre de ligne dans un groupe est paire alors la 1ere ligne du groupe suivant est blanche mais lorsque le nombre de ligne est impaires alors la 1ere ligne du groupe suivant est bleu.

    J'aimerais savoir s'il on peut récupérer des informations sur les groupes ou carement appliquer un template sur les données d'un groupe

    Merci

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 143
    Points : 1 353
    Points
    1 353
    Par défaut Oui
    C'est possible , BIRT est séquentiel.

    Initialiser une variable globale au début du rapport qq part à 0

    reportContext.setGlobalVariable(0,"toto");

    http://www.birt-exchange.org/documen...rtContext.html

    lien aide

    Faire un count des lignes dans un aggrégat positionné en Footer du Groupe.

    Coder quelquechose de ce type sur cet élement :

    reportContext.setGlobalVariable("monaggregationcount","toto");

    Mettre un Highlight sur le Detail du groupe en fonction de la valeur de la variable globale :

    Syntaxe pour recupérer la variable globale

    reportContext.getGlobalVariable("toto")

    Attention à gérer les éventuels groupes vides ( test du null/0 )

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 129
    Points : 52
    Points
    52
    Par défaut
    Merci pour votre réponse

    J'utilise BIRT rEPORT dISIGNER du coup je ne fais pas de java mais au moins j'ai pu récupérer le nombre de ligne de mes groupes en passant pas le footer du groupe je continue merci

  4. #4
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 129
    Points : 52
    Points
    52
    Par défaut
    ok bon ca ne me parait pas très possible tout cela
    Le plus simple serait de pouvoir appliquer un template pour les détails de mon groupe est ce possible ? si oui est ce vous connaissez le nom du template ?

    Merci

  5. #5
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Bonjour,

    BIRT n'est pas un outil end-user, il est très souple mais légèrement orienté développeur. C'est pour cela qu'il faut parfois faire un peu de code pour les problèmes inhabituels.

    La solution que Stefan t'a apporté est la plus simple à mettre en œuvre à mon avis sur ce problème spécifique.

    Après, les templates sont des modèles que tout le monde peut créer. Il en existe quelques uns par défaut.

    Autre chose, tu peux retrouver la coloration de la ligne dans les propriétés de ton tableau > HighLight > row[0]%2 equals to 1 (ou row.__rownum%2 equals to 1).

  6. #6
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 129
    Points : 52
    Points
    52
    Par défaut
    Merci pour vos réponse

    Effectivement j'utilise bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BirtMath.mod(row.__rownum,2) equals to 1
    pour que la ligne impaire soit coloré

    Ce la fonctionne très bien si :
    - il n'y a pas de groupe
    - les données dans les groupes sont paires

    Après ca va pas... je vais regarder pour les variables, mais je trouve cela bizare que l'on ne puisse pas traiter ça par un template

    Merci

  7. #7
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Heu...

    Je vais refaire la même phrase.

    Un template est un modèle, certains sont déjà créés, d'autres sont rajoutés par l'utilisateur.

    Bref, on peut faire cette opération simplement comme te l'a dit Stefan mais en légèrement plus simple.

    Si tu es en BIRT 2.5 ou +, tu peux faire ceci :
    • Crées une variable LigneGroupe (Onglet Data Explorer du BIRT Designer) avec la valeur par défaut 0.
    • Dans le layout, tu cliques sur une des lignes de détail de ton tableau.
    • Dans les propriétés, tu vas dans Highlights, et tu ajoutes :
    • Code : Sélectionner tout - Visualiser dans une fenêtre à part
      vars["LigneGroupe"] % 2 Equal to 0
    • (au lieu de ce que tu avais précédemment).
    • Dans l'onglet script (en gardant bien la ligne de détail sélectionnée), tu choisis dans la liste déroulante en haut onCreate et tu mets ceci :
    • Ensuite tu reviens sur le layout et tu sélectionnes la ligne de footer du groupe (s'il y a plusieurs groupes imbriqués, tu sélectionnes le footer du groupe le plus imbriqué).
    • Tu vas dans l'onglet script, tu choisis dans la liste déroulante en haut onCreate et tu mets :
    • Code : Sélectionner tout - Visualiser dans une fenêtre à part
      vars["LigneGroupe"] = 0;

    Et hop, ça fonctionne !

    En gros, cela veut dire qu'on crées une variable qu'on incrémente à chaque fois que l'on va à une nouvelle ligne et qui se remet à 0 chaque fois que l'on change de groupe.

  8. #8
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 129
    Points : 52
    Points
    52
    Par défaut
    Merci beaucoup super

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 14
    Dernier message: 16/04/2018, 09h35
  2. Réponses: 1
    Dernier message: 28/09/2011, 11h11
  3. Recherche information/tuto sur les reports dans Visual Studio
    Par vhellers dans le forum Visual Studio
    Réponses: 0
    Dernier message: 09/06/2011, 10h47
  4. Réponses: 2
    Dernier message: 20/10/2008, 21h36
  5. Informations sur un exe (dans les propriétés windows)
    Par SteelBox dans le forum Windows
    Réponses: 6
    Dernier message: 06/07/2004, 18h20

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