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 :

Arborescence dans rapport BIRT


Sujet :

BIRT

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur d'étude
    Inscrit en
    Décembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'étude
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 25
    Points : 21
    Points
    21
    Par défaut Arborescence dans rapport BIRT
    Bonjour,
    Je dois créer un tableau dans un rapport avec BIRT sous la forme d'une arborescence de la forme

    Code | Description | reference

    toto10 description toto10 reference toto10
    toto11
    toto12
    toto13
    toto131
    toto132
    toto133
    toto134
    toto14
    toto141
    toto20
    toto30

    y'a-t'il une solution directement paramétrée dans l'outil BIRT pour coder ça ou faut-il bidouiller ?
    par avance merci pour votre aide

  2. #2
    Membre à l'essai
    Homme Profil pro
    Ingénieur d'étude
    Inscrit en
    Décembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'étude
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 25
    Points : 21
    Points
    21
    Par défaut
    je précise que c'est une arborescence avec les mêmes données dans chaque ligne mais il y a un décalage entre chaque ligne quand on passe de l'enregistrement père au fils !
    j'spr être clair

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur d'étude
    Inscrit en
    Décembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'étude
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 25
    Points : 21
    Points
    21
    Par défaut
    apparemment dans mon 1ier mail, l'édition a perdu le décalage des données de mon exemple, voici ce qu'il fallait lire :

    Code | Description | reference

    -toto10 description toto10 reference toto10
    --toto11
    --toto12
    --toto13
    ---toto131
    ---toto132
    ---toto133
    ---toto134
    --toto14
    ---toto141
    -toto20
    -toto30

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    Salut,

    habituellement, créer des groupes dans la table sur les différents niveaux de la hérarchie répond à ce genre de besoin, à condition que le nombre de niveaux soit défini, que la hiérarchie soit équilibrée (càd que tous les niveaux soient toujours tous définis), et que les niveaux agrégés n'aient pas d'existence propre en dehors de leur fonction d'agrégat.

    Il aurait peut être fallu un peu plus d'infos sur comment cette hiérarchie arrive dans le dataset (en particulier si il y a un lien "père-fils") mais l'exemple donné ne semble pas rentrer dans ce cas de figure, à mon avis tu peux donc t'orienter vers le mode bidouille: par exemple créer un "Dynamic text" dans la colonne souhaitée de la table, et créer une formule qui indente avec des espaces le code produit en fonction du "niveau" de ce produit. Ce sera assez simple si tu peux déjà disposer de ce niveau dans le dataset de la table.

    A+

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur d'étude
    Inscrit en
    Décembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'étude
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 25
    Points : 21
    Points
    21
    Par défaut
    merci beaucoup pour ta réponse;
    Quand je lance ma requête via SQL Developper, avec la fonction SQL adéquate (qui met un nombre de blancs devant le champ selon le niveau), j'ai bien le décalage dans mon résultat de requête; pourquoi je ne visualise pas ce décalage quand j'utilise cette même requête dans mon rapport BIRT?
    peut-être que BIRT ne reconnait pas les blancs devant le champ en question ?

    merci

  6. #6
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    Oui BIRT enlève les espaces à quasi tous les niveaux. Du coup le moyen le plus fiable est à mon avis de le faire en modifiant le style dans la cellule de la table: transporter ce niveau d'indentation ("LEVEL") dans le dataset et une colonne cachée de la table (option "visibility") , puis sur le champs à indenter->onglet script->évènement onRender:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var level = row["LEVEL"];	
    var indentation=(20*level)+"px";
    this.getStyle().marginLeft=indentation;

  7. #7
    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 option
    Il y a une option depuis la 2.6 il me semble :


    Dans les propriétés d'un Text : General : Whitespace : Auto/No Wrapping/Normal/Preformatted.

    Sinon la solution proposée c'est top , mieux vaut mettre ceci dans des Styles CSS d'ailleurs.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Ingénieur d'étude
    Inscrit en
    Décembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'étude
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 25
    Points : 21
    Points
    21
    Par défaut je n'y arrive pas
    Bonjour et merci pour vos réponses;

    j'ai tenté de faire comme vous le disiez :
    - apparemment je n'ai pas cette propriété "Whitespace" avec ma version de BIRT
    - J'ai essayé aussi de faire avec le code dans le script onRender sur le champ de table dont je veux voir apparaitre le décalage selon le level:
    var level = row["LEVEL"];
    var indentation=(20*level)+"px";
    this.getStyle().marginLeft=indentation;

    mais ça ne marche pas;
    pour essayer, sur ce même champ de table, j'ai voulu juste mettre le code :
    this.getStyle().marginLeft=10; (c'est à dire avec une valeur en dure = '10') dans le script onRender du champ mais ça ne change rien ??????

  9. #9
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    Salut,

    la syntaxe c'est plutôt avec l'unité (donc this.getStyle().marginLeft="10px"; ), mais même avec ce que tu as mis ça devrait fonctionner, et prendre dans tous les cas la priorité sur les éventuelles autres définitions de marge que tu as pu renseigner dans les propriétés, dans un style ou une classe CSS.

    La seule chose que je vois c'est que tu as dû renseigner l'évènement "onRender" de la cellule et non pas celui du champs, à mon avis c'est ça. Je conseille d'utiliser la fenêtre "Outline" pour bien visualiser dans l'arborescence l'élément du rapport qui est sélectionné, et bien confirmer que tu travailles sur l'élément de type Data("myField"), pas sur la cellule qui le contient. Sinon tu peux aussi utiliser le onRender de la cellule mais dans ce cas utiliser le paddingLeft, ça reviendra au même:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.getStyle().paddingLeft="10px";
    Dis nous si cela résout le problème. Si ça ne fonctionne toujours pas essaye de poster sur le forum un petit zip d'un rapport de test et son contexte avec quelques données, on pourra directement te donner la solution Ou à la rigueur je créerai un petit exemple rapide et le posterai, tu travailles avec quelle version de BIRT?

    A+

Discussions similaires

  1. Incorporer fichier HTML dans rapport BIRT
    Par TheTcha dans le forum BIRT
    Réponses: 9
    Dernier message: 06/12/2013, 14h25
  2. Bouton imprimer dans rapport BIRT
    Par amduf dans le forum BIRT
    Réponses: 4
    Dernier message: 16/11/2012, 15h23
  3. Insertion image dans rapport BIRT
    Par c0rwyn dans le forum BIRT
    Réponses: 1
    Dernier message: 26/05/2009, 10h44
  4. Faire une arborescence dans un report BIRT
    Par crazy dans le forum BIRT
    Réponses: 8
    Dernier message: 15/04/2008, 22h43
  5. Rapports BIRT dans le format PDf
    Par soumou dans le forum BIRT
    Réponses: 5
    Dernier message: 14/05/2007, 15h31

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