DevTrain

Autor: Bernhard Elbl

Grafische Datenbankauswertung

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.


Erfasst am: 17.01.2001 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=266
© Copyright 2003 ppedv AG - http://www.ppedv.de