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.