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.1.2] Chart - Valeurs dans l'axe X sans des décimales


Sujet :

BIRT

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 37
    Points : 19
    Points
    19
    Par défaut [2.1.2] Chart - Valeurs dans l'axe X sans des décimales
    Bonjour,
    J'ai un petit problème avec le format du Axe X de mon chart.
    L'axe X de mon chart sont des identifieurs et quand je fais le chart, l'axe X écris les valeurs comme des décimales (par example pour l'ID 6, le chart écrit 6.0) et je veux imprimer seulement la parte entier, pas des decimales.
    J'ai essayé avec
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    NumberFormatSpecifier nfs = NumberFormatSpecifierImpl.create( );
    nfs.setFractionDigits( 0 );
    ...
     xAxisPrimary.setFormatSpecifier( nfs );
    mais ça me sers à rien. J'ai aussi essayé avec
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    xAxisPrimary.setType( AxisType.LINEAR_LITERAL);
    et avec des autres AxisTypes mais j'ai l'erreur
    The following items have errors:

    Chart (id = 25):
    + Bars may not be rendered on a value scale
    Comment est-ce que je peux mettre dans l'axe X des valeurs entiers??

    Merci

  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,

    Dans la création/modification du Chart, tu vas dans l'onglet Format Data > Chart Area > Axis > X-Axis > Type : tu mets Text et tu cliques sur le bouton juste à gauche : 0.0#. Dans DataType, tu choisis Number, ensuite tu coches Standard et tu mets Fraction Digits à 0. Et normalement c'est bon.

    Attention, ce n'est pas testé.

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 37
    Points : 19
    Points
    19
    Par défaut
    Oui, mais le problème c'est que je dois faire tout ça avec java. J'ai déjà fait des exemples avec l'interface pour chercher des paramètres à modifier, mais maintenant je voudrais le faire avec java et j'arrive pas.

    Est-ce tu peux me dire comment je fais ça?

    Merci

  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
    Ah oui c'est vrai, tu n'aimes pas le designer

    En fait j'allais mettre exactement la même chose que toi (avec AxisType.TEXT), je m'en suis aperçue avant de poster.

    Par contre pourrait tu développer l'erreur en appuyant sur le "+" pour qu'on puisse voir d'où vient l'erreur ?

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 37
    Points : 19
    Points
    19
    Par défaut
    Voici l'erreur. Je crois qu'il y a quelque chose qui manque, parce apres avoir fait le dessin si je l'ouvre et je fais quelque petit modification (par example la coleur des lignes), le rapport marche...
    J'éspère que tu puisses m'aider.

    The following items have errors:

    Chart (id = 25):
    - Bars may not be rendered on a value scale

    exception.xvalue.scale.bars ( 1 time(s) )
    detail : org.eclipse.birt.chart.exception.ChartException: Bars may not be rendered on a value scale
    at org.eclipse.birt.chart.render.Bar.renderSeries(Bar.java:159)
    at org.eclipse.birt.chart.render.AxesRenderer.renderPlot(AxesRenderer.java:2256)
    at org.eclipse.birt.chart.render.AxesRenderer.render(AxesRenderer.java:303)
    at org.eclipse.birt.chart.factory.Generator.render(Generator.java:1231)
    at org.eclipse.birt.chart.reportitem.ChartReportItemPresentationImpl.onRowSets(ChartReportItemPresentationImpl.java:471)
    at org.eclipse.birt.report.engine.presentation.LocalizedContentVisitor.processExtendedContent(LocalizedContentVisitor.java:653)
    at org.eclipse.birt.report.engine.presentation.LocalizedContentVisitor.visitForeign(LocalizedContentVisitor.java:359)
    at org.eclipse.birt.report.engine.content.impl.ForeignContent.accept(ForeignContent.java:58)
    at org.eclipse.birt.report.engine.presentation.LocalizedContentVisitor.localize(LocalizedContentVisitor.java:111)
    at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:38)
    at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutChildren(HTMLBlockStackingLM.java:63)
    at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:159)
    at org.eclipse.birt.report.engine.layout.html.HTMLInlineStackingLM.resumeLayout(HTMLInlineStackingLM.java:94)
    at org.eclipse.birt.report.engine.layout.html.HTMLInlineStackingLM.layoutChildren(HTMLInlineStackingLM.java:138)
    at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:159)
    at org.eclipse.birt.report.engine.layout.html.HTMLRowLM.layout(HTMLRowLM.java:30)
    at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutChildren(HTMLBlockStackingLM.java:68)
    at org.eclipse.birt.report.engine.layout.html.HTMLTableLM.layoutChildren(HTMLTableLM.java:74)
    at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:159)
    at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layoutChildren(HTMLPageLM.java:139)
    at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:81)
    at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:85)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:205)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:142)
    at CreateReport.runDesign(CreateReport.java:78)
    at ReportGenerator.doGet(ReportGenerator.java:98)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
    at java.lang.Thread.run(Thread.java:619)
    Dans mon code j'ai " xAxisPrimary.setType(AxisType.LINEAR_LITERAL);"

    Merci

  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
    Tu mets ce code :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    NumberFormatSpecifier nfs = NumberFormatSpecifierImpl.create();
    nfs.setFractionDigits(0);
    ...
    xAxisPrimary.setFormatSpecifier(nfs);
    xAxisPrimary.setType(AxisType.TEXT);

    Et je ne crois pas que l'erreur vienne de là. Si tu enlèves cette ligne, ca fonctionne : xAxisPrimary.setFormatSpecifier(nfs); ?

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 37
    Points : 19
    Points
    19
    Par défaut
    Je configure l'axe X avec les lignes suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Axis xAxisPrimary = cwaBar.getPrimaryBaseAxes( )[0];             
    xAxisPrimary.setType(AxisType.TEXT_LITERAL);
    xAxisPrimary.getMajorGrid( ).setTickStyle( TickStyle.BELOW_LITERAL );
    xAxisPrimary.getOrigin( ).setType( IntersectionType.VALUE_LITERAL );
    xAxisPrimary.getTitle( ).getCaption( ).setValue( "Eje x" ); //$NON-NLS-1$   
    xAxisPrimary.getTitle().setVisible(true);
    xAxisPrimary.setLabelPosition ( Position.BELOW_LITERAL );
    xAxisPrimary.setTitlePosition( Position.BELOW_LITERAL );
    xAxisPrimary.getLabel().getCaption().getFont().setRotation(45);
    xAxisPrimary.getLabel().getCaption().getFont().setBold(true);
    Si j'éxecute le code, j'ai des décimals dans l'axe X.
    A mon avis, je crois que je dois changer la linge en orange par d'autre ligne...
    Qu'est-ce que tu crois que je dois ajouter ou changer?

    Merci

  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
    locuelas, j'aimerais bien au moins que tu testes les idées que je te donne pour que l'on vérifie au moins si l'erreur vient de là.

    Procèdes comme suit :
    1. Tu enlèves la ligne suivante :
      Code java : Sélectionner tout - Visualiser dans une fenêtre à part
      xAxisPrimary.setType(AxisType.TEXT_LITERAL);
    2. Tu mets à la place les quatre lignes suivantes :
      Code java : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      NumberFormatSpecifier nfs = NumberFormatSpecifierImpl.create();
      nfs.setFractionDigits(0);
      xAxisPrimary.setFormatSpecifier(nfs);
      xAxisPrimary.setType(AxisType.TEXT);
    3. Tu essayes de générer et me dit si tu as toujours la même erreur.
    4. Si oui, tu enlèves la ligne suivante :
      Code java : Sélectionner tout - Visualiser dans une fenêtre à part
      xAxisPrimary.setFormatSpecifier(nfs);
    5. Tu réessayes de visualiser et si tu as toujours l'erreur tu enlève cette ligne ci :
      Code java : Sélectionner tout - Visualiser dans une fenêtre à part
      xAxisPrimary.setType(AxisType.TEXT);
    6. Tu me dis si tu as toujours ton erreur.


    IMPORTANT : Tu ne fais rien d'autre que ce que je t'ai demandé et tu réponds à mes questions si tu veux que je puisse t'aider.

    NB : Notifie l'erreur si elle change et recopie là.

    PS : N'oublie pas d'attendre que la page se recharge.

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 37
    Points : 19
    Points
    19
    Par défaut
    J'ai fait le numéro 1 et j'ai un érreur de compilation dans la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xAxisPrimary.setType(AxisType.TEXT);
    L'érreur est:
    Le method setType(AxisType) in the type Axis is not applicable for the arguments (int)
    Par contre si j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xAxisPrimary.setType(AxisType.TEXT_LITERAL);
    il n'ya pas d'érreur, mais je ne sais pas si comme ça c'est bon. De toutes façons avec cette ligne j'ai encore des décimals.

    Je vais continuer avec tes indications. Merci

  10. #10
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 37
    Points : 19
    Points
    19
    Par défaut
    Le résultat est le même que au début. Il y a pas d'érreur mais dans l'axe X il y a des décimals.

  11. #11
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 37
    Points : 19
    Points
    19
    Par défaut
    J'ai trouvé moi même la solution.....
    Il faut effacer la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     xAxisPrimary.setType(AxisType.TEXT_LITERAL);
    et ajouter le code suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    xAxisPrimary.setType(AxisType.LINEAR_LITERAL);
    xAxisPrimary.setCategoryAxis(true);
            
    NumberFormatSpecifier nfs = NumberFormatSpecifierImpl.create();
    nfs.setFractionDigits(0);
    xAxisPrimary.setFormatSpecifier(nfs);
    Il manquait la ligne en rouge

    Maintenat ça marche!!

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/07/2011, 11h17
  2. Réponses: 3
    Dernier message: 04/03/2009, 11h35
  3. Réponses: 1
    Dernier message: 22/12/2007, 21h55
  4. Réponses: 4
    Dernier message: 01/06/2007, 19h15

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