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

ASP Discussion :

Probleme pour l'affichage d'un graphe + question


Sujet :

ASP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 41
    Points : 35
    Points
    35
    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 : 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
    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!

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%
    response.write("<img src=""graph.asp"">")
    %>
    mais ca ne fonctionne pas et je ne sais pas pourquoi.

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 309
    Points : 91
    Points
    91
    Par défaut
    Attention il ne doit avoir une instruction du genre Response.write dans la page
    graph.asp pour que ca fontionne..

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    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 : 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
    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.

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 309
    Points : 91
    Points
    91
    Par défaut
    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..

  6. #6
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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")

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    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?

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    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.

Discussions similaires

  1. [Débutant] probleme pour calcul d'une somme et questions sur methologie
    Par le beauceron dans le forum C#
    Réponses: 4
    Dernier message: 05/03/2012, 12h02
  2. Réponses: 2
    Dernier message: 01/11/2009, 20h56
  3. probleme pour l'affichage du Fichier
    Par mathiew dans le forum Débuter
    Réponses: 2
    Dernier message: 30/04/2009, 20h56
  4. Probleme pour l'affichage d'un JtextArea
    Par ikeaboy dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 22/03/2007, 12h13
  5. Réponses: 3
    Dernier message: 17/11/2006, 15h35

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