Cómo utilizar gráficos para generar gráficos dinámicamente en el servidor

Seleccione idioma Seleccione idioma
Id. de artículo: 244049 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Junto con el componente Web de Microsoft Office Chart se utiliza como un control de modelo de objetos componentes (COM) alojado en un formulario, es posible utilizar el componente de gráfico Web como un objeto que no sea visible, en memoria. Este artículo muestra cómo puede utilizar el componente Chart de Web en un servidor para crear un gráfico representado como una imagen de formato de intercambio de gráficos (GIF). Puede implementar la estrategia descrita en este artículo para generar imágenes de gráfico que pueden utilizarse a través de Internet o en las empresas con escritorios de cliente heterogéneos.

Más información

Con el componente Web Chart, puede crear gráficos con datos de orígenes diversos, tales como matrices, una base de datos, hojas de cálculo o los orígenes de datos personalizados. Una vez crear un gráfico, puede utilizar el ExportPicture método del componente Chart para generar una imagen JPEG de ese gráfico.

Para ello, puede modificar el archivo global.asa y crear una página ASP con el código que se ilustra en los pasos siguientes.

Pasos para crear proyectos

  1. Inicie Microsoft Visual InterDev.
  2. Crear un proyecto Web nuevo denominado ServerChart y haga clic en el botón siguiente .
  3. Tipo en el servidor que se utiliza para este Web Project.
  4. Haga clic en Finalizar para crear el proyecto Web.
  5. Haga clic con el botón secundario del mouse el directorio del proyecto en el servidor (normalmente es C:\Inetpub\wwwroot\ServerChart), seleccione Propiedades y haga clic en la ficha seguridad .
  6. Haga clic en permisos y agregar los permisos de directorio siguiente:
    IUSR_SERVERNAME: Lectura, escritura, ejecución y eliminar
    Autor: Lectura, escritura, ejecución y eliminar
  7. Haga clic en Aceptar para establecer los permisos.
  8. En el proyecto de Visual InterDev, haga clic con el botón secundario en el archivo global.asa y seleccione Obtener copia de trabajo .
  9. Modificar el archivo global.asa para contener la siguiente secuencia de comandos:
    <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. Haga clic en el menú proyecto , seleccione Agregar elemento Web y, a continuación, seleccione Páginas Active Server . Nombre de la página chart.asp .
  11. Modificar la secuencia de comandos en chart.asp contener lo siguiente:
    <%@ 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 el proyecto.
  13. Haga clic con el botón secundario en chart.asp en el Explorador de proyectos y seleccione Ver en explorador.
Aparecerá la página con un gráfico que contiene el uso de CPU para varios equipos. Seleccionando las distintas organizaciones, puede ver diferentes usos.

Cuando crea varios gráficos basados en distintos conjuntos de datos, debe guardar cada gráfico como un único archivo GIF. En este ejemplo, FileSystemObject de biblioteca de automatización Run-time genera un archivo temporal de la imagen GIF. El archivo se coloca en la misma carpeta que la página ASP, de modo que puede utilizar el método MapPath del objeto Session para obtener la ubicación del archivo temporal. El nombre de archivo se guarda como una variable de sesión para que se elimina cuando termina la sesión.

Tenga en cuenta que IIS se ejecuta la subrutina Session_OnEnd siempre que se ha agotado la sesión. La sesión se agote si el cliente no ha solicitado una página dentro de la duración de tiempo de espera, que se establece en uno (1) minuto al principio de la sesión.

Notas adicionales

Actualmente, el filtro sólo disponible para el método ExportPicture es para las imágenes "GIF".

El método ExportPicture tiene dos argumentos que permiten indicar las dimensiones en píxeles del gráfico generado. En el código de ejemplo proporcionado, las dimensiones de alto y ancho son modificable. En su lugar, puede utilizar dimensiones que especifica el cliente.

El OWC.Chart ProgID se aplica a Office Web Components 9.0. Si desea utilizar la versión 10 de los componentes, cambiar el ProgID de OWC.Chart a OWC10.ChartSpace o si desea utilizar la versión 11 de los componentes, cambiar el ProgID de OWC.Chart a OWC11.ChartSpace.

Problemas con el uso de servidor

Debe tener en cuenta que Office 2000 Web Components no están diseñados para uso del lado del servidor, y puede experimentar problemas si utiliza los componentes en un servidor con un gran número de conexiones de usuario simultáneas. Muchos de estos problema se tratan en el Office Web Components y Office 2003 Web Components, y debe considerar con el Office Web Components o Office 2003 Web Components para soluciones de servidor a gran escala.

Para obtener información adicional, haga clic en el número de artículo siguiente para ver el artículo en Microsoft Knowledge Base:
317316INFORMACIÓN: Limitaciones de Office 2000 Web Components al uso de servidor

Referencias

Programación de Microsoft Office Web Components por Dave Stearns ISBN: 0-7356-0794-X

Para obtener información adicional acerca del uso el gráfico de componente Web, consulte los artículos siguientes de Knowledge Base:
240263Cómo crear un gráfico de combinación con el componente de gráfico Web
235885Cómo utilizar el componente Web de Chart de Office con VB
243192Cómo utilizar VBScript para enlazar un gráfico a un componente de hoja de cálculo

Propiedades

Id. de artículo: 244049 - Última revisión: jueves, 22 de febrero de 2007 - Versión: 3.5
La información de este artículo se refiere a:
  • Microsoft Office 2003 Web Components
  • Microsoft Office XP Web Components
  • Microsoft Office Chart Component 9.0
Palabras clave: 
kbmt kbhowto kbofficewebchart KB244049 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 244049

Enviar comentarios

 

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