Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
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 12/07/2007, 20h31   #1
Membre à l'essai
 
Inscription : mai 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 41
Points : 24
Points : 24
Par défaut Probleme pour l'affichage d'un graphe + question

Bonjour,

J'ai créé une page qui génere un graph a partir d'OWC11, mais le probleme est que je n'arrive pas a afficher le graphe dans une page web. J'ai essayer d'utiliser la page qui genere le graphique comme reference a une image mais ca ne marche pas, j'ai aussi essayer de loader directement la page qui genere le graphique dans internet explorer et je n'ai rien non plus. En fait a la place du graphique, il y a un petit carré avec un X rouge a l'interieur.

Je suis bien certain que mon graphique est bien generé par ma page asp puisque je peux le voir a partir de l'explorateur Window. Mais meme a ca, il y a un autre probleme : Il me genere un deuxieme graphe vide dans la meme image a chaque fois et je ne comprend absolument pas pourquoi.

voici le code que j'utilise pour generer le graphique :

Code :
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
dim objConstants
dim objChart
dim objCSpace
dim strFileName
'dim objFS
dim objFolder
 
Response.ContentType = "image/gif"
strFileName = "YTD_avg_turnaround"
 
Set oConn = Server.CreateObject("ADODB.connection")
oConn.Open "Driver={Microsoft Access Driver (*.mdb)};"&_
	"DBQ=le chemin de ma base.mdb;"
 
Set RS=Server.CreateObject("ADODB.recordset")
 
RS.open "SELECT * FROM tbl_Recap", oConn, 3, 4
 
Set objCSpace=Server.CreateObject("OWC11.ChartSpace")									'Declaration de l'espace graphique
 
Set objChart = objCSpace.Charts.Add()													'Ajout d'un graphique dans l'espace graphique
Set objConstants = objCSpace.Constants													
 
objChart.Type = objConstants.chChartTypeLine											'Definition du type de graphique ( une ligne sans marqueurs )
 
objChart.HasLegend = true
 
set objCSpace.DataSource = RS															'Definition du datasource pour le graphique
 
objChart.SetData objConstants.chDimSeriesNames, 0, "Year"
 
 
	objChart.SetData objConstants.chDimCategories, 0, "Months"		'Les X sont les mois
	objChart.SetData objConstants.chDimValues, 0, "Turnaround"		'Les Y sont les turnaround time
 
objChart.HasTitle = true
 
objChart.Title.Caption = "YTD Average Turnaround Time"
 
for each Axis in objChart.Axes
	if Axis.type = objConstants.chCategoryAxis then
		Axis.HasTitle = True
		Axis.Title.Caption = "Months"
	else
		Axis.HasTitle = True
		Axis.Title.Caption = "Turnaround Time"
	end if
next
 
strChartAbsPath = Server.MapPath("/GIF")
strChartRelPath = "GIF"
 
Randomize
strFileName = Timer & Rnd & ".gif"
 
