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 :

[2.5] Creer une "region" au runtime dans un graphique "Meter"


Sujet :

BIRT

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 42
    Points : 22
    Points
    22
    Par défaut [2.5] Creer une "region" au runtime dans un graphique "Meter"
    RE-bonjour pour certains,

    A default de répondre correctement au question, je vais demandé de l'aide. Je cherche un moyen de créer des "region" au moment du runtime dans un graphique de type "meter". j'ai déjà tenter pas mal de façon de scripter la chose, mais je n'y arrive pas.

    mes essais se situent principalement dans le beforeGeneration(chart, iscs) et dans le beforeDrawSeries( series, isr, icsc ), mais rien n'y fait, je n'arrive pas à récupérer l'objet qui me permettra plus tard d'avoir ce genre de code :

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    *objet*.getDial().getDialRegions().add(region);

    puis ensuite de changer la couleur, le startValue et endValue etc..

    Si quelqu'un l'a déjà fait , ou a une idée, une piste . . .

    merci d'avance.

  2. #2
    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,

    Cela va sûrement t'aider.

    Le beforeDrawSeries( series, isr, icsc ) pour un Meter Chart a :
    - series de type : org.eclipse.birt.chart.model.type.impl.DialSeriesImpl
    - isr de type : org.eclipse.birt.chart.render.Dial

    Ce qui voudrait dire que tu es déjà sur ton Dial. Tu pourrais donc faire directement :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    isr.getDialRegions().add(region);

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 42
    Points : 22
    Points
    22
    Par défaut
    merci, j'ai test, et je reçois ce message:

    Cannot find function getDialRegions in object org.eclipse.birt.chart.render.EmptyWithoutAxes

    En plus l'auto complétion de isr ne donne que 3 méthodes, donc même si c'est pas la meilleur auto complétion qui existe, a priori c'est peut être pas avec cet objet :-(.

  4. #4
    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
    Disons que pour l'auto-complétion, il ne prend que le type de base, donc si tu as une classe dérivée, il ne sauras pas que tu es sur cette classe dérivée.

    Par contre toi ton isr n'est pas du type que je t'ai indiqué visiblement.

    Est-ce que tu arrives, dans un premier temps, à afficher ton Meter Chart sans aller le complexifier en script pour le moment ?

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 42
    Points : 22
    Points
    22
    Par défaut
    oui oui il marche très bien, c'est vraiment le détail de générer des région au runtime ou je suis bloqué ( j'ai également essayé de changer la couleur de la fleche en fonction de la valeur, même problème, les méthode que je veux utiliser n'appartiennent jamais à l'objet en question!

  6. #6
    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
    Hum peux-tu mettre ton rptdesign en pièce jointe stp ?

  7. #7
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 42
    Points : 22
    Points
    22
    Par défaut
    Désolé je peux pas, c'est un rapport d'entreprise.

    edit : Par contre si vous arrivez à le faire , vous pouvez mettre le rptdesign, merci d'avance.

  8. #8
    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
    Le problème est que je n'arrive pas à reproduire le fameux EmptyWithoutAxis

    Alors la deuxième solution est que vous extrayez le code XML correspondant uniquement au Chart.

  9. #9
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 42
    Points : 22
    Points
    22
    Par défaut
    Il suffit de créé un chart meter , de binder des données de dessus et vous aurez le même chart meter que moi. Rien de spécial n'a été ajouter, il est juste dans un tableau et prend en paramètre un élement du tableau, rien de plus. C'est vraiment au niveau des scripts du chart que se situe le "problème" ou au moins la difficulté.

  10. #10
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 42
    Points : 22
    Points
    22
    Par défaut
    Apparemment je ne suis pas le seul à buter là dessus! est ce possible que ça soit un bug provenant de BIRT ? (le fait de ne pas avoir le bon objet)

  11. #11
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 42
    Points : 22
    Points
    22
    Par défaut
    Je vais pouvoir joindre à mon poste un rptdesign contenant un chart meter.

    J'en profite aussi pour poser une autre question

    j'utilise des librairies ( je sais pas si ça a un rapport ) et à chaque fois que je vais dans un data set ( par exemple pour modifier la requete ) si je passe pas dans "Parameter" il me donne un warning en me disant

    "etes vous sur de vouloir laisser la valeur par défault du parametre xxxx à null"

    alors que elle n'est pas nulle la valeur par défaut.

    edit: ben non je peux pas joindre, le forum ne supporte pas les fichier .rptdesign :-)

  12. #12
    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,

    Pour transmettre le rptdesign en pièce jointe, renomme le sauvagement en .xml ou autre ou bien met le dans un zip ou rar .

    Cependant j'ai réussi à reproduire ton problème donc ce n'est plus nécessaire mais c'est un comportement étrange.

  13. #13
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 42
    Points : 22
    Points
    22
    Par défaut
    J'avais même pas pensé à renommer . . .

    Et oui en effet le problème est étrange et assez énervant !

    pour ceux qui veulent se casser les dents dessus ( ou pas ) , je met quand même en fichier joint.
    Fichiers attachés Fichiers attachés

  14. #14
    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
    En me penchant sur ton autre problème. J'ai remarqué qu'il passait deux fois dans le beforeDrawSeries (une première fois pour dessiner l'abcisse je suppose et une seconde fois pour dessiner les valeurs).

    C'est donc pour cela qu'effectivement il faut faire un instanceof avant le cast. Cependant tu n'as pas non plus besoin de faire series (que tu castes avec DialSeriesImpl) puis un getDial() dessus. Tu peux directement faire :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (isr instanceof Dial)
    {
    	DialRegion dregion1 = DialRegionImpl.create();
     
    	Dial dial = (Dial)isr;
    	dial.getDialRegions().add(dregion1);
    }

    Par contre, évite les traitements inutiles avant le instanceof (récupérer tes variables persistantes et créer tes régions par exemple).

  15. #15
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 42
    Points : 22
    Points
    22
    Par défaut
    J'ai finalement eu une réponse sur le forum de birt-exchange, après + d'1mois , mais ça en valait la peine, ça marche sans class java voici le code à mettre dans la partie script du graphique de type "compteur"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    function beforeGeneration( chart, icsc )
    {
    importPackage(Packages.org.eclipse.birt.chart.model.component.impl); 
    importPackage(Packages.org.eclipse.birt.chart.model.attribute.impl); 
    importPackage(Packages.org.eclipse.birt.chart.model.attribute); 
    importPackage(Packages.org.eclipse.birt.chart.model.data.impl); 
     
    var firstAxis = chart.getSeriesDefinitions().get(0).getSeriesDefinitions().get(0).getRunTimeSeries().get(0).getDial();
     
    var firstRange = DialRegionImpl.create();
    firstRange.setFill(ColorDefinitionImpl.RED());
    firstRange.setStartValue( NumberDataElementImpl.create( 0 ) );
    firstRange.setEndValue( NumberDataElementImpl.create( 2 ) );
    firstAxis.getDialRegions().add(firstRange);
     
    var secondRange = DialRegionImpl.create();
    secondRange.setFill(ColorDefinitionImpl.YELLOW());
    secondRange.setStartValue( NumberDataElementImpl.create( 2 ) );
    secondRange.setEndValue( NumberDataElementImpl.create( 5 ) );
    firstAxis.getDialRegions().add(secondRange);
     
    var thirdRange = DialRegionImpl.create();
    thirdRange.setFill(ColorDefinitionImpl.GREEN());
    thirdRange.setStartValue( NumberDataElementImpl.create( 5 ) );
    thirdRange.setEndValue( NumberDataElementImpl.create( 6 ) );
    firstAxis.getDialRegions().add(thirdRange);
     
    }

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

Discussions similaires

  1. Comment creer une dll fortran et l'utiliser dans VB
    Par Juliette17 dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 08/08/2011, 23h11
  2. [TP]comment creer une disquette bootable (les fichiers)
    Par ludovic5532 dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 25/10/2003, 19h46
  3. Créer une diquette de boot
    Par gwen-al dans le forum Administration système
    Réponses: 2
    Dernier message: 02/07/2003, 15h48
  4. jaimerais savoir commen creer une grille.......
    Par zephyr dans le forum Flash
    Réponses: 5
    Dernier message: 29/04/2003, 13h14
  5. [VB6]Créer une Base de données
    Par ThierryAIM dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/04/2003, 18h24

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