Bonjour tout le monde. Voila, j'ai un programme qui fait tout un tas de chose, je ne vais pas tout détailler. A un moment donner, je récupère plusieurs databases correspondant à plusieurs items. Chacune de ces databases vont être associé à un Plot.
Sur mon chart, j'aurais donc plusieurs plot, associé à un CombinedRangePlot.
Tous mes plots auront alors le même RangeAxis.
Pour générer mon chart, typiquement je fais :
Mon dataset va quand à lui boucler sur chacune des databases que j'aurai enregistrer dans un tableau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Chart("....") RangeAxis("....") Renderer("....") Dataset("....")
Donc voila le problème:
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
29
30
31
32 class Dataset(s, request ='') while i < len(getglob('curmultidatabase')): if curchart.idxdataset < len(getglob('curmultidatabase')): setglob('curdatabase',getglob('curmultidatabase')[i]) c=getglob('curdatabase').cursor() c.execute(transreq(request)) if getglob('changecolor').setcolor != {}: s.dataset=jfreechart.Dataset(index=curchart.idxdataset,series=c,setcolor = getglob('changecolor').setcolor) else: s.dataset=jfreechart.Dataset(index=curchart.idxdataset,series=c) curchart.idxdataset+=1 DomainAxis() if not curchart.idxrangeaxis: RangeAxis() if not curchart.idxrenderer: Renderer() s.dataset.attach(range=currangeaxis.rangeaxis,domain=curdomainaxis.domainaxis,renderer=currenderer.renderer) Plot(typeplot="Range") curplot.plot.add(s.dataset) else: setglob('curdatabase',getglob('curmultidatabase')[i]) setglob('curplot',curchart.tabcurplot[i]) // tableau qui regroupe les Plots instanciés lors du premier appel de Dataset setglob('curdomainaxis',curchart.tabcurdomain[i]) c=getglob('curdatabase').cursor() c.execute(transreq(request)) if getglob('changecolor').setcolor != {}: s.dataset=jfreechart.Dataset(index=curchart.idxdataset,series=c,setcolor = getglob('changecolor').setcolor) else: s.dataset=jfreechart.Dataset(index=curchart.idxdataset,series=c) curchart.idxdataset+=1 s.dataset.attach(range=currangeaxis.rangeaxis,domain=curdomainaxis.domainaxis,renderer=currenderer.renderer) curplot.plot.add(s.dataset) i = i + 1
. si j'instancie une seul fois Dataset, mes plots vont tous s'afficher correctement, avec le graphique souhaité. Dans la boucle while, seules les lignes de code présente dans le if {} vont s'exécuter, puisque je ne vais pas définir plus de dataset que de database (qui elles sont regroupé dans la variable 'curmultidatabase')
exemple : http://img116.imageshack.us/my.php?i...3898955iw0.jpg
. mais si j'instancie une deuxième fois un Dataset("...") de cette facon par exemple :
=> Alors mon Applet Java ne va plus s'afficher (bug écran bleu)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Chart("....") RangeAxis("....") Renderer("....") Dataset("....") Renderer("....") Dataset("....")
J'ai l'impression que lorsque je suis dans le else {}, le programme n'accepte pas de retravailler sur mes plots définies préalablement. Surtout lorsqu'il s'agit de passer du Plot 0 au Plot 1.
Peut etre une erreur de logique, si vous avez une idée je suis preneur, si il vous faut plus d'explications n'hésitez pas.
dataset.attach associe l'axe des X, l'axe des Y et le renderer au dataset instancié. Et le dataset instancié est associé au plot en cours
Partager