A utilização do lado do servidor de gráficos para gerar dinamicamente gráficos

Sumário

Para além de utilizar o componente Web do Microsoft Office gráfico como um controlo de serviços de informação Internet (COM, Component Object Model) alojado num formulário, é possível utilizar o componente Web do gráfico como um objecto não visível, na memória. Este artigo ilustra como pode utilizar o componente de gráfico de Web num servidor para criar um gráfico representado como uma imagem de Graphics Interchange Format (GIF). Pode implementar a estratégia discutida neste artigo para criar imagens de gráficos que podem ser utilizadas através da Internet ou em empresas com computadores pessoais cliente heterogéneos.

Mais informações

Com o componente Web do gráfico, pode criar gráficos utilizando dados de várias origens, tais como matrizes, uma bases de dados, folhas de cálculo ou quaisquer origens de dados personalizados. Depois de criar um gráfico, pode utilizar o método ExportPicture do componente de gráfico para gerar uma imagem GIF desse gráfico.

Para efectuar este procedimento, pode modificar o ficheiro global. asa e criar uma página ASP com o código ilustrado nos passos seguintes.

Passos para criar o projecto

  1. Inicie o Microsoft Visual InterDev.

  2. Criar um novo projecto de Web chamado
    ServerChart e clique no botão seguinte .

  3. Escreva o servidor que está a ser utilizado para este projecto da Web.

  4. Clique em Concluir para criar o projecto da Web.

  5. Com o botão direito do directório de projecto no servidor (normalmente, este é C:\Inetpub\wwwroot\ServerChart), seleccione Propriedades e, em seguida, clique no separador segurança .

  6. Clique em permissõese adicione as seguintes permissões de directório:

    IUSR_SERVERNAME: Ler, escrever, executar e eliminar
    Autor: Ler, escrever, executar e eliminar

  7. Clique em ' OK ' para definir as permissões.

  8. Num projecto do Visual InterDev, com o botão direito no ficheiro global. asa e seleccione Obter cópia do trabalho.

  9. Modificar o ficheiro global. asa para conter o seguinte script:

    <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. Clique no menu projecto , seleccione Adicionar Item da Webe, em seguida, seleccione o Active Server Page. Nome da página chart.asp.

  11. Modificar o script no chart.asp para conter os seguintes elementos:

    <%@ 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. Guarde o projecto.

  13. Chart.asp no Explorador de projecto com o botão direito e seleccione a vista no browser.

A página aparece com um gráfico que contém as utilizações do CPU para vários computadores. Ao seleccionar diferentes organizações, pode ver as diferentes utilizações.

Quando criar vários gráficos baseados em diferentes conjuntos de dados, cada gráfico tem de ser guardado como um ficheiro GIF exclusivo. Neste exemplo, FileSystemObject a biblioteca de tempo de execução de scripts gera um ficheiro temporário para a imagem GIF. O ficheiro é colocado na mesma pasta que a página ASP para que possa utilizar o método MapPath do objeto Session para obter a localização do ficheiro temporário. O nome do ficheiro é guardado como uma variável de sessão para que esta é eliminada quando a sessão termina.

Tenha em atenção que o IIS executa a subrotina ' Session_OnEnd sempre que a sessão foi excedido. A sessão expirar se o cliente não solicitou uma página dentro da duração de tempo de espera, o que está definida para um (1) minuto no início da sessão.

Notas adicionais

Actualmente, o único filtro disponível para o método ExportPicture é para imagens "GIF".

O método de ExportPicture tem dois argumentos permitem-lhe indicar as dimensões em pixels do gráfico gerado. No código de exemplo fornecido, as dimensões de largura e altura são codificados. Em vez disso, pode utilizar dimensões que especifica o cliente.

Os OWC. Gráfico ProgID aplica-se para o Office Web Components 9.0. Se pretender utilizar a versão 10 dos componentes, altere o ProgID de OWC. Gráfico para o ficheiro OWC10. Espaço do gráfico ou se pretende utilizar a versão 11 dos componentes, altere o ProgID de OWC. Gráfico para OWC11. Espaço do gráfico.

Problemas com a utilização do lado do servidor

Deve estar ciente de que os componentes Web do Office 2000 não são concebidos para utilização do lado do servidor e poderá ter problemas se utilizar os componentes num servidor com um elevado número de ligações de utilizadores em simultâneo. Muitos destes problema corrigidos nos componentes Web do Office XP e Office 2003 Web Components e deverá utilizar os componentes Web do Office XP ou Office 2003 Web Components para soluções de lado do servidor em grande escala.


Para obter informações adicionais, clique no número de artigo abaixo para visualizar o artigo na Microsoft Knowledge Base:

317316 INFO: limitações do Office 2000 Web Components quando utilizado do lado do servidor

Referências

Programação de componentes Web do Microsoft Office, Dave Stearns ISBN: 0-7356-0794-X

Para obter informações adicionais sobre como utilizar o componente Web do gráfico, consulte os seguintes artigos da Knowledge Base:

240263 como criar um gráfico de combinação com o componente Web do gráfico

235885 como utilizar o componente Web do Office gráfico com VB

243192 como utilizar o VBScript para ligar um gráfico a um componente de folha de cálculo

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×