Hvordan du bruker diagrammer for å generere diagrammer dynamisk på serversiden

Sammendrag

I tillegg bruker diagramkomponenten for Microsoft Office Web som et Component Object Model (COM)-kontroll som er lagret i et skjema, er det mulig å bruke webkomponenten diagram som et objekt som ikke er synlige, i minnet. Denne artikkelen beskriver hvordan du kan bruke Web diagramkomponent på en server til å lage et diagram som er representert som et bilde Graphics Interchange Format (GIF). Du kan implementere strategier som er beskrevet i denne artikkelen for å generere diagrammet bilder som kan brukes over Internett eller i bedrifter med heterogene klientmaskiner.

Hvis du vil ha mer informasjon

Med diagramkomponenten Web, kan du opprette diagrammer ved hjelp av data fra ulike kilder, for eksempel matriser, en databaser, regneark eller et hvilket som helst egendefinert datakilder. Når du oppretter et diagram, kan du bruke ExportPicture-metoden for diagramkomponenten til å generere en GIF-bilde av diagrammet.

Hvis du vil gjøre dette, kan du endre global.asa-filen og opprette en ASP-side med koden som er illustrert i følgende trinn.

Fremgangsmåte for å opprette prosjekt

  1. Start Microsoft Visual InterDev.

  2. Opprette en ny Web-prosjekt kalt
    ServerChart og klikk Neste .

  3. Skriv inn i serveren som skal brukes for dette webprosjektet.

  4. Klikk Fullfør for å opprette Web-prosjektet.

  5. Høyreklikk i prosjektmappen på serveren (dette er vanligvis C:\Inetpub\wwwroot\ServerChart), velg Egenskaper og deretter kategorien Sikkerhet .

  6. Klikk på tillatelser, og Legg til følgende katalogtillatelser:

    IUSR_SERVERNAME: Lese, skrive, kjøre og slette
    Creator: Lese, skrive, kjøre og slette

  7. Klikk OK for å angi tillatelser.

  8. Høyreklikk filen global.asa i prosjektet Visual InterDev, og velg Få arbeide kopi.

  9. Endre global.asa-filen skal inneholde følgende skript:

    <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. Klikk på prosjekt -menyen, velger Legg til Web-element, og velg deretter Active Server Page. Navnet på siden chart.asp.

  11. Endre skriptet i chart.asp skal inneholde følgende:

    <%@ 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. Lagre prosjektet.

  13. Høyreklikk chart.asp i Project Explorer og velg Vis i webleser.

Siden vises med et diagram som inneholder CPU-bruk for forskjellige datamaskiner. Ved å velge forskjellige organisasjoner, kan du vise annen bruk.

Når du oppretter flere diagrammer som er basert på ulike sett med data, må hvert diagram, lagres som en unik GIF-fil. I dette eksemplet genererer for kjøring av skript biblioteket FileSystemObject en midlertidig fil for GIF-bilde. Filen er plassert i samme mappe som ASP-siden slik at du kan bruke MapPath-metoden i Session-objektet til å få plasseringen til den midlertidige filen. Filnavnet er lagret som et session-variabler slik at den blir slettet når økten slutter.

Legg merke til at IIS kjører Underrutinen Session_OnEnd når økten ble tidsavbrutt. Økten blir tidsavbrutt hvis klienten ikke har bedt om en side i tidsavbruddsvarighet, som er satt til én (1) minutt i begynnelsen av økten.

Flere merknader

For øyeblikket er det eneste filteret som er tilgjengelige for ExportPicture-metoden for "GIF"-bilder.

ExportPicture-metoden har to argumenter som gjør det mulig å angi dimensjonene i piksler for genererte diagrammet. I eksempelkoden du finner, er hardkodet dimensjonene bredde og høyde. I stedet kan du bruke dimensjoner som klienten angir.

OWC. Diagrammet ProgID gjelder for Office Web Components 9.0. Hvis du vil bruke versjon 10 av komponentene, kan du endre ProgID fra OWC. Diagrammet for å OWC10. ChartSpace, eller hvis du vil bruke versjon 11 av komponentene, kan du endre ProgID fra OWC. Diagrammet for å OWC11. ChartSpace.

Problemer med bruk av Server-Side

Du bør være oppmerksom på at Office 2000 Web Components ikke er utformet for bruk på serversiden, og det kan oppstå problemer hvis du bruker komponentene på en server med et høyt antall samtidige brukertilkoblinger. Mange av disse problemet er løst i Office XP Web Components og Office 2003 Web Components, og du bør vurdere å bruke Office XP Web Components eller Office 2003 Web Components for omfattende løsninger for serversiden.


Hvis du vil ha mer informasjon, kan du klikke følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:

317316 INFO: begrensninger for Office 2000 Web Components ved brukes inkluderinger for serversiden

Referanser

Programmering av Microsoft Office Web Components av Dave Stearns ISBN: 0-7356-0794-X

Hvis du vil ha mer informasjon om hvordan du bruker diagramkomponenten for Web, kan du se følgende Knowledge Base-artikler:

240263 hvordan du oppretter et kombinasjonsdiagram med webkomponenten for diagram

235885 hvordan du bruker Office-diagramkomponent for Web med VB

243192 hvordan du bruker VBScript å binde et diagram til en regnearkkomponent

Trenger du mer hjelp?

Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Microsoft Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×