Asp/vml, tracer un histogramme à partir d'une bd sql server ou autre

Soyez le premier à donner votre avis sur cette source.

Snippet vu 18 274 fois - Téléchargée 28 fois

Contenu du snippet

Jamais, tracer des graphes n'a jamais été aussi facile.
En plus cette fois ci la page web de tracé des graphes est directement connecté à notre base de données. Les mises à jour effectuées sur la base se répercutent automatique sur la page du graphe.
ASP+VML, c'est donc une autre manières de réprésenter ses statistiques, de tracer des graphes sur des sondages, de modéliser des objets etc...
Costumiser le code à votre guise et vous serez surpris.

Source / Exemple :


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Dim MM_Cnn_STRING
MM_Cnn_STRING = "dsn=DsnSondageIntranet;uid=sa;"
%>
<%
'==================================================================================
									'DECLARATION DES VARIABLES
'==================================================================================

Dim RsGraphe
Dim RsCouleurs
Dim RsCouleurs_numRows
Dim RsGraphe_numRows
DIM CodeCouleur
DIM CodeLettre
DIM LETTRE
'==================================================================================
								'CONNEXION A LA BASE DE DONNEES
'==================================================================================

Set RsGraphe = Server.CreateObject("ADODB.Recordset")
RsGraphe.ActiveConnection = MM_Cnn_STRING
RsGraphe.Source = "SELECT COUNT(nomchoisi) AS Nombre, nomchoisi  FROM VotreChoix  GROUP BY nomchoisi"
RsGraphe.CursorType = 0
RsGraphe.CursorLocation = 2
RsGraphe.LockType = 1
RsGraphe.Open()

RsGraphe_numRows = 0
%>
<%
'==================================================================================
'Dans la balise HTML, xmlns:v="urn:schemas-microsoft-com:vml", permet d'informer
'le navigateur que la page peut contenir du code VML(Vector Markup Language)
'==================================================================================
%>
<html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<title>Résultats du Sondage Intranet</title>
<style>
  v\:* {behavior:url(#default#VML);}
</style>
</head>
<body>
<FONT COLOR="blue" size="+3">Résultats du Sondage Intranet</FONT>
<br>
<!--
Ici, le rect est un exemple, pour la suite des exemples,
veuillez copier le code directement dans le BODY de ce document
-->

<%'for i=1 to RsGraphe.RecordCount%>

<%While Not (RsGraphe.EOF or RsGraphe.BOF)%>
<%
'==================================================================================
					'Les couleurs son définies dans la base de données
				'Ceci pour éviter que les barres de l'histogramme aient la même couleur
		'Vous pouvez aussi créer un script de génération automatique de couleur aléatoire
'==================================================================================

Set RsCouleurs= Server.CreateObject("ADODB.Recordset")
RsCouleurs.ActiveConnection = MM_Cnn_STRING
RsCouleurs.Source = "SELECT Couleurs FROM SondageDesignationIntranet Where nomchoisi='" & RsGraphe.Fields.Item("nomchoisi").Value & "'"
RsCouleurs.CursorType = 0
RsCouleurs.CursorLocation = 2
RsCouleurs.LockType = 1
RsCouleurs.Open()

RsGraphe_numRows = 0
%>

<%'RANDOMIZE%>
<%'CodeCouleur=Int((9 * Rnd) + 1)%>
<%'CodeLettre=Int((8 * Rnd) + 3)%>
<%'LETTRE=CHR(69-Int((5 * Rnd) + 1))%>
<%'=69-Int((4 * Rnd) + 1)%>
<%'=LETTRE%>
<v:rect
<!--Commande VML qui permet de tracer un rectangle
Devant Width, mettre la longueur du rectangle et devant height, la largeur
La couleur est définit par fillcolor et on lui affecte le champ de base de données contenant le code de la couleur
->
  fillcolor="<%=(RsCouleurs.Fields.Item("Couleurs").Value)%>"
 <!--
 Dans Height, mettez, la valeur correspondant à la hauteur
 ->

  style="position:relative;top:1;left:1;width:40;height:<%=(RsGraphe.Fields.Item("Nombre").Value)*20%>;">
<b><div align="center"><%=(RsGraphe.Fields.Item("nombre").Value)%></div></b>
<%
RsCouleurs.Close()
Set RsCouleurs = Nothing
%>
</v:rect>
<%RsGraphe.MoveNext%>
<%WEND%>
<br>
<br>
<br>
<FONT COLOR="blue" size="+1">Légende</FONT>
<br>
<%
Set RsCouleurs= Server.CreateObject("ADODB.Recordset")
RsCouleurs.ActiveConnection = MM_Cnn_STRING
RsCouleurs.Source = "SELECT distinct NomChoisi,Couleurs FROM SondageDesignationIntranet order by nomchoisi"
RsCouleurs.CursorType = 0
RsCouleurs.CursorLocation = 2
RsCouleurs.LockType = 1
RsCouleurs.Open()

RsCouleurs_numRows = 0
%>
<%While Not (RsCouleurs.EOF or RsCouleurs.BOF)%>

<FONT COLOR="brown"><%=(RsCouleurs.Fields.Item("NomChoisi").Value)%></FONT>
<v:rect
  fillcolor="<%=(RsCouleurs.Fields.Item("Couleurs").Value)%>"
  style="position:relative;top:1;left:1;width:40;height:10;">
</v:rect>
<br>
<%RsCouleurs.MoveNext%>
<%Wend%>
<%
RsCouleurs.Close()
Set RsCouleurs = Nothing
%>
<p>
</p>
</body>
</html>
<%
RsGraphe.Close()
Set RsGraphe = Nothing
%>

A voir également

Ajouter un commentaire

Commentaires

Messages postés
12
Date d'inscription
mardi 10 juillet 2007
Statut
Membre
Dernière intervention
26 juillet 2007

Salut!

Pas mal tu tout l'utilisation du vml.
Est ce que tu sais si il est possible de faire des "pivot chart" avec ou pas.

Merci
Messages postés
12
Date d'inscription
mercredi 10 décembre 2003
Statut
Membre
Dernière intervention
28 octobre 2006

Salut Nedo, tontonpolak a fait un prog similaire en vertical.
Il suffira de faire varier certaines propriétés de la balise rect.
Messages postés
8
Date d'inscription
mardi 27 juillet 2004
Statut
Membre
Dernière intervention
28 décembre 2006

Joli programme.Bravo note 8,5/10
seulement si on pouvait avoir des histogramme verticaux
Messages postés
13
Date d'inscription
jeudi 22 juillet 2004
Statut
Membre
Dernière intervention
12 mai 2007

Ah ouaih, je savais pour la limite Supérieure à IE5 mais pour Firefox
as tu plus de news à propos des Navigateurs compatibles ???
genre Nescape, opéra, mozilla

Ils devraient bientot le faire etant recommander (ou normaliser) par le W3C

en tout cas, à choisir entre la daube Flash et le VML j'ai choisi :-)

bye
Messages postés
12
Date d'inscription
mercredi 10 décembre 2003
Statut
Membre
Dernière intervention
28 octobre 2006

Ton script donne plus de fun au design.
Merci quand même.
Il faut cependant noter que le VML est quand même à ses balbutiements étant donné que des navigateurs comme firefox ne l'ont pas encore adopté.
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.