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 29/06/2006, 14h57   #1
Membre à l'essai
 
Homme
Développeur de jeux vidéo
Inscription : juin 2006
Messages : 90
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Canada

Informations professionnelles :
Activité : Développeur de jeux vidéo

Informations forums :
Inscription : juin 2006
Messages : 90
Points : 21
Points : 21
Par défaut owc10, génération de graph avec paramêtre

Bonjour

Je travail sur un projet intranet visant à générer des graphiques à partir de tableaux.

J'ai utilisé le code que [DreaMs] à donné sur ce topic mettant en oeuvre mschart via la dll owc10.

Jusqu'ici, ca s'est très bien passé, les graphiques se génèrent bien et donnent un très bon résultat. Mon soucis, c'est le temps de traitement.

En effet, j'utilise un algorythme volumineux en ASP pour générer mon tableaux, que j'affiche ensuite sur ma page, juste au dessus des graphiques.

Pendant la génération du tableaux, je prend soin de mettre les données utilisées pour les graphique dans des tableaux (Array) ASP. Je compte utiliser ces array pour remplir les séries du graphique.

Le problème, c'est que je n'arrive pas a passer ces séries en paramètre de mon graphique.

J'ai essayé de mettre le code du graphique à la suite de mon algorythme, mais en utilisant le "Response.BinaryWrite", il me met un erreur d'en-tête http.

Je ne peux pas non plus appeler le fichier .asp qui génère les graph via une url en donnant mes tableaux en paramêtre via la méthode GET (monGraph.asp?id=<%=monTableau%>)

Ma solution à été de reproduir mon algorythme dans le fichier .asp des graphiques.
Ca marche, mais lorsque mon tableaux (en html) possède 1 colonne, ca met 0.5 seconde a générer le tableaux + graphique, lorsqu'il y a 2 colonne, ca met 1 seconde, etc...
Mon tableaux pourra avoir jusqu'a 60 colonnes simultané, soit un temps de traitement de 30 secondes...

Ma question est donc: comment je pourrai passer mes array ASP en paramêtre au script de mon graphique pour n'avoir à dérouler l'algorythme qu'une seule fois?

(j'ai déjà lut le tutoriel sur mschart sur developpez.com, mais ca ne répond pas à ma question qui est plus un problème de passage de paramêtre entre pages .asp/.html ou un problème de gestion des en-tête :p)
Spidyy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 15h16   #2
Membre confirmé
 
Avatar de pmboutteau
 
Inscription : février 2005
Messages : 504
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 504
Points : 267
Points : 267
Si les valeurs de tes tableaux sont dans des bases de données je te conseille de créer des tables pour stocker les données de graphiques et de lancer la création à partir de la BDD. Moi je fais comme çà mais tout dépend de ton logiciel bien sûr.
__________________
ours ours !! Au début elle est froide mais après elle est bonne!
pmboutteau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 15h21   #3
Membre à l'essai
 
Homme
Développeur de jeux vidéo
Inscription : juin 2006
Messages : 90
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Canada

Informations professionnelles :
Activité : Développeur de jeux vidéo

Informations forums :
Inscription : juin 2006
Messages : 90
Points : 21
Points : 21
J'utilise des bases de données Access, et ce que tu propose est la méthode que je fait déjà, mais les tableaux sont volumineux, la base complèxe et les requète importantes, donc c'est ce qui met le plus de temps et c'est ce que je voudrai éviter :p
Spidyy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 15h51   #4
Membre confirmé
 
Avatar de pmboutteau
 
Inscription : février 2005
Messages : 504
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 504
Points : 267
Points : 267
moi si tu veux je fais une page analyse.

Elle me calcule tout et me prépare mes tables graphes. C'est une page pur ASP. De là je pars sur une HTML où je crée les graphes.

J'ai un truc assez énorme à gérer aussi et çà se passe bien. LEs pages s'affichent relativement rapidement.
__________________
ours ours !! Au début elle est froide mais après elle est bonne!
pmboutteau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 23h29   #5
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
Citation:
Envoyé par Spidyy
En effet, j'utilise un algorythme volumineux en ASP pour générer mon tableaux, que j'affiche ensuite sur ma page, juste au dessus des graphiques.
A mon avis tout le pb est là. Sans parler du graphique, je crois que cela mettrait autant de temps si tu décidais de n'afficher que le contenu du recordset.
=> Cherche à optimiser encore plus ta requete SQL.
=> Si les données ne change pas trop créé un cache.
=> Créé des procédures et passe tes recordset de l'une à l'autre.
Tu peux aussi utiliser un objet Pivot comme source de données c'est assez rapide. A tester aussi avec un recordset.
Code :
1
2
3
4
 
Set oPivot = Server.CreateObject("OWC10.PivotTable")
Set NewChart = Server.CreateObject("OWC10.ChartSpace")
	NewChart.DataSource = oPivot
A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2006, 18h09   #6
Membre à l'essai
 
Homme
Développeur de jeux vidéo
Inscription : juin 2006
Messages : 90
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Canada

Informations professionnelles :
Activité : Développeur de jeux vidéo

Informations forums :
Inscription : juin 2006
Messages : 90
Points : 21
Points : 21
Hop bon j'ai pas trop essayé de simplifier, donc j'ai continué sur ma méthode de refaire l'algorythme à chaque graph créé! C'est bourrin mais ca marche!

Nouveau problème, maintenant je veux que l'utilisateur puisse enregistrer la page (donc avec le tableaux + les graphes à la suite) dans un fichier Excel.

Première solution on va me dire OWC.Spreadsheet!
Soucis j'ai pu trop le temps de parcourir toute la doc sur les spreadsheet et refaire l'algorythme avec des écriture dans des Cells et tout.

J'ai visé une solution plus rapide : Response.ContentType="application/vn.ms-excel"

Pour le tableaux ca marche niquel!
Par contre ca ne prend pas les graphiques.. j'ai des petites croix rouge à la place :p

L'algorythme de mon programme ASP donne en gros:
Code :
1
2
3
4
5
<% Response.ContentType="application/vn.ms-excel"%>
' Génération du tableaux (interrogation de base et écriture des balises html)
...
' Génération des graphiques
<img href="graph.asp?id=....">
dans graph.asp :
Code :
1
2
3
4
5
 'Génération des graphiques avec l'objet OWC.Chartspace
...
 'à la fin de l'algorythme
Response.ContentType = "image/GIF"
Response.BinaryWrite cspace.GetPicture("GIF", 500, 300)%>
la balise <img> pointe donc vers un script qui renvoi un fichier binaire de type gif, hors lorsque j'appel la page, ca me met bien le tableaux dans le fichier Excel mais ca ne met pas les graphiques.
J'ai essayer en donnant à la balise <img> une image normal stockée sur le serveur (adresse relative) et ca marche...

Voyez vous une solution pour contourner le problème? Dois-je avoir imperativement l'image sur le serveur pour la mettre dans le fichier excel? Est-il possible de jongler avec les Response pour arriver à ce résultat?

Ou suis-je condamner à nager dans la piscine OWC? :p
Spidyy 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 00h10.


 
 
 
 
Partenaires

Hébergement Web