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

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

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.