Verwendung der serverseitigen Diagrammerstellung zum dynamischen Generieren von Diagrammen

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 244049 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
244049 How To Use Server-Side Charting to Generate Charts Dynamically
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Neben der Verwendung der Webkomponente "Microsoft Office Chart" als COM-Steuerelement (COM = Component Object Model), das auf einem Formular gehostet wird, ist es auch möglich, die Chart-Webkomponente als nicht sichtbares, speicherinternes Objekt zu verwenden. Dieser Artikel veranschaulicht, wie Sie die Chart-Webkomponente auf einem Server verwenden können, um ein Diagramm zu erstellen, das als Bild im Graphics Interchange Format (GIF) dargestellt wird. Sie können die in diesem Artikel erörterte Strategie implementieren, um Diagrammbilder zu erstellen, die über das Internet oder in Unternehmen mit heterogenen Clientdesktops verwendet werden können.

Weitere Informationen

Mit der Chart-Webkomponente können Sie Diagramme auf der Basis von Daten erstellen, die aus mehreren verschiedenen Quellen stammen, beispielsweise aus Arrays, Datenbanken, Kalkulationstabellen oder beliebigen benutzerdefinierten Datenquellen. Nachdem Sie ein Diagramm erstellt haben, können Sie die Methode "ExportPicture" der Chart-Komponente verwenden, um ein GIF-Bild dieses Diagramms zu erstellen.

Hierzu können Sie die Datei "global.asa" modifizieren und eine ASP-Seite mit dem Code erstellen, der in den folgenden Schritten beschrieben wird.

Anleitung zum Erstellen des Projekts

  1. Starten Sie Microsoft Visual InterDev.
  2. Erstellen Sie ein neues Webprojekt mit dem Namen ServerChart, und klicken Sie dann auf Weiter.
  3. Geben Sie den Server an, der für dieses Webprojekt verwendet werden soll.
  4. Klicken Sie auf Fertig stellen, um das Webprojekt zu erstellen.
  5. Klicken Sie mit der rechten Maustaste auf Ihr Projektverzeichnis auf dem Server (in der Regel ist dies C:\Inetpub\wwwroot\ServerChart), klicken Sie auf Eigenschaften, und klicken Sie dann auf die Registerkarte Sicherheit.
  6. Klicken Sie auf Berechtigungen, und fügen Sie dann die folgenden Verzeichnisberechtigungen hinzu.
    IUSR_SERVERNAME : Lesen, Schreiben, Ausführen und Löschen
    Ersteller : Lesen, Schreiben, Ausführen und Löschen
  7. Klicken Sie auf OK, um die Berechtigungen festzulegen.
  8. Klicken Sie im Visual InterDev-Projekt mit der rechten Maustaste auf die Datei "Global.asa", und klicken Sie dann auf Arbeitsversion abrufen.
  9. Modifizieren Sie die Datei "global.asa" so, dass sie das folgende Skript enthält:
    <SCRIPT LANGUAGE=VBScript RUNAT=Server>
    
    Sub Session_OnStart
    	' Create a FileSystemObject to provide files in the script
    	Set Session("FSO") = CreateObject("Scripting.FileSystemObject")
    	
    	' Create a variable that has the number of files created in this session
    	Session("n") = 0
    	
    	' Set timeout to be 1 minute
    	Session.Timeout = 1
    End Sub
    
    Sub Session_OnEnd
    	' Delete the files created in this session
    	Dim x
    	For x = 0 to Session("n")-1
    		Session("FSO").DeleteFile Session("sTempFile" & x), True
    	Next
    End Sub
    </SCRIPT>
  10. Klicken Sie auf das Menü Projekt, klicken Sie auf Webelement hinzufügen und dann auf Active Server Page. Geben Sie der Seite den Namen chart.asp.
  11. Modifizieren Sie die Datei "chart.asp" so, dass sie das folgende Skript enthält:
    <%@ language="vbscript" %>
    <html>
    <body>
    <h1>Realtime CPU Utilization by Configurations</h1>
    
    <FORM action="chart.asp" method=get name=frmChooseOrg>
    
    <p> Select an Organization to see values for their machines: 
    
    <SELECT name=sOrg>
    <OPTION SELECTED value= 5>Org1</OPTION>
    <OPTION value= 10>Org2</OPTION>
    <OPTION value= 15>Org3</OPTION>
    
    <OPTION value= 20>Org4</OPTION>
    </SELECT>
    
    <INPUT type="submit" value="Go"></p>
    
    </FORM>
    
    <%
    
    Dim oChart, c, Categories(5), Vals(5), i, sCaption, nData, nOrg
    
    ' Get the input value
    nData = Request.QueryString("sOrg")
    
    'When the page loads the first time, set ndata to 5
    if len(nData) = 0 then nData = 5
    
    ' Generate random categories and values for the chart
    ' These values can come from some existing data source
    for i = 1 to 5
    	Categories(i) = "Machine" & CStr(i)
    	Vals(i) = nData * Rnd(100)
    next
    
    ' Create a Chart Object
    Set oChart = CreateObject("OWC.Chart")
    Set c = oChart.Constants
    
    ' Set the different parameters for the ChartSpace
    oChart.Border.Color = c.chColorNone
    
    ' Get Organization number and use it to set the Caption
    nOrg = nData/5
    sCaption = "Current Utilizations for Org"
    sCaption = sCaption & CStr(nOrg)
    
    ' Add a chart and set parameters for the chart
    oChart.Charts.Add
    oChart.Charts(0).Type = oChart.Constants.chChartTypeColumnClustered
    oChart.Charts(0).SeriesCollection.Add
    oChart.Charts(0).SeriesCollection(0).Caption = sCaption
    oChart.Charts(0).SeriesCollection(0).SetData c.chDimCategories, c.chDataLiteral, Categories
    oChart.Charts(0).SeriesCollection(0).SetData c.chDimValues, c.chDataLiteral, Vals
    oChart.Charts(0).HasLegend = True
    oChart.Charts(0).HasTitle = True
    
    ' Get a temporary filename to save chart in that file
    sFname = Session("FSO").GetTempName & session.SessionID & ".gif"
    
    ' Export the chart to the temporary file
    oChart.ExportPicture server.MapPath(sFname), "gif", 600, 512
    
    ' Create a link to the generated file
    Response.Write "<img src='" & sFname & "'>"
    
    ' Store the file with its path in the session object for cleanup
    Session("sTempFile" & Session("n")) = Server.MapPath(sFname)
    
    ' Increment the number of files
    Session("n") = Session("n") + 1
    
    %>
    
    </body>
    </html>
    					
  12. Speichern Sie das Projekt.
  13. Klicken Sie im Projekt-Explorer mit der rechten Maustaste auf die Datei "chart.asp", und klicken Sie dann im Browser auf Ansicht.
