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

XMLRAD Discussion :

Graphiques, légende, couleurs


Sujet :

XMLRAD

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Points : 57
    Points
    57
    Par défaut Graphiques, légende, couleurs
    Bonjour,

    La création d'un graphique avec plusieurs séries se passe bien, et la légende reprend la valeur 'Title' de la série :

    Nom : Histo2.jpg
Affichages : 330
Taille : 42,9 Ko

    Mais quand il n'y a qu'une série, la légende ne reprend pas la valeur 'Title', mais reprend les valeurs en X :

    Nom : Histo1.jpg
Affichages : 223
Taille : 37,4 Ko

    Je vois bien la logique de la chose (notamment pour les graphiques de type Pie), mais comment faire pour que la légende affiche QUAND MEME la valeur 'Title' de la série ?

    D'autre part, quand il n'y a qu'une série, les barres sont toujours rouges... J'ai eu envie de changer de couleur, et j'ai fait un test en mettant une variable COULEUR dans le contexte, avec une valeur du type $F0C0C0, et dans le XmlGram.pas, dans le Tchart.DoProcess, j'ai ajouté ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    var    SeriesColor : TColor;
    SeriesColor:=TColor(WideUpperCase(Trim(Context.GetValue('COULEUR')));
    if (SeriesColor <> 0) then  TheChart.Series[0].SeriesColor:=SeriesColor;
    A priori, tout fonctionne bien : la valeur est lue dans le contexte et les traces me prouvent que la variable SeriesColor contient bien ce qu'il faut, et le graphique n'est plus rouge, mais... de n'importe quelle couleur aléatoire !

    Le pire, c'est qu'en mettant la valeur en dur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    var    SeriesColor : TColor;
    SeriesColor:=$F0C0C0;
    if (SeriesColor <> 0) then  TheChart.Series[0].SeriesColor:=SeriesColor;
    ... ça marche très bien : le graphique change bien à la bonne couleur.

    Je suis un peu perplexe.... Quelqu'un aurait une idée ?


    Merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Points : 57
    Points
    57
    Par défaut
    A propos des couleurs des barres, j'ai oublié de préciser, dane le post précédent, que l'objectif était d'appeler plusieurs fois le même graphique à partir du même service, et que donc, le paramétrage interactif dans l'instruction xmlGram ne suffisait pas...

  3. #3
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    normalement tu n'as pas besoin de modifier le code de l'instruction TChart.
    l'instruction charge les propriétés à partir de la définition dans le XMLGram.
    donc ta propriété SeriesColor peut être définie dans le XMLGram dans la partie Series.
    si elle n'existe pas dans l'interface tu peux rajouter directement la propriété dans le XMLGram. elle sera normalement chargée automatiquement.

    pour le Title je crois que tu peux fixer toi même le titcle dans les propriétés car sino cela prend effectivement les valeurs

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Points : 57
    Points
    57
    Par défaut
    Je me suis mal expliqué. J'ai bien vu qu'on pouvait affecter la propriété SeriesColor dans l'xmlGram, mais je veux pouvoir faire ça dans le même service :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <img src="graph?PARAM=1">
    <img src="graph?PARAM=2">
    <img src="graph?PARAM=2">
    Chacune des valeurs de PARAM générant un graphique différent, mais s'appuyant sur la même instruction.

    Si c'est la même instruction, la couleur sera toujours la même puisque je l'aurai mise dans la propriété... et j'aimerais bien pouvoir la changer en runtime en écrivant ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <img src="graph?PARAM=1&COULEUR=$F0D0C0">
    <img src="graph?PARAM=2&COULEUR=$A0C0C0">
    <img src="graph?PARAM=2&COULEUR=$E000C0">
    Est-ce plus clair ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 284
    Points : 349
    Points
    349
    Par défaut
    Tu peux utiliser {$COULEUR} comme valeur de propriété dans le paramétrage de ton Chart.
    Le framework remplacera ca par la valeur du champ correspondant dans le Context, ce qui te permet de rendre à priori dynamique n'importe quelle propriété (à priori, parce que toutes les propriétés de toutes les instructions ne supportent cette syntaxe, mais pas loin).

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Points : 57
    Points
    57
    Par défaut
    Effectivement, ça marche très bien comme ça.

    Cela dit, j'aurais bien aimé comprendre pourquoi ce que j'ai fait ne fonctionnait pas... Il y a forcément une bonne raison !

    Pour ce qui concerne les titres et la réponse de RDM : même si on fixe la propriété Titre, mais qu'il n'y a qu'une série, ça prend les valeurs et non le titre (Fais l'essai :-) ). Encore une fois, je comprends ce principe pour un graphique à secteurs (couleurs différentes à identifier), mais pas pour un histogramme (une seule couleur).

    Merci en tous cas pour le coup de main.

  7. #7
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    Citation Envoyé par clisson Voir le message
    Effectivement, ça marche très bien comme ça.

    Cela dit, j'aurais bien aimé comprendre pourquoi ce que j'ai fait ne fonctionnait pas... Il y a forcément une bonne raison !
    tu transtypes une chaine de caractère en TColor qui est un entier.
    Pour ce qui concerne les titres et la réponse de RDM : même si on fixe la propriété Titre, mais qu'il n'y a qu'une série, ça prend les valeurs et non le titre (Fais l'essai :-) ). Encore une fois, je comprends ce principe pour un graphique à secteurs (couleurs différentes à identifier), mais pas pour un histogramme (une seule couleur).

    Merci en tous cas pour le coup de main.
    regarde la propriété LegendStyles ...

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Points : 57
    Points
    57
    Par défaut
    tu transtypes une chaine de caractère en TColor qui est un entier.
    Bah oui, tout bêtement... Ça m'apprendra à utiliser des langages trop laxistes.
    Mais, juste pour ma culture, comment se fait-il que le transtypage donne un résultat aléatoire ? Pour la même chaîne de départ ("$F0C0C0"), la conversion par StrToInt donne toujours la bonne valeur : 15777984, mais le transtypage avec TColor donne des résultats différents à chaque fois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    18:29:05 254.001 2 HISTO1 2 Chart 1 VOIR COULEUR  : 1438116
    18:29:06 529.017 4 HISTO1 2 Chart 1 VOIR COULEUR  : 1493588
    18:29:48 940.886 6 HISTO1 2 Chart 1 VOIR COULEUR  : 1210932
    Ça dépend de l'heure ? :-)

    Et à propos de la légende d'une série :
    regarde la propriété LegendStyles ...
    Ah oui, quand on la connaît, c'est très efficace. Je n'avais pas vu cette propriété.

    Merci pour tout.

  9. #9
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    Citation Envoyé par clisson Voir le message
    Bah oui, tout bêtement... Ça m'apprendra à utiliser des langages trop laxistes.
    Mais, juste pour ma culture, comment se fait-il que le transtypage donne un résultat aléatoire ? Pour la même chaîne de départ ("$F0C0C0"), la conversion par StrToInt donne toujours la bonne valeur : 15777984, mais le transtypage avec TColor donne des résultats différents à chaque fois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    18:29:05 254.001 2 HISTO1 2 Chart 1 VOIR COULEUR  : 1438116
    18:29:06 529.017 4 HISTO1 2 Chart 1 VOIR COULEUR  : 1493588
    18:29:48 940.886 6 HISTO1 2 Chart 1 VOIR COULEUR  : 1210932
    Ça dépend de l'heure ? :-)
    presque. la valeur que tu vois c'est la valeur du pointeur de la chaine de caractère, donc c'est l'adresse de la chaine, qui est dépendante de l'aoolcation en mémoire qui est faite.

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

Discussions similaires

  1. Graphiques & légende
    Par did10 dans le forum R
    Réponses: 11
    Dernier message: 13/08/2009, 15h39
  2. CR XI - Graphique et couleur des séries
    Par luatwork dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 21/07/2008, 18h17
  3. graphique - modification couleurs
    Par ver_for dans le forum IHM
    Réponses: 0
    Dernier message: 08/04/2008, 17h20
  4. [CR XI] Graphiques - choix couleur ?
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 04/02/2008, 11h28
  5. Graphique avec couleurs dynamiques
    Par jblond dans le forum BIRT
    Réponses: 8
    Dernier message: 27/11/2007, 14h47

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