In ASP kann man ganz einfach ein dynamisches Diagramm zur Auswertung von Ergebnissen erstellen.
Einen Balken kann man in HTML sehr einfach erzeugen. Man erstellt ein GIF oder JPG mit der Farbe blau. Diese gebe ich mit HTML so aus:
<IMG src="images/blau.jpg" width="100" height=20 border=0> |
Mit ASP kann ich jetzt diesen Balken dynamisch ausgeben
<IMG src="images/blau.jpg" width="<%=Variable%>" height=20 border=0> |
In meinem Beispiel werte ich eine DB aus. Jeder Kunde erhält Bonuspunkte durch große und Viele Einkäufe. Die 5 besten Kunden sollen in einem Balkendiagramm grafisch dargestellt werden.
diagramm.asp
<h1 align=center>Balkendiagramm</h1> <% '------------ instaniieren der Connection und des Recordsets set conn = server.CreateObject("ADODB.Connection") set rs = server.CreateObject("ADODB.Recordset") '------------ öffnen der Connection des Recordsets conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" & Server.MapPath("./db/") & "\dbcustomer.mdb;" '------------ der SQL-String frägt die DB nach allen Werten der Tabelle Customers ab. strSQL = "SELECT top 5 * FROM Customers ORDER BY Bonuspunkte DESC;" '------------ das Recordset wird geöffnet. benötigt wird die Abfrage und die Connection rs.Open strSQL, conn '------------ Überprüfen, ob Daten vorhanden sind if not rs.EOF and not rs.BOF then '------------ Der Kopf der Tabelle wird erstellt %><table height=200 width="100%"> <tr bgcolor="#669999"> <td><font color="#FFFFFF">Kunde</font></td> <td><font color="#FFFFFF">Wertung mit Bonuspunkte</font></td> </tr> <% '------------ durchlaufen des Recordset do while not rs.EOF '------------ Die Tabelle wird dynamisch, abhängig von der Anzahl der Recordsets erstellt %><tr> <td width="30%"><%=rs.Fields("ContactName")%></td><% '------------ hier die entscheidende Zeile: die Länge der Grafik wird durch '------------ die Bonuspunkte des Kunden bestimmt. %><td width="70%"><IMG src="images/blau.jpg" width="<%=rs.Fields("Bonuspunkte")%>" height=20 border=0>+<%=rs.Fields("Bonuspunkte")%></td> </tr><% '------------ springt zum nächsten Recordset rs.MoveNext loop %></table><% else '------------ Es befinden sich keine Daten im Recordset Response.Write "Es sind keine Daten vorhanden" end if '------------ zerstören der Objekte set rs = nothing set conn = nothing %> |
Den kompletten Code für die Seite mit Datenbank kann man unten downloaden.