response.write(strChartAbsPath & "\" & strFileName & "<br>")
objCSpace.ExportPicture strChartAbsPath & "\" & strFileName, "gif", 800, 400
 
strChartFile = strChartRelPath & "/" & strFileName
 
response.write("<img src=""" & strChartFile & """>" & "<p>")
J'ai trouver ce code sur www.4guysfromrolla.com et il est presque identique a celui sur leur site, sauf quelques petite modifications. Sauf que a la place de me donner un graphique j'en ai deux, dont un vide!

voici a quoi ressemble le graphique qui est créé :

http://www.imagehoop.com/view_image/...630.107052.gif
(désolé je n'ai pas été capable de l'afficher directement dans le post)

D'ailleur si quelqu'un sait aussi comment enlever les petits trucs gris marqués Months et Years ou le rectangle en haut qui dit de droppé la les Filter ca serait bien hehe. En fait ce que je veux c'est réussir a n'avoir que le graphique de gauche et rien d'autre.

Si quelqu'un a une suggestion, c'est le moment!

merci et aurevoir!
gbouchat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 17h54   #2
Membre à l'essai
 
Inscription : mai 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 41
Points : 24
Points : 24
Bon, j'ai réussis a pouvoir voir mon graphique lorsque je load directement la page qui le genere dans Internet Explorer, par contre, pour l'afficher sur une autre page ca ne veut absolument pas marcher.

la page qui genere le graphique se nomme graph.asp et la page qui a besoin d'afficher le graphique se nomme recap.asp

donc pour afficher le graphique dans la page recap.asp je procede (ou du moins j'essaye) de la facon suivante :

Code :
1
2
3
<%
response.write("<img src=""graph.asp"">")
%>
mais ca ne fonctionne pas et je ne sais pas pourquoi.
gbouchat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 22h03   #3
Membre du Club
 
Inscription : janvier 2004
Messages : 308
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 308
Points : 56
Points : 56
Envoyer un message via MSN à faamugol
Attention il ne doit avoir une instruction du genre Response.write dans la page
graph.asp pour que ca fontionne..
faamugol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 22h51   #4
Membre à l'essai
 
Inscription : mai 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 41
Points : 24
Points : 24
Merci de l'information!

Bon, j'ai essayer de changer de tactique, j'utilise maintenant response.binarywrite. Mais j'ai un autre probleme (en fait c'est pas mal le meme probleme, ou presque en tout cas).

J'ai reussis a faire afficher un graphique dans la page recap.asp, mais le probleme est que lorsque ma serie de valeur contient des valeurs, mon graphique ne s'affiche pas ( encore la petite croix rouge ). Par contre, si ma serie de valeur ne contient aucune valeur, je vois mon graphique dans la page recap.asp, mais bien entendu il est vide puisque ma serie de valeur est vide. Cela me semble bien etrange puisque le meme code me permet d'afficher un graphique vide, mais des que je lui entre des donnees, ca ne marche plus.

voice le code que j'utilise maintenant :

Code :
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
set conn = Server.CreateObject("ADODB.Connection")
 
conn.open "Driver={Microsoft Access Driver (*.mdb)};"&_
"DBQ=mabase.mdb;"
 
set rec = Server.CreateObject("ADODB.Recordset")
 
rec.Open "SELECT * FROM tbl_Recap",conn
 
do until rec.eof
	mycat = mycat & rec(0) & chr(9)
	myval = myval & rec(3) & chr(9)
	rec.movenext
loop
 
rec.close
conn.close
 
'	Graph Properties
	Response.Expires = 0
	Response.Buffer = True
	Response.Clear
 
	PictType = "gif"
	Response.ContentType = "image/" & PictType
	set mychartsp = Server.CreateObject ("OWC11.ChartSpace")
	set chConstants = myChartsp.Constants
 
	myChartsp.Clear
	myChartsp.Charts.Add
	mychartsp.charts(0).PlotArea.Interior.Color = rgb(256,256,256)
 
	set objSeries1 = mychartsp.charts(0).SeriesCollection.Add
	objSeries1.Caption = "Turnaround Time"
	objSeries1.SetData  chConstants.chDimCategories, chConstants.chDataLiteral, mycat
	objSeries1.SetData  chConstants.chDimValues, chConstants.chDataLiteral, myval1      '<--C'est d'ici que le probleme vient
	objSeries1.Line.Color = "red"
	objSeries1.type = chConstants.chChartTypeLine
 
	myChartsp.Charts(0).HasTitle = True
	mychartsp.Charts(0).HasLegend = true
	myChartsp.Charts(0).Title.Caption = "YTD Turnaround Time"
 
	'Define Axes Titles
	myChartsp.Charts(0).Axes(0).HasTitle = true
    myChartsp.Charts(0).Axes(0).Title.Caption = "Month"
    myChartsp.Charts(0).Axes(1).HasTitle = true
    myChartsp.Charts(0).Axes(1).Title.Caption = "Turnaround"
 
    Response.BinaryWrite myChartsp.GetPicture(PictType, 700, 475)
 
 
%>
Notez bien que dans ce code, dans le do...loop au debut, j'initialise la variable myval en la nommant myval alors que j'utilise la variable myval1 lors de la construction du graphique. Ce code me permet de voir un graphique vide dans recap.asp, mais si j'utilise myval lors de la construction, je ne vois pas de graphique du tout dans recap.asp.

Je ne comprend vraiment pas pourquoi ca fait ca alors si vous avez une idée, je suis preneur.
gbouchat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 23h21   #5
Membre du Club
 
Inscription : janvier 2004
Messages : 308
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 308
Points : 56
Points : 56
Envoyer un message via MSN à faamugol
Tu pourrais essayer d'abord d'affecter à myval et mycat des valeurs comme
myval =12 et mycat =15 par exemple sans utiliser d'abord la boucle de construction.

Essaye des petites valeurs et vois ce que ca donne sur le graph..juste faire des petits tests..
faamugol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 09h29   #6
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 364
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 364
Points : 1 551
Points : 1 551
Bonjour

Je me demande s'il n'y a pas un probleme de temps dans ton histoire, (temps de génération du graphique alors que le response.binaryWrite a déjà été executé)

Tu peux peut-être, pour les tests introduire une pause dans ta page, genre :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 sub pause(t)    't en secondes
    dim t1, t2
    t1=timer
    t2=t1
    while (t2-t1)<t
        t2=timer
    wend
end sub
 
dim a
a=myChartsp.GetPicture(PictType, 700, 475)
 
pause(5) 
 
response.binaryWrite(a)
(c'est une pure supposition, je n'ai pas testé, mais j'avais eu un pb similaire avec des pdf générés "a la volée")
roro06 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 23h14   #7
Membre à l'essai
 
Inscription : mai 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 41
Points : 24
Points : 24
Bonjour et merci beaucoup pour les réponses!

Ce semblait effectivement etre un probleme de temps de generation du graphique, il semble qu'avec une legere pause le graphique s'affiche correctement. (Bien que j'ai réussis a quelques reprises a afficher le graphique sans la pause, mais le taux de succes semble aléatoire)

Ce qui m'amene a me poser une petite question :

Je travaille presentement en local afin de tester mes pages et l'ordinateur que j'utilise est plutot vétuste et lent, est-ce que sur un ordinateur plus rapide le temps de generation du graphique sera moins long ou est-ce que je vais devoir garder la petite pause lorsque je vais implanter l'interface web sur laquelle je travaille sur l'intranet de mon employeur?
gbouchat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 19h35   #8
Membre à l'essai
 
Inscription : mai 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 41
Points : 24
Points : 24
Bon, j'ai encore des problemes avec mon graphique!

Tout semblait fonctionner vendredi passé, mais lorsque je suis arrivé au bureau ce matin, je n'arrivait plus a voir mon graphique alors que je n'ai rien changé au code, je n'était meme pas au bureau en fin de semaine!

Je commence a penser qu'une puissance supérieure a décidé de m'empecher de pouvoir incorporer mon graphique a ma page!

Plus sérieusement, j'ai lu sur un post quelque part dans ce forum que la version 11 de OWC buggait beaucoup. Vous pensez que c'est seulement un bug ou bien il y a quelque chose que je ne fais pas correctement?

Sur ce, je m'en vais offrir un sacrifice a cette puissance supérieure qui m'empeche d'avancer dans mon travail.
gbouchat est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h03.


 
 
 
 
Partenaires

Hébergement Web