Jetzt wird die Seite mit einem Diagramm eingeblendet, das Daten zur CPU-Auslastung mehrerer Computer enthält. Indem Sie verschiedene Organisationen auswählen, können Sie verschiedene Auslastungsdaten einsehen.

Wenn Sie mehrere Diagramme erstellen, die auf unterschiedlichen Datensätzen basieren, muss jedes Diagramm als eigenständige GIF-Datei gespeichert werden. In diesem Beispiel generiert die Komponente "FileSystemObject" der Scripting-Laufzeitbibliothek eine temporäre Datei für das GIF-Bild. Diese Datei wird im selben Ordner gespeichert wie die ASP-Seite, sodass Sie die Methode "MapPath" des Objekts "Sitzung" verwenden können, um den Speicherort der temporären Datei zu ermitteln. Der Dateiname wird als Sitzungsvariable gespeichert und daher gelöscht, wenn die Sitzung beendet wird.

Beachten Sie, dass IIS immer dann die Subroutine "Session_OnEnd" ausführt, wenn für eine Sitzung eine Zeitüberschreitung eintritt. Eine Zeitüberschreitung der Sitzung ist dann gegeben, wenn der Client nicht innerhalb einer bestimmten Zeitspanne, die zu Beginn einer Sitzung auf eine Minute festgelegt ist, eine Seite anfordert.

Zusätzliche Hinweise

Zurzeit steht der Methode "ExportPicture" nur ein Filter für GIF-Bilder zur Verfügung.

Für die Methode "ExportPicture" gibt es zwei Argumente, mit denen Sie die Abmessungen des erzeugten Diagramms in Pixeln festlegen können. In dem hier zur Verfügung gestellten Beispielcode sind Breite und Höhe hartcodiert. Sie können aber auch die Abmessungen verwenden, die Ihr Client angibt.

Die ProgID "OWC.Chart" gilt für Office Web Components 9.0. Wenn Sie die Version 10 verwenden möchten, ändern Sie die ProgID von "OWC.Chart" zu "OWC10.ChartSpace". Um die Version 11 zu verwenden, ändern Sie die ProgID von "OWC.Chart" zu "OWC11.ChartSpace".

Probleme bei der serverseitigen Verwendung

Sie sollten sich der Tatsache bewusst sein, dass die Office 2000 Web Components nicht für die serverseitige Verwendung entwickelt wurden und Probleme auftreten können, wenn Sie diese Komponenten auf einem Server verwenden, auf dem gleichzeitig viele Benutzerverbindungen bestehen. Viele dieser Probleme sind in den Office XP Web Components und den Office 2003 Web Components nicht mehr gegeben. Sie sollten daher in Erwägung ziehen, die Office XP Web Components oder Office 2003 Web Components für umfangreiche Lösungen auf der Serverseite zu verwenden.

Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
317316 Einschränkungen von Office Web Components, wenn Office Web Components verwandt wird, serverseitige

Informationsquellen

"Programming Microsoft Office Web Components" von Dave Stearns. ISBN: 0-7356-0794-X

Weitere Informationen zur Verwendung der Webkomponente "Chart" finden Sie in den folgenden Artikeln der Microsoft Knowledge Base:
240263 Erstellen eines Verbunddiagramms mit der Diagrammwebkomponente
235885 Wie Verwenden der Diagrammwebkomponente mit Visual Basic
243192 HOWTO: verwenden Sie VBScript, um ein Diagramm an eine Tabellenkomponente zu binden

Eigenschaften

Artikel-ID: 244049 - Geändert am: Montag, 7. Januar 2008 - Version: 3.4
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Office Web Components
  • Microsoft Office Web Components
  • Microsoft Office Chart Component 9.0
Keywords: 
kbhowto kbofficewebchart KB244049
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com