DevTrain

Autor: Bernhard Elbl

Office XP Web Components; Charts made by ASP

Seit Office 2000 gibt es die Office Web Components. Jetzt ist Office XP da. Was gibt es neues?
Viele viele Commands, Charts in 3D-Ansicht und und und. Auf ein sehr sehr gutes neues Feature bei den OffXPWebC. will ich heute eingehen. Es geht darum, Charts aus dem Speicher in den Response-Stream zu schreiben.

Welche Software müssen Sie am Webserver installiert haben?
- die Office XP Webcomponents
Man braucht NICHT das komplette Office am Webserver installieren, um die Web Components verwenden zu können. Bei der benutzerdefinierten Installation, lassen sich diese extra anwählen. Mehr braucht nicht, NUR diese.



Die GetPicture-Methode:
Die neue entscheidende Funktion ist "GetPicture". Bei den 2000 Web Components musste das GIF erst auf der HD des Servers zwischengespeichert werden. Dieses konnte, dann über   <img src=namedesgifs>   eingebunden werden. Bei den XP-Com´s stellt die ASP-Site selbst das GIF-Bild dar.
Früher (2000)

FName = Server.MapPath("./") & "" & "test.gif"
' Export des Chart in Datei
oChart.ExportPicture FName, "gif", 600, 512

' Link auf neue Datei
Response.Write "<img src='" & sFName & "'>"
' anschliessendes löschen des GIF-Files.....................


Neu (XP)

' ContentType für GIF-Stream setzen
Response.ContentType = "image/GIF"
' Bild aus dem Speicher heraus ausgeben (erst ab Office-XP möglich)
Response.BinaryWrite chsp.GetPicture("GIF", 400, 400)



Ein 3D-Chart mit OfficeXP
Hier der Source-Code, um ein Chart als 3D darzustellen. Wie schon erwähnt, wird das Chart aus dem Speicher direkt in den Response-Stream geschrieben, ohne einen Umweg über die Festplatte des Servers zu gehen. Somit generieren wir ein komplett dynamisches GIF.
chartdyn.asp

<%@ Language=VBScript %>
<%
Dim DSC
Set DSC = CreateObject("OWC10.DataSourceControl")
' Verbindung zur DB herstellen
DSC.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Northwind;Data Source=w2k-berny"

' Recordset hinzufügen
DSC.RecordsetDefs.AddNew "select ProductName, UnitsInStock" & _
" from Products where Discontinued=0" & _
" and CategoryID=1", _
DSC.Constants.dscCommandText, "ChartData"
     
' erstellen des Chartspace-Objects
set chsp = Createobject("OWC10.Chartspace")
' Das Constants-Object referenzieren, um über ihn Konstanten verwenden zu können
set c = chsp.Constants
         
' Alle bisherigen Einstellungen im Chart-Space löschen
chsp.Clear

' die Datenquelle dem Chartspace bekannt machen.
set chsp.DataSource = dsc
         
' Das Recordset, welches Chartspace verwendet zuweisen
chsp.DataMember = "ChartData"
         

chsp.HasChartSpaceLegend = True

chsp.SetData c.chDimCategories, 0, "ProductName"
chsp.SetData c.chDimValues, 0, "UnitsInStock"

' Typ der Darstellung bestimmen (3D - ab OfficeXP)
chsp.Charts(0).Type = c.chChartTypePieExploded3D

' Datalabels hinzufügen
set dls = chsp.Charts(0).SeriesCollection(0).DataLabelsCollection.Add()
dls.HasPercentage = True
dls.HasValue = False


' ContentType für GIF-Stream setzen
Response.ContentType = "image/GIF"
' Bild aus dem Speicher heraus ausgeben
Response.BinaryWrite chsp.GetPicture("GIF", 600, 400)
%>

Ausgabe des Data-Gif´s auf einer HTML-Seite...
Seite1.html
<HTML>
<BODY>
 <img src="chartdyn.asp">
</BODY>
</HTML>

Die ASP-Seite kann also, wie jedes andere Bild auch, mit einem IMG-Tag eingebunden werden.

 


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