Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Outils > XMLRAD
XMLRAD Environnement de développement Web XML/XSL. Avant de poster -> F.A.Q XMLRAD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/03/2008, 20h13   #1
Membre à l'essai
 
Inscription : janvier 2003
Messages : 95
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 95
Points : 23
Points : 23
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 :

Histo2.jpg

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 :

Histo1.jpg

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 :
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 :
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
clisson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2008, 09h10   #2
Membre à l'essai
 
Inscription : janvier 2003
Messages : 95
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 95
Points : 23
Points : 23
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...
clisson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2008, 11h10   #3
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
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
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2008, 11h39   #4
Membre à l'essai
 
Inscription : janvier 2003
Messages : 95
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 95
Points : 23
Points : 23
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 :
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 :
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 ?
clisson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2008, 12h17   #5
Membre éclairé
 
Inscription : janvier 2003
Messages : 284
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 284
Points : 311
Points : 311
Envoyer un message via MSN à Nicolas.Cogi
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).
__________________
Nicolas
Nicolas.Cogi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2008, 14h29   #6
Membre à l'essai
 
Inscription : janvier 2003
Messages : 95
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 95
Points : 23
Points : 23
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.
clisson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2008, 14h17   #7
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
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.
Citation:
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 ...
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2008, 18h46   #8
Membre à l'essai
 
Inscription : janvier 2003
Messages : 95
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 95
Points : 23
Points : 23
Citation:
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 :
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 :
Citation:
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.
clisson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2008, 10h16   #9
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
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 :
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.
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h42.


 
 
 
 
Partenaires

Hébergement Web